我需要将用户输入放在列表中,如:
11 20
22 30
32 45
34 54
.. ..
我试过了:
for i in range(n):
c, d = map(int, input().split())
a.append(c)
b.append(d)
还有比这更好的方法吗?
答案 0 :(得分:0)
只需要一些用户提示和验证。只需捕获ValueError即可...
for i in range(n):
while True:
try:
c, d = map(int, input("enter 2 numbers separated by whitespace").split())
break
except ValueError:
print("Try again...\n")
a.append(c)
b.append(d)
翻译结果:
>>> n = 10
>>> a = []
>>> b = []
>>> for i in range(n):
while True:
try:
c, d = map(int, input("enter 2 numbers separated by whitespace: ").split())
break
except ValueError:
print("Try again...\n")
a.append(c)
b.append(d)
... ... ... ... ... ... ... ... ...
enter 2 numbers separated by whitespace: 1 2
enter 2 numbers separated by whitespace: 5
Try again...
enter 2 numbers separated by whitespace: 5 6
enter 2 numbers separated by whitespace: 10 11
enter 2 numbers separated by whitespace: 3112 3232
enter 2 numbers separated by whitespace: 1111
Try again...
enter 2 numbers separated by whitespace: 323 333
enter 2 numbers separated by whitespace: 324 334
enter 2 numbers separated by whitespace: 1 1
enter 2 numbers separated by whitespace: 2 2
enter 2 numbers separated by whitespace: 3 3
enter 2 numbers separated by whitespace: 4 4
>>> a
[1, 5, 10, 3112, 323, 324, 1, 2, 3, 4]
>>> b
[2, 6, 11, 3232, 333, 334, 1, 2, 3, 4]
>>>
答案 1 :(得分:0)
这可能是你想要的:
ins = [input("Two integers separated by a whitespace: ") for _ in range(n)]
a, b = [int(i.split()[0]) for i in ins], [int(i.split()[1]) for i in ins]
考虑异常,我认为下面的代码更好:
tip = "Enter two integers separated by a whitespace: "
while n > 0:
try:
c, d = map(int, input(tip).split())
n -= 1
a.append(c)
b.append(d)
except:
print('invalid input!\n')