我記得這個網站的使用手冊裡,
原本 python 讀取測資的方式如下:
import sys
for s in sys.stdin:
print('hello', s)
我用這方式覺得很好用,
實測的速度也很快。
平常練習時,還可以寫成如下:
import sys
sys.stdin = open('c:\\test\\in.txt', 'r')
for s in sys.stdin:
print('hello', s)
自己可以模擬一個 in.txt 來練習。
#####
不知何時改為如下:
while True:
try:
s = input()
print('hello, '+s)
except:
break
這種方式原意應是想讓測資遇到 EOF 就 break
可是把所有 code 包在一個 try ... except 裡
不管發生任何錯誤都會 break
相信會讓新手更難以除錯。
sys.stdin = open('c:\\test\\in.txt', 'r')
OJ 似乎不能用這個方法 (?)
平時在終端練習時,
也可以使用 for s in sys.stdin ,
而 python 的 Error 有很多種,
若要看出是什麼錯了可以用以下方法:
except Exception as e:
print(e)
可以得知是哪種錯誤。
或著是要除掉特定的錯誤可以用以下方法:
except EORError:
pass
除了 EORError 外,還有很多種(如: ImportError, OverflowError, SyntaxError, ZeroDivisionError ... 等)
都可以特定除錯。