如題
這題需要一口氣讀入所有資料,下面是我知道的作法
data = []while True: try: data.append(input()) except EOFError: break# 後面看你想幹嘛,記得寫在 while 外面# 想寫在 except 裡面也可以,但我覺得可讀性會差一些,當然,break 依舊不能省
和下面這個,用 sys.stdin 就會自動讀取到 EOF 為止了,可以理解成效率更高的 input(),但功能比較少,不過大同小異
input()
import sysdata = [line.rstrip() for line in sys.stdin]# 要 rstrip() 是因為這種輸入方式不會忽略換行符 \r\n,我們需要主動去除他們
如果你不介意換行符,你打算之後處理,也可以這樣,讀取效率會更好一些
import sysdata = sys.stdin.readlines()# readlines() 會一口氣把所有資料都讀進來,然後根據換行符 \n 的位置,把資料轉換成 list[str] 的格式# 類似 str.split('\n'),但是會保留 \n