#21393: 練習心得


asnewchien@gmail.com (david)

學校 : 不指定學校
編號 : 68108
來源 : [1.168.27.116]
最後登入時間 :
2024-03-31 17:58:15
. Unfinished! | From: [36.232.33.43] | 發表日期 : 2020-05-25 16:07

我記得這個網站的使用手冊裡,

原本 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

相信會讓新手更難以除錯。

 
#21394: Re:練習心得


fdhs109_GT (GT coding)

學校 : 桃園市私立復旦高級中學
編號 : 102099
來源 : [140.114.217.85]
最後登入時間 :
2024-03-27 01:07:43
. Unfinished! | From: [1.171.140.205] | 發表日期 : 2020-05-25 17:30

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 ... 等)

都可以特定除錯。

 
ZeroJudge Forum