首页 > 解决方案 > 初学者如何在 Argv 中分隔值?

问题描述

我最近才开始编码,我正在使用一本名为“Learn Python the Hard Way”的书。我遇到了一个练习,我必须导入 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)

标签: pythonpython-3.x

解决方案


在您可以准确地解压argv缩成两个值之前,您必须确保列表中确实(或至少)有两个值。

if len(argv) < 2:
    sys.exit("Too few arguments")

script, user_name = argv[:2]  # Only unpack the first two elements.

推荐阅读