我不知道 argv 到底是做什么的,我需要一个解释

问题描述

所以我正在读一本书,我看到他这样做了:

from sys import argv

script,first,second,third = argv

print ("The script is called: ",script)
print ("Your first variable is: ",first )
print ("Your second variable is: ",second)
print ("Your third variable is: ",third)

它给出了这个错误,但在书中它有效:

Traceback (most recent call last):
  File "c:\Users\FORCE 5 CORE\Desktop\visual studio code file\1\ex1.py",line 123,in <module>
    script,third = argv
ValueError: not enough values to unpack (expected 4,got 1)

解决方法

脚本试图将 4 个参数传递给它,但您没有传递任何参数,因此,argv 只有脚本名称,因为它是由您的操作系统提供的(因此,“预期 4,得到 1”)

您需要使用另外 3 个参数运行脚本,例如:

python ex1.py val1 val2 val3
,

它是 Python 的命令行参数。您在调用程序时传递这些值。 它基本上是一个数组。

script,first,second,third = argv

当您使用这些参数 script,third = argv 从终端调用您的函数时,例如:

>>python program_name.py 1 2 3

您基本上是在分配 script as program_name.pyfirst as 1second as 2third as 3

为避免出现错误,您必须在从终端运行程序时提供所有参数。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...