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. 成績指標 ![](https://i.imgur.com/jy6dUqg.png) ![](https://i.imgur.com/1JgZVeC.png) ``` #輸入學生人數,定義成績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 ```