如何为初学者分隔Argv中的值?

时间:2019-06-19 11:57:27

标签: python python-3.x

我最近才刚开始编写代码,并且正在使用一本书:“艰难地学习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)

2 个答案:

答案 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.