我正在学习编程,但是有一行代码让我感到困惑,它是这样的:
things = [float(arg) for arg in sys.argv[1:]]
Omega_a, Omega_b, Delta_a, Delta_b, \
init_pop_a, init_pop_b, tstep, tfinal = things
我在网上搜索并尝试理解sys.arg
的含义,这是我的理解:
sys.argv[0]
表示文件名,sys.argv[1:]
表示用户应该提供的其余参数。我不确定我是否理解正确,如果是这样,那么我不明白为什么不能像下面这样简单:
Omega_a = input()
Omega_b = input()
etc...
这两种传递参数的方式有何区别?
此外,如果我运行这段代码(按下 F5 键),Python shell 会给出如下错误提示:
Traceback (most recent call last):
File "C:\Users\testcode.py", line 55, in <module>
init_pop_a, init_pop_b, tstep, tfinal = things
ValueError: need more than 0 values to unpack
在我输入参数(sys.argv[1:]
)之前,就已经出现了错误。于是我在网上搜寻解决方法。看起来我需要在cmd中运行这段代码,但这让我更加困惑:为什么要在cmd中运行?如何将其放入cmd中并运行呢?