在一行中输入几个整数

时间:2015-05-17 15:36:32

标签: python python-3.x

我有这样的事情:

a = int(input())
b = int(input())
c = int(input())
d = int(input())

如何在一个输入行中执行此操作?

a,b,c,d = int(input())这样的东西不起作用

2 个答案:

答案 0 :(得分:0)

在转换为int时,您应该使用try/except但是可以使用以下内容:

a,b,c,d = (int(input()) for _ in range(4))

演示:

In [134]: a,b,c,d = (int(input()) for _ in range(4))
1
2
3
4

In [135]: a,b,c,d
Out[135]: (1, 2, 3, 4)

你只需要在你想要的数字范围内循环。

或者让用户输入用空格分隔的数字,在空白处分开,map分隔到in​​t:

a,b,c,d = map(int,input("Enter four numbers separated by spaces").split())

print(a,b,c,d)

试一试将更安全:

while True:
    try:
        a, b, c, d = map(int, input("Enter four numbers separated by spaces").split())
        break # got four ints so break
    except ValueError:
        print("Invalid input or format")
print(a, b, c, d)

你可以而且也应该尝试第一个例子:

while True:
    try:
        a,b,c,d = (int(input()) for _ in range(4))
        break
    except ValueError:
        print("Invalid input")
print(a, b, c, d)

答案 1 :(得分:0)

如果要输入四个数字,e。 G。 1 5 20 3,然后:

numbers = input()
a, b, c, d = [int(n) for n in numbers.split()]

如果您想用逗号输入,e。 G。 1, 5, 20, 3,然后:

numbers = input()
a, b, c, d = [int(n) for n in numbers.split(',')