【问题标题】:How to convert user input into a list如何将用户输入转换为列表
【发布时间】:2016-05-12 19:13:58
【问题描述】:

我想编写一个要求用户输入 7 个数字的 python 程序。此输入应转换为列表并首先显示单个数字,然后将列表作为一个整体显示。所以我的想法是我会从一个 for 循环开始。

for a in range(1,8):
    number = int(input("please enter a number"))
    b = [a]
    print(b)

所以它应该是这样的:

please enter number: 4
4
please enter number: 14
14
please enter number: 25
25

(再重复 4 次)

最后:

Your list is: [4, 14, 25, ...]

【问题讨论】:

  • 第三行:不应该是 "b= [number]" 吗?
  • 为什么要将每个单独的数字转换成一个列表?
  • 你试过阅读docs吗?

标签: python python-3.x


【解决方案1】:
result = []

for a in range(1,8):
    number = int(input("please enter a number: "))
    result.append(number)

print(result)

示例输出如下:

please enter a number: 1
please enter a number: 2
please enter a number: 3
please enter a number: 4
please enter a number: 5
please enter a number: 6
please enter a number: 7
[1, 2, 3, 4, 5, 6, 7]

【讨论】:

    【解决方案2】:
    Numbers = []
    
    for a in range (1,8):
        number = int(input("Please enter a number:"))
        Numbers.append(number)
        print(number)
    

    【讨论】:

    • 谢谢,这真的很有帮助!
    【解决方案3】:

    假设您不需要每次都显示列表(请参阅我的评论):

    b = []
    for a in range(7):
        number = int(input("please enter a number: "))
        b.append(number)
        print(number)
    print (b)
    

    【讨论】:

      【解决方案4】:

      所以,听起来您对 Python 还很陌生,或者不熟悉内置的数据结构。推荐the documentation 总是必须的,不过,如果您不熟悉计算机编程,而不仅仅是 Python 的数据结构,那么 other resources 对学习也很有价值。

      对于问题的最完整答案,包括字符串格式和转义序列,此方法将获得准确的输出。

      def collect_user_input():
          list_of_numbers = []
          for x in range(7):
              number = int(input("Enter a Number: "))
              list_of_numbers.append(number)
              print("\nYour number was: %d\n" % number)
          print("Your list is: \n", list_of_numbers)
      
      collect_user_input()
      

      【讨论】:

        【解决方案5】:

        您也可以一次性获取所有数字:

        nums = input("Please input space seperated numbers - as much as you need: ")
        splitted = list(map(int, (x for x in nums.split() if x.isdigit()) ) )
        
        print(splitted)
        

        输入"5 4 55 6 asdf 923 7.23"的输出:

        Please input space seperated numbers - as much as you need: 5 4 55 6 asdf 923 7.23
        [5, 4, 55, 6, 923]
        

        这会丢弃所有自动输入的非整数输入,并将其余输入转换为整数。

        您可以限制解析的数字 f.e.作者:

        splitted = splitted[:7]  # 7 numbers at most - might be less - you need to check with if
        

        独库:


        list(map(int, (x for x in nums.split() if x.isdigit()) ) )的解释:

        • 创建一个列表
          • 来自申请int()
            • 到您输入的split() 的每个元素
              • 仅当拆分部分xTrue 如果使用isdigit() 进行测试

        【讨论】:

          【解决方案6】:
          l1=[]  
          for i in range(1,11):  
            inp=int(input("enter a number"))  
            l1.append(inp)  
          print(l1)  
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2021-07-27
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-08-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多