讓我們使用 argv 和 raw_input 一起來向用戶提一些特別的問題。下一節(jié)習(xí)題你會(huì)學(xué)習(xí)如何讀寫文件,這節(jié)練習(xí)是下節(jié)的基礎(chǔ)。在這道習(xí)題里我們將用略微不同的方法使用 raw_input,讓它打出一個(gè)簡(jiǎn)單的 > 作為提示符。這和一些游戲中的方式類似,例如 Zork 或者 Adventure 這兩款游戲。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | from sys import argv
script, user_name = argv
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 = raw_input(prompt)
print "Where do you live %s?" % user_name
lives = raw_input(prompt)
print "What kind of computer do you have?"
computer = raw_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)
|
我們將用戶提示符設(shè)置為變量 prompt,這樣我們就不需要在每次用到 raw_input 時(shí)重復(fù)輸入提示用戶的字符了。而且如果你要將提示符修改成別的字串,你只要改一個(gè)位置就可以了。
非常順手吧。
當(dāng)你運(yùn)行這個(gè)腳本時(shí),記住你需要把你的名字賦給這個(gè)腳本,讓 argv 參數(shù)接收到你的名稱。
$ python ex14.py Zed
Hi Zed, I'm the ex14.py script.
I'd like to ask you a few questions.
Do you like me Zed?
> yes
Where do you live Zed?
> America
What kind of computer do you have?
> Tandy
Alright, so you said 'yes' about liking me.
You live in 'America'. Not sure where that is.
And you have a 'Tandy' computer. Nice.