Python PyScripter-导入argv错误

Python PyScripter-导入argv错误,python,pyscripter,Python,Pyscripter,我正在使用“艰苦地学习Python”和PyScripter来编写和运行我的代码 在练习13中,我必须运行以下代码: 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 th

我正在使用“艰苦地学习Python”和PyScripter来编写和运行我的代码

在练习13中,我必须运行以下代码:

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
当我运行它时,我得到一个错误

ValueError: need more than 1 value to unpack
我读过关于同一主题的其他问题,似乎找不到有效的答案


我也很新的编码,所以解释如何做到这一点将是伟大的

只有向脚本传递三个命令行参数,脚本才能工作。例如:

script.py 1 2 3
您不能使用任何其他数量的命令行参数,否则将引发
ValueError

也许您应该通过检查收到的参数数量,然后适当地分配名称
第一个
第二个
,和
第三个
,使脚本更加健壮

下面是一个演示:

from sys import argv, exit

argc = len(argv)  # Get the number of commandline arguments

if argc == 4:
    # There were 3 commandline arguments
    script, first, second, third = argv
elif argc == 3:
    # There were only 2 commandline arguments
    script, first, second = argv
    third = '3rd'
elif argc == 2:
    # There was only 1 commandline argument
    script, first = argv
    second = '2nd'
    third = '3rd'
elif argc == 1:
    # There was no commandline arguments
    script = argv[0]
    first = '1st'
    second = '2nd'
    third = '3rd'
else:
    print "Too many commandline arguments"
    exit(1)

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

当然,这只是一个例子。您可以在if语句中执行任何您想要的操作(将名称指定给不同的内容、引发异常、打印消息、退出脚本等)。这里最重要的部分是
argc=len(argv)
行和if语句,它们检查脚本接收到多少个参数。

好的,我添加了您放在这里的内容,但是输出应该是,“脚本被调用:(无论保存在何处)”您的第一个变量是:first“您的第二个变量是:2nd”您的第三个变量是:3rd“但是我知道脚本名为:C:\Users\Justin\Desktop\Python\exerces\module13.py您的第一个变量是:None您的第二个变量是:None您的第三个变量是:None正如我所说,这只是一个示例。在if语句中,您可以做任何您想做的事情。但请看我的编辑。现在,它将名称
None
指定给字符串。