想要在 Python3 中不同位置的变量的同一行上获取输入请参阅以下代码和文本以进行说明

问题描述

我想输入用户接下来要提供的输入数量,并将这些输入收集在一行中。例如。如果用户接下来输入 '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