运行 Python 需要参数时没​​有参数的代码

Running Python code without arguments when arguments are expected

我正在尝试编写一个 python 代码,它将在 shell 中执行,参数如下:

python programName.py arg1 arg2

我必须编写代码,以便在未传递任何参数时将默认为代码中声明的默认值。我尝试使用类似于以下内容的方法来做到这一点:

# ... Imports such as sys
x = argv[0]
y = argv[1]
#  ... Other Code

def main():
 if x is None:
  x = 0
 if y is None:
  y = 12
# ... Other Code

但是Python不喜欢我的做法,当没有参数传递时它会抛出错误。

抱歉,我无法显示错误,因为该程序在我不在身边的另一台计算机上。执行此操作的正确方法是什么?

试试这个:

import sys

# ... Imports such as sys
x = sys.argv[1] if len(sys.argv) > 1 else None  # None is the default value
y = sys.argv[2] if len(sys.argv) > 2 else None  # None is the default value
#  ... Other Code

sys.argv[0] -> 给出程序文件名

在上面的问题中你是 运行 python program_file_name x y,在这种情况下 sys.argv[0] 给你 program_file_name.

你应该检查argv的长度:

if len(argv) < 2:
    x = 0
if len(argv) < 3:
    y = 12

做下面的怎么样。您需要检查参数列表的长度以确定编号。传递的参数。

import sys

x = None
y = None

if len(sys.argv) > 3:
   print("Usage: ....")
   sys.exit(1)

if len(sys.argv) > 1:
   x = sys.argv[1]

if len(sys.argv) > 2:
   y = sys.argv[2]