看板 Python 關於我們 聯絡資訊
※ 引述《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分,供參考 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.229.208.148 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1697571244.A.6C4.html
aalexx: 競賽題輸入說怎樣就是怎樣,題目定義好了,又不是面試什麼10/18 05:17
aalexx: 都是自己假設的10/18 05:17
講白癡話 刷題不面試不考試 你刷身體健康的? 這就是書本的不會告訴新人的細節 也是新人最容易陷入的誤區 平時不養成作答細節 考試你答的出來才有鬼 另外看你在本板的推文 沒什麼建設性的回應 只會噓人 這邊真的不需要你 敗壞本板風氣 ※ 編輯: panex0845 (27.53.144.252 臺灣), 10/18/2023 06:48:55
lycantrope: constraints問都不問就這樣寫,我也是笑了10/18 12:18
venomsoul: 呃說真的我就是那個刷題刷健康的10/19 03:32
aegius1r: 沒必要吧10/19 08:07
vup4jp6: 擅自改變輸入規則 會給你對? 程式碼格式只給UI用? 10/20 16:15
vup4jp6: 溝通格式跟協定呢? 不管不顧?10/20 16:16
vup4jp6: 沒出事都好說 出事了多一個少一個字元我都跟你翻臉10/20 16:27
你不懂我在講什麼 建議多看幾次 重新理解 這題很明顯是使用者導向的題目 一定要就可能的情形拋出錯誤分數才會高 你當然可以不寫 也不能說你錯 但是你拿的到高分嗎 ※ 編輯: panex0845 (39.9.231.108 臺灣), 10/20/2023 19:17:30
karco: 這題不是要考這個吧… 10/23 10:14
karco: 跟原Po要問的是兩回事 10/23 10:14
karco: 當然你講的在面試時是要提出來跟考官討論沒錯 10/23 10:14
ddavid: 把刷題跟面試的目的性弄混了啦 10/23 14:29
zerof: 奇葩 10/25 01:21