0

我想输入用户接下来要提供多少输入,并将这些输入收集在一行中。例如。如果用户接下来输入“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 的循环输入)在同一行。我在这里附上了程序的整个代码。请给我一个解决方案,说明如何在同一行中输入空格,而不是按回车键并给出输入

4

1 回答 1

0

根据我从您的问题中读到的内容,您正在尝试向用户请求输入,并且所需的输入格式是一系列由空格分隔的数字(整数和浮点数)。我看到了几种方法来实现这一点:

  • 使用单个输入语句来请求包括计数在内的一系列数字,
  • 只需向用户询问以空格分隔的数字列表并推断计数。

要执行这些操作,您可以执行以下操作之一:

#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  
于 2021-05-29T15:22:22.427 回答