[問題] 如何避免輸入資料時只按下enter造成錯誤?

看板Python作者 (一日測 終身測)時間7年前 (2016/09/24 17:27), 7年前編輯推噓3(306)
留言9則, 3人參與, 最新討論串1/1
大家好 這是在練習寫程式的網站遇到的 http://www.spoj.com/problems/HS12MBR/ 演算法有寫好了 主要是input 那邊有問題 Input: 3 1 p 3 3 2 c 10 10 20 c 20 20 10 1 l 0 0 100 20 --------------- 看到p,c,l的下面那行 那不是故意空白分隔 也不是輸入空白字元 是會故意多按一次enter 個人想說那就給它輸入到別的變數不做處理 隨意設一個變數 o=input() 但好像就是不能什麼都不輸入 就按下enter 出現錯誤:(在自己電腦上Python shell沒這問題) EOFError: EOF when reading a line 下方討論有提到: "0 (limit: 2)" means that your program is time-outed at the second input. If you read meaningless line, you can solve this error. 懂原文意思 但不懂如何解決... 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.45.107.72 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1474709231.A.F87.html ※ 編輯: gary771016 (114.45.107.72), 09/24/2016 17:28:28

09/24 21:27, , 1F
一般EOF在Windows或Linux是Ctrl+Z或Ctrl+D,你若在不同
09/24 21:27, 1F

09/24 21:29, , 2F
機器有不同結果的話,又不想深入了解的話
09/24 21:29, 2F

09/24 21:30, , 3F
try/except clause可以馬上解決你的問题
09/24 21:30, 3F

09/25 00:21, , 4F
解題練習本來就是while(1)在讀不是嗎? 關鍵字後再繼續爬
09/25 00:21, 4F

09/25 00:21, , 5F
碰到有些主辦很爛的時候 可能可以先read全部自己做strip
09/25 00:21, 5F
後來用C++ 能解決只按換行鍵的問題 (然而它還是同樣錯誤 只能說這題目真的太爛...) 使用 cin.getline(字元陣列) 它不讀換行鍵的(按了等於沒有) 要用Python 解決只按換行鍵 還沒試過try/except (google 也有這樣的答案 只是這語法還沒學到) 算是放棄這題 這網站難度不一 input也沒寫好...example也沒解釋清楚 囧 ※ 編輯: gary771016 (114.45.107.72), 09/25/2016 02:08:29 ※ 編輯: gary771016 (114.45.107.72), 09/25/2016 02:09:09

09/25 10:48, , 6F
這個語法沒這麼難,試著做了一下,這是拿到10分的答案:
09/25 10:48, 6F

09/25 10:49, , 8F
36 37行簡單就可以搞定了
09/25 10:49, 8F

09/25 15:59, , 9F
收到了 原來可以寫的這麼精簡 上了一課 謝謝
09/25 15:59, 9F
文章代碼(AID): #1NvaRl-7 (Python)