【问题标题】:How do I input a series of numbers (separated by comma) using system argument in command prompt (Python)?如何在命令提示符(Python)中使用系统参数输入一系列数字(以逗号分隔)?
【发布时间】:2021-01-12 18:44:34
【问题描述】:

我刚开始学习 Python。我想在命令提示符下输入一系列用逗号分隔的数字。

例如,我想在命令提示符下输入这个: C:\AOA1001\Folder1\Testing> python Testing.py 1,2,3,4,5

我在命令提示符中收到此错误:

C:\Users\belle\Folder1\Testing> Testing.py 1,2,3,4,5
Traceback (most recent call last):
  File "C:\Users\belle\Folder1\Testing> Testing.py", line 4, in <module>
    n = int(sys.argv[1])
ValueError: invalid literal for int() with base 10: '1,2,3,4,5'

这是我的代码:

import sys

try:
    n = int(sys.argv[1])
    print(n)

except IndexError:
    print("Invalid input.")

我打算创建一个列表,在这种情况下是 (n = int(sys.agrv[1])。

【问题讨论】:

  • 你想用这些值做什么?建立一个清单?如果您有多个值,这无论如何都不能是 int 。你应该澄清你的问题;
  • 是的。我想计算输入列表中偶数的总和(在这种情况下为 n = int(sys.argv[1]) )。我希望用户在一行中输入一系列用逗号分隔的数字(例如“testing.py 1,2,3,4,5”)
  • 好的,您应该编辑您的问题以明确您的要求。
  • @ThierryLathuille 可以。对于这个不清楚的问题,我很抱歉。

标签: python pycharm command-prompt


【解决方案1】:
str_numbers = sys.argv[1].split(',')
numbers = list(map(lambda x: int(x), str_numbers))
print(numbers)

【讨论】:

    【解决方案2】:

    您可以将它们放在一个列表中:

    import sys
    
    try:
        lst = [int(s) for s in sys.argv[1].split(',')]
        print(lst)
    
    except ValueError:
        print("Invalid input.")
    

    【讨论】:

      【解决方案3】:

      您可以将其转换为列表:

      import sys
      
      try:
          n = map(int, sys.argv[1].split(','))
          print(*list(n))
      except IndexError:
          print('Invalid Input')
      

      然后,在命令行中:

      python3 .\Testing.py 1,2,3,4,5
      >>> 1 2 3 4 5
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-19
        • 2020-12-31
        • 1970-01-01
        • 1970-01-01
        • 2013-04-01
        • 1970-01-01
        相关资源
        最近更新 更多