---
# System prepended metadata

title: Untitled

---

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







