W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
這節(jié)練習(xí)讓我們使用argv
和 raw_input
一起來向用戶提一些特別的問題。下一節(jié)習(xí)題你會(huì)學(xué)習(xí)如何讀寫文件,這節(jié)練習(xí)是下節(jié)的基礎(chǔ)。在這道習(xí)題里我們將用略微不同的方法使用 raw_input
,讓它打出一個(gè)簡(jiǎn)單的 >
作為提示符。這和一些游戲中的方式類似,例如 Zork 或者 Adventure 這兩款游戲。
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?
> San Francisco
What kind of computer do you have?
> Tandy 1000
Alright, so you said 'Yes' about liking me.
You live in 'San Francisco'. Not sure where that is.
And you have a 'Tandy 1000' computer. Nice.
- 查一下 Zork 和 Adventure是兩個(gè)怎樣的游戲??纯茨懿荒芟螺d到一版,然后玩玩看。
- 將
prompt
變量改成完全不同的內(nèi)容再運(yùn)行一遍。- 給你的腳本再添加一個(gè)參數(shù),讓你的程序用到這個(gè)參數(shù),像你在上一個(gè)練習(xí)中用到的解包操作
first, second = ARGV
。- 確認(rèn)你弄懂了三個(gè)引號(hào)
"""
可以定義多行字符串,而%
是字符串的格式化工具。
SyntaxError:invalid syntax
.重申一遍,你要在命令行里執(zhí)行腳本,而不是在Python的解釋器里。如果在python解析器里再輸入
python ex14.py Zed
一定會(huì)出錯(cuò)的,因?yàn)槟闶窃赑ython里運(yùn)行Python腳本了。
prompt
的值?看到代碼的這句了么
prompt = '> '
,改變它的值就是讓你修改prompt
為一個(gè)不同 于>
的值,只是修改一個(gè)字符串而已,你已經(jīng)做過13個(gè)練習(xí)題,這次試試看自己解決這個(gè)問題。
need more than 1 value to unpack
.看看“你看到的結(jié)果”這部分,并且看看我是怎么運(yùn)行腳本的。你應(yīng)該注意我是如何輸入命令的,為什么我輸入了一個(gè)命令行參數(shù)?
不要用IDLE,現(xiàn)在只用文本編輯器就夠了。
prompt
用雙引號(hào)嗎?當(dāng)然可以,盡管試試看。
name 'prompt' is not defined
.你可能是拼寫錯(cuò)了prompt或者是丟掉了代碼的那一行。逐行對(duì)比下你和我的代碼那里不一樣。你遇到這類錯(cuò)誤意味著你有拼寫錯(cuò)誤或者你根本沒有定義這個(gè)變量。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: