python - 初学者如何在 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)
解决方案
在您可以准确地解压argv
缩成两个值之前,您必须确保列表中确实(或至少)有两个值。
if len(argv) < 2:
sys.exit("Too few arguments")
script, user_name = argv[:2] # Only unpack the first two elements.
推荐阅读
- h2o - 是否可以在 H2O Driverless 中定义最终模型使用多少变量
- sql - 如何将不同的数据放入一个单元格
- javascript - Reactjs中如何通过onClick扩展div元素
- flutter - 默认构造函数已经定义。我正在使用颤振
- sqlite - 在 SQLite 数据库中预加载数据的 Xamarin 表单
- javascript - 创建一个函数以在 Javascript 中按对象的值对对象数组进行排序
- node.js - 节点usb打印机
- android - 将 ArrayList 的 ArrayList 传递给另一个类
- javascript - 试图让个人网站配色方案与 Flux 色温相匹配
- webapi - Persona U 是 U 4500 Web API