<dd id="sga4y"><optgroup id="sga4y"></optgroup></dd>
<nav id="sga4y"><code id="sga4y"></code></nav>
  • <optgroup id="sga4y"></optgroup>

    習題 14: 提示和傳遞?

    讓我們使用 argvraw_input 一起來向用戶提一些特別的問題。下一節習題你會學習如何讀寫文件,這節練習是下節的基礎。在這道習題里我們將用略微不同的方法使用 raw_input,讓它打出一個簡單的 > 作為提示符。這和一些游戲中的方式類似,例如 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)
    

    我們將用戶提示符設置為變量 prompt,這樣我們就不需要在每次用到 raw_input 時重復輸入提示用戶的字符了。而且如果你要將提示符修改成別的字串,你只要改一個位置就可以了。

    非常順手吧。

    你應該看到的結果?

    當你運行這個腳本時,記住你需要把你的名字賦給這個腳本,讓 argv 參數接收到你的名稱。

    $ 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.
    

    加分習題?

    1. 查一下 Zork 和 Adventure 是兩個怎樣的游戲。 看看能不能下載到一版,然后玩玩看。
    2. prompt 變量改成完全不同的內容再運行一遍。
    3. 給你的腳本再添加一個參數,讓你的程序用到這個參數。
    4. 確認你弄懂了三個引號 """ 可以定義多行字符串,而 % 是字符串的格式化工具。

    Project Versions

    Table Of Contents

    Previous topic

    習題 13: 參數、解包、變量

    Next topic

    習題 15: 讀取文件

    This Page

    97av