簡體   English   中英

在Python 3.5中將3個輸入放在同一行中

[英]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 mapint函數應用於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.

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