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

    習題 31: 作出決定?

    這本書的上半部分你打印了一些東西,而且調用了函數,不過一切都是直線式進行的。你的腳本從最上面一行開始,一路運行到結束,但其中并沒有決定程序流向的分支點。現在你已經學了 if, else, 和 elif ,你就可以開始創建包含條件判斷的腳本了。

    上一個腳本中你寫了一系列的簡單提問測試。這節的腳本中,你將需要向用戶提問,依據用戶的答案來做出決定。把腳本寫下來,多多鼓搗一陣子,看看它的工作原理是什么。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    print "You enter a dark room with two doors.  Do you go through door #1 or door #2?"
    
    door = raw_input("> ")
    
    if door == "1":
        print "There's a giant bear here eating a cheese cake.  What do you do?"
        print "1. Take the cake."
        print "2. Scream at the bear."
    
        bear = raw_input("> ")
    
        if bear == "1":
            print "The bear eats your face off.  Good job!"
        elif bear == "2":
            print "The bear eats your legs off.  Good job!"
        else:
            print "Well, doing %s is probably better.  Bear runs away." % bear
    
    elif door == "2":
        print "You stare into the endless abyss at Cthulhu's retina."
        print "1. Blueberries."
        print "2. Yellow jacket clothespins."
        print "3. Understanding revolvers yelling melodies."
    
        insanity = raw_input("> ")
        
        if insanity == "1" or insanity == "2":
            print "Your body survives powered by a mind of jello.  Good job!"
        else:
            print "The insanity rots your eyes into a pool of muck.  Good job!"
    
    else:
        print "You stumble around and fall on a knife and die.  Good job!"
    

    這里的重點是你可以在“if 語句”內部再放一個“if 語句”。這是一個很強大的功能,可以用來創建嵌套(nested)的決定,其中的一個分支將引向另一個分支的子分支。

    你需要理解 if 語句 包含 if 語句 的概念。做一下加分習題,這樣你會確信自己真正理解了它們。

    你應該看到的結果?

    我在玩一個小冒險游戲,我玩的水平不怎么好:

    $ python ex31.py 
    You enter a dark room with two doors.  Do you go through door #1 or door #2?
    > 1
    There's a giant bear here eating a cheese cake.  What do you do?
    1. Take the cake.
    2. Scream at the bear.
    > 2
    The bear eats your legs off.  Good job!
    
    $ python ex31.py 
    You enter a dark room with two doors.  Do you go through door #1 or door #2?
    > 1
    There's a giant bear here eating a cheese cake.  What do you do?
    1. Take the cake.
    2. Scream at the bear.
    > 1
    The bear eats your face off.  Good job!
    
    $ python ex31.py 
    You enter a dark room with two doors.  Do you go through door #1 or door #2?
    > 2
    You stare into the endless abyss at Cthuhlu's retina.
    1. Blueberries.
    2. Yellow jacket clothespins.
    3. Understanding revolvers yelling melodies.
    > 1
    Your body survives powered by a mind of jello.  Good job!
    
    $ python ex31.py 
    You enter a dark room with two doors.  Do you go through door #1 or door #2?
    > 2
    You stare into the endless abyss at Cthuhlu's retina.
    1. Blueberries.
    2. Yellow jacket clothespins.
    3. Understanding revolvers yelling melodies.
    > 3
    The insanity rots your eyes into a pool of muck.  Good job!
    
    $ python ex31.py 
    You enter a dark room with two doors.  Do you go through door #1 or door #2?
    > stuff
    You stumble around and fall on a knife and die.  Good job!
    
    $ python ex31.py 
    You enter a dark room with two doors.  Do you go through door #1 or door #2?
    > 1
    There's a giant bear here eating a cheese cake.  What do you do?
    1. Take the cake.
    2. Scream at the bear.
    > apples
    Well, doing apples is probably better.  Bear runs away.
    

    加分習題?

    為游戲添加新的部分,改變玩家做決定的位置。盡自己的能力擴展這個游戲,不過別把游戲弄得太怪異了。

    Project Versions

    Table Of Contents

    Previous topic

    習題 30: Else 和 If

    Next topic

    習題 32: 循環和列表

    This Page

    97av