#26672: [Python]進階的玩法 sys.stdin.buffer + for


406490150@gms.tku.edu.tw (我是朱朱)

學校 : 國立交通大學
編號 : 139794
來源 : [140.113.236.122]
最後登入時間 :
2022-09-03 11:13:16
f035. 最佳隊名獎 -- 板橋高中Python教學題 | From: [1.174.76.48] | 發表日期 : 2021-08-19 19:44

平常都是使用input()作為輸入的手段

使用sys.stdin是比較進階的用法,放在for-loop會每次讀取一行,並且包含換行符號'\n',輸出是str

而另外一個sys.stdin.buffer,則會讀取成bytes,而bytes在Python的迴圈中會自動變成int,就不需要再使用ord轉換

例如:

x = b'abc'

for num in x:

  print(num)

會輸出 97 98 99

 

說這麼多,那要怎麼使用呢?sys.stdin.buffer、sys.stdin大致上有三種讀法

  1. .read()   把所有測資都讀起來,例如: '第一行\n第二行\n第三行\n'

  2. .readline()  讀取一行,包含換行符號,例如:  '第三行\n'

  3. .readlines() 把所有測資都讀起來,並且已經將每行分離,例如: ['第一行\n', '第二行\n', '第三行\n']

 

以這題來說,你可以改寫x,基本上答案就呼之欲出了,玩玩看吧~

 
ZeroJudge Forum