在 Python 中,處理不定行輸入可以使用以下幾種方式,具體取決於輸入來源和需求:
當輸入行數不定時,可以使用 sys.stdin 來讀取標準輸入,直到讀取結束:
import sys
lines = []
for line in sys.stdin:
lines.append(line.strip()) # 去掉每行的換行符
# 處理 lines 列表中的每一行輸入
for line in lines:
print(line) # 或對每行進行進一步處理
當輸入結束標誌不確定時,可以使用 input() 配合 try-except,遇到 EOFError(End of File Error) 時自動結束:
lines = [] # 創建一個空列表,用來存儲每行的輸入內容
try:
while True:
line = input().strip() # 使用 input() 來讀取每行的輸入,並用 strip() 去掉首尾空白
lines.append(line) # 將每行輸入追加到 lines 列表中
except EOFError:
pass # 遇到 EOFError(表示輸入結束)時停止讀取,不進行任何其他操作
# 處理 lines 列表中的每一行輸入
for line in lines:
print(line) # 逐行打印出列表中的每個元素
1.初始化 lines 列表:lines = []
2.嘗試無限循環讀取輸入:while True:
3.讀取並處理每行輸入:line = input().strip()
4.將輸入行添加到列表中:lines.append(line)
5.捕獲 EOFError (End Of File Error)異常:except EOFError:
6.逐行打印存儲的輸入內容:for line in lines:
可以設置一個特殊條件,比如用戶輸入空行時結束:
lines = []
while True:
line = input().strip()
if line == "": # 當遇到空行時結束
break
lines.append(line)
# 處理 lines 列表中的每一行輸入
for line in lines:
print(line)
如果知道行數不固定,但可以根據數據的某個特徵判斷(例如第一行指定數量),可以讀取該數據後設置循環:
n = int(input("請輸入行數: ")) # 假設第一行表示後續行數
lines = [input().strip() for _ in range(n)]
# 處理 lines 列表中的每一行輸入
for line in lines:
print(line)