作者gary771016 (一日測 終身測)
看板Python
標題[問題] 如何避免輸入資料時只按下enter造成錯誤?
時間Sat Sep 24 17:27:05 2016
大家好
這是在練習寫程式的網站遇到的
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
推 Typebrook: 一般EOF在Windows或Linux是Ctrl+Z或Ctrl+D,你若在不同 09/24 21:27
→ Typebrook: 機器有不同結果的話,又不想深入了解的話 09/24 21:29
→ Typebrook: try/except clause可以馬上解決你的問题 09/24 21:30
推 Yshuan: 解題練習本來就是while(1)在讀不是嗎? 關鍵字後再繼續爬 09/25 00:21
→ Yshuan: 碰到有些主辦很爛的時候 可能可以先read全部自己做strip 09/25 00:21
後來用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
推 Typebrook: 這個語法沒這麼難,試著做了一下,這是拿到10分的答案: 09/25 10:48
→ Typebrook: 36 37行簡單就可以搞定了 09/25 10:49
→ gary771016: 收到了 原來可以寫的這麼精簡 上了一課 謝謝 09/25 15:59