iT邦幫忙

0

Python Multiple line input

  • 分享至 

  • xImage
  •  

在 Python 中,處理不定行輸入可以使用以下幾種方式,具體取決於輸入來源和需求:

  • sys.stdin:適合處理批量輸入(特別是在競賽環境)。
  • try-except 與 input():適合不定行的標準輸入。
  • 空行結束:適合用戶手動結束輸入

1. sys.stdin(適用於大多數競賽、終端的批量輸入)

當輸入行數不定時,可以使用 sys.stdin 來讀取標準輸入,直到讀取結束:

import sys

lines = []
for line in sys.stdin:
    lines.append(line.strip())  # 去掉每行的換行符

# 處理 lines 列表中的每一行輸入
for line in lines:
    print(line)  # 或對每行進行進一步處理

2. input() 與 try-except(適用於未知行數的情況)

當輸入結束標誌不確定時,可以使用 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()

  • 使用 input() 讀取一行輸入。.strip() 去掉每行開頭和結尾的空白或換行符,避免多餘空格影響後續處理。
  • 每行輸入被存儲為 line。

4.將輸入行添加到列表中:lines.append(line)

  • 使用 .append() 方法將每行輸入逐一添加到 lines 列表中。

5.捕獲 EOFError (End Of File Error)異常:except EOFError:

  • EOFError 表示無更多輸入,通常在使用 Ctrl+D (Unix/Mac) 或 Ctrl+Z (Windows) 終止輸入後觸發。捕獲 EOFError 後會退出 try 區塊。

6.逐行打印存儲的輸入內容:for line in lines:

  • 遍歷 lines 列表,逐行打印出之前收集的所有輸入內容。

3. 直接使用 input() 讀取直到某條件(如空行)

可以設置一個特殊條件,比如用戶輸入空行時結束:

lines = []
while True:
    line = input().strip()
    if line == "":  # 當遇到空行時結束
        break
    lines.append(line)

# 處理 lines 列表中的每一行輸入
for line in lines:
    print(line)

4. input() 讀取多行,直到獲取指定數量的行

如果知道行數不固定,但可以根據數據的某個特徵判斷(例如第一行指定數量),可以讀取該數據後設置循環:

n = int(input("請輸入行數: "))  # 假設第一行表示後續行數
lines = [input().strip() for _ in range(n)]

# 處理 lines 列表中的每一行輸入
for line in lines:
    print(line)


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言