簡體   English   中英

如何在 Python 中獲取多個多行輸入變量?

[英]How to take multiple multiline input variables in Python?

是否可以將多個換行符輸入到多個變量中並一次將它們聲明為int

為了進一步解釋我要完成的任務,我知道這就是我們使用 map 獲取空格分隔輸入的方式:

>>> a, b = map(int, input().split())
3 5
>>> a
3
>>> b
5

換行符有等價物嗎? 就像是:

a, b = map(int, input().split("\\n"))

改寫:我試圖一次從多行中獲取多個整數輸入。

正如其他人所說; 我認為你不能用input()做到這一點。

但是你可以這樣做:

import sys
numbers = [int(x) for x in sys.stdin.read().split()]

請記住,您可以通過按Ctrl+D完成輸入,然后您就有了一個數字列表,您可以像這樣打印它們(只是為了檢查它是否有效):

for num in numbers:
    print(num)

編輯:例如,您可以使用這樣的條目(每行一個數字):

1
543
9583
0
3

結果將是: numbers = [1, 543, 9583, 0, 3]

或者您可以使用這樣的條目:

1
53          3
3 4 3 
      54
2

結果將是: numbers = [1, 53, 3, 4, 3, 54, 2]

從我從您的問題中了解到,您想讀取輸入直到達到EOF字符並從中提取數字:

[ int(x.strip()) for x in sys.stdin.read().split() ]

一旦發送ctrl+d或達到條目上的EOF字符,它就會停止。

例如,這個條目:

1 43 43   
434
56 455  34
434 

[EOF]

將讀作: [1, 43, 43, 434, 56, 455, 34, 434]

你真的不能, inputraw_input停止讀取並在輸入新行時返回; 據我所知,沒有辦法解決這個問題。 input的文檔

然后該函數從輸入中讀取一行,將其轉換為字符串(去除尾隨的換行符),然后返回該字符串。

一個可行的解決方案可能是在循環中調用input ,然后在'\\n'上加入。

a, b = (int(input()) for _ in range(2))

如果您有從多個輸入讀取多個變量的意思:

a, b, c = map(int, (input() for _ in range(3)))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM