2021年3月26日 星期五

Python 測驗題(二)

第四題

請撰寫一程式,讓使用者輸入數字,輸入的動作直到輸入值為9999才結束,然後找出其最小值,並輸出最小值。

主要就是 先設定一個無窮迴圈,把輸入的數值放進陣列List 中,直到9999就跳出無窮迴圈

程式如下

value=list()

while True :
    val=int(input("請輸入一個正整數 (9999 結束輸入) :"))
    if val==9999 :
        value.append(val)
        break
    else:
        value.append(val)

print (len(value)," 個數值中,最小值是 ",min(value))

輸出結果

請輸入一個正整數 (9999 結束輸入) :29
請輸入一個正整數 (9999 結束輸入) :100
請輸入一個正整數 (9999 結束輸入) :948
請輸入一個正整數 (9999 結束輸入) :377
請輸入一個正整數 (9999 結束輸入) :-28
請輸入一個正整數 (9999 結束輸入) :0
請輸入一個正整數 (9999 結束輸入) :-388
請輸入一個正整數 (9999 結束輸入) :9999
8  個數值中,最小值是  -388

第五題

請撰寫一程式,將使用者輸入的兩個數字作為參數傳遞給一個名為compute(x, y)的函式,此函式將回傳x和y的乘積。

這題就不需解釋了,直接看程式

def compute(x,y):
    z=x*y
    return z

vala=int(input("請輸入一個正整數 :"))
valb=int(input("請輸入一個正整數 :"))

Value=compute(vala,valb)
print(Value)

輸出結果

請輸入一個正整數 :56
請輸入一個正整數 :11
616

第六題

請撰寫一程式,讓使用者輸入52張牌中的5張,計算並輸出其總和。提示:J、Q、K以及A分別代表11、12、13以及1。

1. 可以將牌的點數先存放在陣列 List 中
2. 判別 A , J , Q , K
3. 把輸入的點數轉成數字,存放在另一個陣列

程式如下

pok=("2","3","4","5","6","7","8","9","10","A","J","Q","K","a","j","q","k")
poksum=list()
i=0
while True:
    Str="請輸入第" + str(i+1) +"張牌 :"
    pok_val=input(Str)
    if (pok_val in pok):
        if pok_val=="A" or pok_val=="a":
            poksum.append(1)
        elif  pok_val=="J" or pok_val=="j":
            poksum.append(11)
        elif  pok_val=="Q" or pok_val=="q":
            poksum.append(12)
        elif  pok_val=="k" or pok_val=="K":
            poksum.append(13)
        else:
            poksum.append(int(pok_val))            
        i=i+1
    if i == 5 :
        break

print (len(poksum) , "張牌的點數總和是 : " , sum(poksum))

輸出結果

請輸入第1張牌 :5
請輸入第2張牌 :10
請輸入第3張牌 :k
請輸入第4張牌 :3
請輸入第5張牌 :a
5 張牌的點數總和是 :  32

沒有留言: