# Python程式設計 綜合練習 ## 1.閏年與平年 ```python= year = int(input("输入一个年份: ")) if (year % 4) == 0: if (year % 100) == 0: if (year % 400) == 0: print("{0} 是閏年".format(year)) #除以4、除以100、除以400皆為0,故為閏年 else: print("{0} 是平年".format(year)) #除以4、除以100皆為0,除以400不為0,故為平年 else: print("{0} 是閏年".format(year)) #除以4為0,除以100、除以400不為0,故為閏年 else: print("{0} 是平年".format(year)) #除以4不為0,故為平年 ``` ## 2.總和 ```python= num =int(input("num=>")) #把輸入的n字串轉換成數值並假設為num n =0 #設n(總數)為0 for i in range(0,num+1,1): n=n+i #i值會依序由0到num print (n) ``` ## 3.列印矩形 ```python= for i in range(4): #會印4排出來 for j in range(5): print("*",end = "") #每排5個*(後面換行) print(" ") ``` ## 4.列印三角形 ```python= k=input("請輸入一個數字(為最底層要幾個*)=>") n=int(k) #把k轉成數值 l=1 for i in range (n): #共有n排 for i in range (n-1,0,-1): #共有n-1個空格 print(" ",end="") n=n -1 #讓n隨著迴圈遞減 for i in range(l): #第一行只有1個以此類類推重複幾次就有幾個 print ("*",end="") l=l+1 #讓l和排數相同 print () #換行 ``` ## 5.列印金字塔 ```python= x=int(input("請輸入底層星數=>")) for i in range(x): #循环x次打印x行 for j in range(x-i): #打印空格每次循环递减 print(' ',end='') for q in range(2*i+1): #打印星星 if q==0 or i==x-1 or q==2*i: #判断打印星星位置,在开头,结尾和最后一行打印星星 print('*',end='') else: print(' ',end='') print() #每行循环结束后换行 ``` ## 6.公式解一元二次方程式 ```python= x,y,z=input("二次項 一次項 常數項=>").split() #輸入三個數並以空格為間隔分割 if str.isdigit(x+y+z) ==True: #判斷三個字串是否為純整數 w,s,x=int (x),int(y),int(z) #把三數轉為數值 d=s*s-(4*w*x) if d<0: print ("無解") elif d>0: i=(-s-d**0.5)/(2*w) k=(-s+d**0.5)/(2*w) print ("兩種解"+ str(i)+str(k)) else : l=-s/(2*w) print ("重根解"+str(l)) else : print ("請重新數入數字") ``` ## 7.終極密碼 ```python= from random import randint #規定範圍並產生密碼 lowest = 1 highest = 100 answer = randint(lowest, highest) #重複猜數字,直到猜對為止 while True: guess = input('密碼介於 ' + str(lowest) + '-' + str(highest) + ':\n>>') #檢查輸入的內容是否為數字 try: guess = int(guess) #把字串轉換成整數 except ValueError: #轉換失敗便要求重新輸入數字 print('格式錯誤,請輸入數字\n') continue #檢查輸入的數字是否介於規定範圍內 if guess <= lowest or guess >= highest: print('請輸入 ' + str(lowest) + '-' + str(highest) + ' 之間的整數\n') continue #判斷有沒有猜中密碼 if guess == answer: print('答對了!') break #猜對才跳脫迴圈 elif guess < answer: lowest = guess else: highest = guess ``` ## 8.成績指標 ```python= stu_num = int(input("請使用者輸入學生人數=> ")) #輸入學生人數,定義成績list的長度 stu_list = [] #輸入成績,以成績list形式儲存 temp = input("請使用者輸入成績=> ").split() for i in range(stu_num): stu_list.append(int(temp[i])) #呼叫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 ```