[問題] 新手問題

看板Python作者 (eat it)時間5年前 (2018/10/13 22:03), 編輯推噓3(3011)
留言14則, 7人參與, 5年前最新討論串5/5 (看更多)
本人自學三天 目前在學串列 遇到一個問題覺得很納悶 題目: 老師想要設計一個程式,可以輸入學生成績,直到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

10/13 22:09, 5年前 , 1F
""的屬性是str 不能直接轉成int
10/13 22:09, 1F

10/13 22:22, 5年前 , 2F
n=int(input("請輸入正整數:"))
10/13 22:22, 2F

10/13 22:22, 5年前 , 3F
我之前也有寫到這種
10/13 22:22, 3F

10/13 22:22, 5年前 , 4F
可是卻可以跑
10/13 22:22, 4F

10/13 22:38, 5年前 , 5F
我猜 i如果是int 在if那邊沒法跟""的str做比較 所以報錯
10/13 22:38, 5F

10/13 23:33, 5年前 , 6F
因為這程式你要結束輸入要再輸入一個空字串
10/13 23:33, 6F

10/13 23:34, 5年前 , 7F
當然沒辦法轉成int
10/13 23:34, 7F

10/13 23:35, 5年前 , 8F
解答在轉型前就先break出去了,自然不會有問題
10/13 23:35, 8F

10/14 01:26, 5年前 , 9F
int跟str怎麼可能不能比較 就False而已 是你空字串沒
10/14 01:26, 9F

10/14 01:26, 5年前 , 10F
辦法轉成整數報錯啊
10/14 01:26, 10F

10/14 09:39, 5年前 , 11F
如果輸入的是可轉成數值的字串就不會有問題,但只要有一次
10/14 09:39, 11F

10/14 09:41, 5年前 , 12F
輸入資料有問題就會跳出錯誤(寫線上解題系統就常吃這種虧)
10/14 09:41, 12F

10/14 09:51, 5年前 , 13F
建議利用這一題 練一下try except
10/14 09:51, 13F

10/14 09:51, 5年前 , 14F
對你熟練語法有幫助
10/14 09:51, 14F
文章代碼(AID): #1RmVisIE (Python)
文章代碼(AID): #1RmVisIE (Python)