我最近才刚开始编写代码,并且正在使用一本书:“艰难地学习Python”。我参加了一个练习,其中我必须导入sys并使用argv。 这本书使用的是python 2.7,但有一些不同之处,但我已经找到解决方法,但是对于argv却没有,因为我不知道如何分割希望argv成为的单词。
在互联网上,人们正在放弃过于复杂的修复程序,以至于我的初学者编码器脑子还无法处理。
from sys import argv
script, user_name = argv # <--------- Here is the problem, I can't make it 2 values
prompt = '>'
print("Hi %s, I'm the %s script." % (user_name, script))
print("I'd like to ask you a few questions.")
print("Do you like me %s?" % user_name)
likes = input(prompt)
print("Where do you live %s?" % user_name)
lives = input(prompt)
print("What kind of computer do you have?")
computer = input(prompt)
print( """
Alright, so you said %r about liking me.
You live in %r. Not sure where that is.
And you have a %r computer. Nice.
""" % (likes, lives, computer))
ValueError:没有足够的值可解包(预期2,得到1)
答案 0 :(得分:3)
在将argv
拆成正好两个值之前,必须确保列表中确实存在(emem)(至少)两个值。
if len(argv) < 2:
sys.exit("Too few arguments")
script, user_name = argv[:2] # Only unpack the first two elements.
答案 1 :(得分:0)
参数通过命令行传递-如果您使用Windows,它将是Power Shell,或者是Mac,然后是终端,它看起来像这样-(并原谅Power Shell引用):
[Root folder\mystuff]python ex14.py(arg1) name(arg2)
然后按Enter。然后,它将两个参数传递给脚本并将其放入变量中。希望这可以帮助。 引自来源:
$ python ex14.py **zed**
>>> Hi **zed**, I'm the ex14.py script.