我正在艰难地从Python开始练习练习13。我试图学习python 3,所以我试图将代码转换为我在codecademy学到的代码。我以为我输入了错误,所以我把他的代码复制到我的IDE中。我收到了错误。你们能解释一下为什么会发生这种情况。我完成了一手搜索,无法找到任何人收到此错误。谢谢你们的帮助。除了需要运行的()之外,它完全相同。
脚本,第一,第二,第三= argv
ValueError:解包需要多于1个值
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))
答案 0 :(得分:0)
错误是您没有向脚本传递足够的参数。
这意味着,var argv
只有脚本的名称而不再有。请使用len(argv)
你应该这样称呼:
python myscript.py variable1 variable2 variable3
如果从IDE调用脚本,则必须将其配置为传递额外的参数。
您还可以动态打印传递给脚本的变量:
print('Script is called: %s' % argv[0])
for var_number, var in enumerate(argv[1:]):
print('The var number %s is: %s' % (var_number, var))
顺便说一句,变量名称周围的括号是不必要的
答案 1 :(得分:0)
我认为你只是在命令行中传递它: -
root@root:-# python foo.py
你应该通过: -
root@root:~# python foo.py first second third
输出继电器: -
The script is called: foo.py
Your first variable is: first
Your second variable is: second
Your third variable is: third