2. 總和
請使用迴圈設計一個程式S1-2.py:
讓使用者輸入數字 n
讓電腦自動從 1 開始加到 n,最後輸出總和
```
stst=int(input('輸入數字'))
q=0
#設定q讓累加數放到裡面
for i in range(0,stst+1,1):
q=q+i
#重點是把每個由小到大的整數數過(執行從0開始,所以要執行stst+1次才會到加到stst)
print(q)
```
3. 列印矩形
請設計一個程式S1-3.py
使用巢狀 for 迴圈(迴圈內還有迴圈),印出 5X4 星星矩陣如下
```
*****
*****
# 實作練習
*****
*****
```
```
#有5列、4行
#用兩層for Loop跑,第一層跑4次(行),第二層跑5次(列),每跑完5次(列)即跑行
for i in range(4):
for i in range(5):
print("*",end="")
print("")
-------------------------------------------------------------------------------------
###沒有打end(""):
for i in range(4):
for i in range(5):
print("*")
print("")
會變成
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
```
4. 列印三角形
請設計一個Python程式S1-4.py
讓使用者可以輸入底邊n,程式利用迴圈跟*號自動畫出底邊為n的直角三角形
例如,使用者輸入5,程式就會畫出以下圖形
```
*
**
***
****
*****
```
```
a=int(input("please write a number")) #輸入欲打出的排數設為a
for i in range(0,a,1): #共有a排,要跑a次
for j in range(0,a-i-1,-1): #另一個迴圈跑空白
print(" ",end="")
for k in range(0,i+1,1): #跑星星
print("*",end="")
print()
```
5. 列印金字塔
請設計一個程式S1-5.py,讓使用者可以輸入底邊n,程式利用迴圈跟*號自動畫指定圖案,例如,使用者輸入7,程式就會畫出以下圖形,底邊為7的金字塔
```
*
* *
* *
* *
*********
```
```
n=int(input("輸入底邊數"))
n2=int(n/2+1)
for i in range(0,n2,1):
#空白
for j in range(0,int(n/2-i),1): #對於奇數n,n/2取整數就是最中間再左一格
print(" ",end="") #裡第一個" "裡要空白!!!
#第一列
if i==0:
print("*")
#最後一列
elif i==int(n/2):
for j in range(0,n,1):
print("*",end="")
print()
#中間列
else:
print("*",end="")
for j in range(0,int(2*i-1),1):
print(" ",end="")
print("*")
```
6. 公式解一元二次方程式
我們都知道一元二次方程式可以透過公式解來得到方程式的答案。
請設計一個程式S1-6.py
讓使用者輸入ax2+bx+c=0的係數a, b, c
根據判別式D=b2-4ac
D>0,輸出結果 x1, x2
D=0,輸出結果 x
D<0,輸出文字:無解
```
a=input("input a")
#二次項係數
if a.isdigit():
a=float(a)
b=input("input b") #一次項係數
if b.isdigit():
b=float(b)
c=input("input c") #常數項
if c.isdigit():
c=float(c) #層遞排列讓a,b,c都要為浮點數才能繼續
if b**2-4*a*c>0:
print((-b+(b**2-4*a*c)**0.5)/2*a) #公式解
print((-b-(b**2-4*a*c)**0.5)/2*a)
elif b**2-4*a*c==0:
print(-b/a*2)
else:
print("無解")
else:
print("print number")
else:
print("print number")
else:
print("print number")
```
7. 終極密碼
請設計一個程式S1-7.py:
讓電腦當莊家,隨機選定一個介於 1~100 之間的整數
使用者要輸入數字去猜那個數字,直到猜中為止
沒猜中時電腦會限縮範圍當作提示,讓使用者再次嘗試
Your answer is higher than final answer
Your answer is lower than final answer
當使用者猜中時,告知使用者答案,以及花費的答題次數
程式會回傳訊息範例如下:「Congratulation! The answer is 32. You take 3 rounds to get the answer!」
```
```
8. 成績指標


```
#輸入學生人數,定義成績list的長度
stu_num = int(input("請使用者輸入學生人數=> "))
#輸入成績,以成績list儲存
stu_list = []
temp = input("請使用者輸入成績=> ").split()
#aplit可使使用者輸入時可用 隔開
for i in range(stu_num):
stu_list.append(int(temp[i]))
#要在list裡加東西要用append
print(temp)
#呼叫sort()進行成績list由小到大排序,並且輸出
stu_list.sort()
for i in range(stu_num):
print(f"{stu_list[i]} ",end='')
print()
#條件判斷:
#檢查最低成績是否及格,
#如果是的話,輸出best case、最低及格者成績,結束迴圈
if (stu_list[0] >= 60):
print("best case")
print(stu_list[0])
#檢查最高成績是否不及格
#如果是的話,輸出worst case,結束迴圈
elif(stu_list[stu_num-1] <= 60):
print(stu_list[stu_num-1])
print("worst case")
#其他情況
#掃描成績list,找出最高不及格分數者或是最低及格分數者
else:
#找出最高不及格分數者
for i in range(stu_num-1, -1, -1):
if (stu_list[i] < 60):
print(stu_list[i])
break
#最低及格分數者
for i in range(stu_num):
if (stu_list[i] >= 60):
print(stu_list[i])
break
```