Re: Debug_刷題答案 Partial Accept 疑惑

作者: panex0845 (胖克思)   2023-10-18 03:34:02
※ 引述《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分,供參考
作者: aalexx (aalexx.S)   2023-10-18 05:17:00
競賽題輸入說怎樣就是怎樣,題目定義好了,又不是面試什麼都是自己假設的
作者: lycantrope (阿寬)   2023-10-18 12:18:00
constraints問都不問就這樣寫,我也是笑了
作者: venomsoul (不怕太太)   2023-10-19 03:32:00
呃說真的我就是那個刷題刷健康的
作者: aegius1r (SC)   2023-10-19 08:07:00
沒必要吧
作者: vup4jp6 (精銳貓奴)   2023-10-20 16:15:00
擅自改變輸入規則 會給你對? 程式碼格式只給UI用?溝通格式跟協定呢? 不管不顧?沒出事都好說 出事了多一個少一個字元我都跟你翻臉
作者: karco (karco)   2023-10-23 10:14:00
這題不是要考這個吧…跟原Po要問的是兩回事當然你講的在面試時是要提出來跟考官討論沒錯
作者: ddavid (謊言接線生)   2023-10-23 14:29:00
把刷題跟面試的目的性弄混了啦
作者: zerof (貓橘毛發呆雕像)   2023-10-25 01:21:00
奇葩

Links booklink

Contact Us: admin [ a t ] ucptt.com