![](/img/trans.png)
[英]How to take a multiline input in bash with newlines using Python code
[英]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]
你真的不能, input
和raw_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.