# 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
```