【问题标题】:Python - Accept list of strings (names) as parameter and store it in arrayPython - 接受字符串(名称)列表作为参数并将其存储在数组中
【发布时间】:2020-05-11 09:37:30
【问题描述】:

这是 Python 代码。 我发现了多个将整数值存储在数组变量中的示例,但没有看到任何将字符串(作为参数传递)存储在数组中的工作示例。

try: 
    my_list = []
    while True:
        **my_list.append(int(input()))**
except: 
    print(my_list)

上面的代码给出的输出如下,我提供了 4 个整数输入值。

./test-00.py 
3
54
7
90

[3, 54, 7, 90]

如果我将代码更改为接受字符串而不是整数,如下面的代码行所示,结果会中断,并且一旦我点击 Return,我就会被抛出。

my_list.append(str(input()))

谁能告诉我如何将多个字符串作为一个数组变量的值并打印出来?

【问题讨论】:

    标签: python arrays string parameters


    【解决方案1】:

    您在第一个代码 sn-p 中退出无限循环,因为您遇到了异常。按下回车等于读取空字符串,并且空字符串不会转换为整数。因此引发异常并退出while True 循环。

    演示

    >>> int(input())
    
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: invalid literal for int() with base 10: ''
    

    考虑到您需要在空输入时中断循环,您可以在此处实施相同的方法:

    my_list = []
    while True:
        inp = input()
        if inp == '':
            break
        my_list.append(inp)
    print(my_list)
    

    【讨论】:

      【解决方案2】:

      这是一种奇怪的输入方式。您的 while 循环中没有退出条件。因此,您的第一个示例将继续运行,直到您输入一个非整数(或者只需按整数,因为传递给 int() 的空字符串也会引发异常)。

      在您的第二个示例中,由于没有无效输入(str() 可以接受所有字符串)-您只需永远接受输入。

      因此,即使在您的第二个示例中,您也将字符串存储在列表中 - 只是您没有留下任何选项来停止从用户那里获取输入

      您需要给用户一个退出条件(例如输入quitexit)或接受有限数量的输入。

      看这个例子:

      my_list = []
      for _ in range(5):  # take only 5 inputs
          my_list.append(input()) # no need for `str`, `input` already returns a string
      
      print(my_list)
      

      结果:

      1
      a
      b
      4
      hello
      
      ['1', 'a', 'b', '4', 'hello']  # strings in array, just what you want
      

      【讨论】:

        猜你喜欢
        • 2016-07-18
        • 1970-01-01
        • 2014-02-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-24
        • 1970-01-01
        相关资源
        最近更新 更多