[英]Taking 3 inputs in the same line in Python 3.5
我試圖使用split在同一行上獲取3個整數輸入,但它會引發錯誤
int()參數必須是字符串,類似字節的對象或數字,而不是'list'
這是我的代碼
n,a,k = int(input().split())
請試試
n,a,k = map(int, input().split())
int
只能接收一個字符串。
你可能想要像這樣使用map
:
n,a,k = map(int, input().split())
因為split
函數返回一個list
而不是一個str
。 map
將int
函數應用於list
每個元素( str
)。
由於其他人已經給出了map
解決方案,這里有一個使用簡單的列表解析:
n,a,k = [int(i) for i in input().split()]
它比map()
有優勢嗎? 不是真的,但有些人更喜歡這種方法。
要么:
import ast
n,a,k = ast.literal_eval(','.join(input().split()))
print(n,a,k,sep='\n')
示例輸出:
1 2 3
1
2
3
即使您的輸入包含至少包含3個或更多數字的字母,您也可以使用以下程序方法完成相同的操作。
如果您還要輸入一個少於3個數字的字符串,函數將處理它並為相應的變量返回0。 示例包含在最底層。 請看一看。
import re
def get_inputs(n=3):
inp = input('Enter a sentence with at least 3 numbers included: ').strip()
arr = re.sub(r'[^0-9]+', ' ', inp).strip().split()
if len(arr) < n:
for i in range(n):
try:
arr[i]
except IndexError as e:
arr.append(0)
n, a, k, *rest = list(map(int, arr))
return (n, a, k, rest)
# Start
if __name__ == "__main__":
# Get 3 numbers
out1 = get_inputs()
n, a, k, rest = out1
print('n =', n)
print('a =', a)
print('k =', k)
print('rest = ', rest)
rishi@Rishidev MINGW64 /c/Rishikesh67/Projects/Working/hygull.github.io/codes/python3.6 (master)
$ python get_numbers.py
Enter a sentence with at least 3 numbers included: Hello, I like 65, 45 and 90 ok.
n = 65
a = 45
k = 90
rest = []
rishi@Rishidev MINGW64 /c/Rishikesh67/Projects/Working/hygull.github.io/codes/python3.6 (master)
$ python get_numbers.py
Enter a sentence with at least 3 numbers included: 12, 23 and 67 are nice but 34 and 23 also.
n = 12
a = 23
k = 67
rest = [34, 23]
rishi@Rishidev MINGW64 /c/Rishikesh67/Projects/Working/hygull.github.io/codes/python3.6 (master)
$ python get_numbers.py
Enter a sentence with at least 3 numbers included: 12 34 56
n = 12
a = 34
k = 56
rest = []
rishi@Rishidev MINGW64 /c/Rishikesh67/Projects/Working/hygull.github.io/codes/python3.6 (master)
$ python get_numbers.py
Enter a sentence with at least 3 numbers included: 45 12 34 21 12 hello 99
n = 45
a = 12
k = 34
rest = [21, 12, 99]
rishi@Rishidev MINGW64 /c/Rishikesh67/Projects/Working/hygull.github.io/codes/python3.6 (master)
$ python 1.py
Enter a sentence with at least 3 numbers included: Now 67 is best for me.
n = 67
a = 0
k = 0
rest = []
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.