※ 引述《depatg1998 (可可可)》之銘言:
: 輸入有三行。
: 第一行為兩個整數 H, L,數字間以空格分開,代表當天氣溫的最高溫及最低溫,保證 H
: >= L。
: 第二行為一個 0-100 間的整數,代表該天的降雨機率。
: 第三行為一非負整數,代表當天的紫外線指數。
...
: 以下為code
: H_L = input().split(' ')
: H_L_int = [int(i) for i in H_L]
: # print(H_L_int)
第一行就錯了
題目要求定義H, L是整數,數字間以空格分開,還要保證 H >= L
幫凱凱寫程式第一件事,要先預設凱凱是智障
你怎麼知道凱凱不會給你隨便輸入:
1.字串、浮點數
2.3個以上溫度或只有1個溫度或是根本沒輸入
3.氣溫用符號「&」、全形空格,而不是半形空格分開
4.把最低溫輸入在前面,最高溫輸入在後面
要避免這種情況發生,
一定要建立一個函式(function)去檢查以下條件,
只要不合法就拋出錯誤或是要求重新輸入:
1.氣溫是否是整數?
2.氣溫是否只有兩個?
3.兩者是否用半形空格分開?
4.即便兩者輸入相反,也必須自行把較高的數字設定成H,最低設定成L
所以應該是:
def announce_rule():
print('告知凱凱輸入規則')
def get_tempertrue():
while True:
userinput = input()
#開始檢查
if not ...:
#如果條件不符合跳回去重新輸入
print('輸入不合法,請重新輸入')
continue
#自動把最高的整數賦值給high,最低溫給low
high = ...
low = ...
return high, low
announce_rule()
H, L = get_tempertrue()
print(H, L)
才能避免以上問題,並且正確地把最高溫賦值給H,最低溫賦值給L
第二、三行同理,
刷題就是為了要對付考試,考試考的就是這個細節,
而不是input output一樣就好,
考試一題假設25分,input output一樣也不會25滿分,頂多給你15~20分
細節出來22~25分,供參考