练习 14 提示和传递
ex14.py
我们把用户提示符设置成变量 prompt
,然后把它赋给 input
而不是一遍遍地输入它们。现在如果我们想把提示符变成别的东西,只要修改一个地方,然后重新运行脚本即可,非常方便。
当你运行脚本的时候,记住一定要把你的名字赋给这个脚本,让 argv
接收到你的名字。
$ python3.6 ex14.py zed
Hi zed, I'm the ex14.py script.
I'd like to ask you a few questions.
> Yes
Where do you live zed?
> San Francisco
What kind of computer do you have?
> Tandy 1000
You live in San Francisco. Not sure where that is.
And you have a Tandy 1000 computer. Nice.
- 查查看 Zork 和 Adventure 游戏是什么,找来玩玩。
- 把 变量改成别的东西。
- 在你的脚本里再加一个参数,就像之前练习中
first, second = argv
一样。 - 确定你理解了我是如何在最后一行把
"""
多行格式字符(style multiline string)和{}
格式激活器(format activator)结合起来的。
我运行脚本的时候收到了 SyntaxError: invalid syntax
。我再说一次,你得在命令行里运行它,而不是在 python 里。如果你输入 python3.6
,然后再输入 python3.6 ex14.py Zed
,就会无法运行,因为你是在 python 里面运行 python。关掉窗口,然后只输入 python3.6 ex14.py Zed
。
你说的“改变提示符”是什么意思?我不太理解。看到这个变量 prompt = '>'
了吗?改变它的值。你知道的,它只是一个字符串,你已经做了 13 个练习来创建它们了,所以好好想想,把它弄明白。
我收到了报错信息:ValueError: need more than 1 value to unpack.
我前面说过,你需要看看“你会看到”那部分然后复制我的做法。这儿也一样,注意我是如何输入命令行的,以及我为什么有一个命令行参数。
我能在 prompt 变量外面用双引号吗?你完全可以,试试吧。
你有一台 Tandy computer?是的,在我很小的时候。
我运行的时候收到了报错信息:NameError: name 'prompt' is not defined 。 你要么把 变量拼写错了,要么把那行漏掉了。回过头去,从下到上比较每一行代码。你一旦遇到这种报错,就说明你拼写错误或者忘了创建变量。