首页 文章

如何让用户在Python中输入任意数量的输入值? [重复]

提问于
浏览
0

这个问题在这里已有答案:

例如,如果你想接受说2输入值,它会是这样的,

x = 0
y = 0
line = input()
x, y = line.split(" ")
x = int(x)
y = int(y)
print(x+y)

但是,这样做意味着我必须始终有2个输入,用空格分隔 .

我如何做到这一点,以便用户可以选择输入任意数量的输入,例如什么都没有(例如,这会导致某些消息,要求他们再次尝试),或者输入1个输入值并对其执行操作(例如,打印它)或2(例如将2个值加在一起)或更多 .

3 回答

  • 1

    您可以设置一个参数将有多少个值并循环输入并将它们放入 Map 中 - 或者您将其简化为2个衬垫:

    numbers = input("Input values (space separator): ")
    xValueMap = list(map(int, numbers.split()))
    

    这将创建一个INT值的 Map - 由空格分隔 .

  • 0

    您可能希望使用 for 循环重复从用户获取输入,如下所示:

    num_times = int(input("How many numbers do you want to enter? "))
    numbers = list() #Store all the numbers (just in case you want to use them later)
    for i in range(num_times):
      temp_num = int(input("Enter number " + str(i) + ": "))
      numbers.append(temp_num)
    

    然后,稍后,您可以使用 if/elif/else 链根据列表的长度(使用 len() 函数找到)对数字执行不同的操作 .

    例如:

    if len(numbers) == 0:
      print("Try again") #Or whatever you want
    elif len(numbers) == 1:
      print(numbers[0])
    else:
      print(sum(numbers))
    
  • 0

    尝试这样的事情 . 您将提供要让用户输入这些数字的数量 .

    def get_input_count():
      count_of_inputs = input("What is the number you want to count? ")
      if int(count_of_inputs.strip()) == 0:
          print('You cannot have 0 as input. Please provide a non zero input.')
          get_input_count()
      else:
          get_input_and_count(int(count_of_inputs.strip()))
    
    def get_input_and_count(count):
      total_sum = 0
      for i in range(1,count+1):
          input_number = input("Enter number - %s :"%i)
          total_sum += int(input_number.strip())
    
      print('Final Sum is : %s'%total_sum)
    
    get_input_count()
    

相关问题