看板 Python 關於我們 聯絡資訊
本人自學三天 目前在學串列 遇到一個問題覺得很納悶 題目: 老師想要設計一個程式,可以輸入學生成績,直到Enter鍵結束,最後成績由小到大排列 結果如下: 請輸入學生成績:85 請輸入學生成績:75 請輸入學生成績:60 請輸入學生成績: 成績由小到大排列:[60,75,85] 以下是我寫的: list=[] while True: i=int(input("請輸入學生成績:")) if(i==""): break list.append(i) list1=sorted(list,reverse=False) print(list1) 結果顯示:invalid literal for int() with base 10: '' 後來看了解答是: list=[] while True: i=input("請輸入學生成績:") if(i==""): break list.append(int(i)) list1=sorted(list,reverse=False) print(list1) 差別就是我不能於第三行放入int 必須在第6行才能放入 這就是我納悶的地方 不是可以一開始就直接轉換成整數就好 為什麼這題反而不行了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.32.163.73 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1539439414.A.48E.html
lajji: ""的屬性是str 不能直接轉成int 10/13 22:09
downthere: n=int(input("請輸入正整數:")) 10/13 22:22
downthere: 我之前也有寫到這種 10/13 22:22
downthere: 可是卻可以跑 10/13 22:22
Yukifate: 我猜 i如果是int 在if那邊沒法跟""的str做比較 所以報錯 10/13 22:38
InfinityGate: 因為這程式你要結束輸入要再輸入一個空字串 10/13 23:33
InfinityGate: 當然沒辦法轉成int 10/13 23:34
InfinityGate: 解答在轉型前就先break出去了,自然不會有問題 10/13 23:35
handsomeLin: int跟str怎麼可能不能比較 就False而已 是你空字串沒 10/14 01:26
handsomeLin: 辦法轉成整數報錯啊 10/14 01:26
CaTom: 如果輸入的是可轉成數值的字串就不會有問題,但只要有一次 10/14 09:39
CaTom: 輸入資料有問題就會跳出錯誤(寫線上解題系統就常吃這種虧) 10/14 09:41
Angesi: 建議利用這一題 練一下try except 10/14 09:51
Angesi: 對你熟練語法有幫助 10/14 09:51