问题描述
我想输入用户接下来要提供的输入数量,并将这些输入收集在一行中。例如。如果用户接下来输入 '3',他必须在同一行给出 3 个输入,例如 '4' '5' '6'。
N = int(input())
result = 0
randomlist = []
for number in range(N):
K = int(input())
for number2 in range(K):
a = int(input())
if number2 != K - 1:#Ignore these on below
result += a - 1
else:
result += a
randomlist.append(result)
result = 0
break
for num in range(N):
b = randomlist[num]
print(b)
现在我希望 K 的输入和 a(也是 a 的循环输入)在同一行上。我在这里附上了程序的全部代码。请给我一个解决方案,说明如何在同一行中输入一个空格,而不是按 Enter 键并提供输入
解决方法
根据我从您的问题中读到的内容,您正在尝试向用户请求输入,而所需的输入格式是一系列由空格分隔的数字(整数和浮点数)。 我看到了几种方法来实现这一点:
- 使用单个输入语句请求包括计数在内的一系列数字,
- 只需向用户询问以空格分隔的数字列表并推断计数即可。
要执行这些操作,您可以执行以下操作之一:
#Request User to provide a count followed by the numbers
def getInputwithCount():
# Return a list Numbers entered by User
while True:
resp = input("Enter a count followed by a series of numbers: ").split(' ')
if len(resp) != int(resp[0]) + 1:
print("Your Input is incorrect,try again")
else:
break
rslt = []
for v in resp[1:]:
try:
rslt.append(int(v))
except:
rslt.append(float(v))
return rslt
或者对于更简单的解决方案,只需询问以下数字:
def getInput():
# Return the list of numbers entered by the user
resp = input("Enter a series of numbers: ").split(' ')
rslt = []
for v in resp:
try:
rslt.append(int(v))
except:
rslt.append(float(v))
return rslt