python 做出決定

2021-09-15 14:53 更新

練習(xí)31.做出決定

這本書的上半部分你打印了一些東西,而且調(diào)用了函數(shù),不過一切都是直線式進(jìn)行的。你的腳本從最上面一行開始,一路運(yùn)行到結(jié)束,但其中并沒有決定程序流向的分支點(diǎn)?,F(xiàn)在你已經(jīng)學(xué)了if,else,和elif,你就可以開始創(chuàng)建包含條件判斷的腳本了。

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

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!"

這里的重點(diǎn)是你可以在“if語句”內(nèi)部再放一個“if語句”。這是一個很強(qiáng)大的功能,可以用來創(chuàng)建嵌套(nested),其中的一個分支將引向另一個分支的子分支。

你需要理解if語句包含if語句的概念。做一下附加題,確保自己真正理解了它們。

你看到的結(jié)果

下面是我玩這個小游戲的結(jié)果,我玩的不怎么樣:

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

附加題

  1. 為游戲添加新的部分,改變玩家做決定的位置。盡自己的能力擴(kuò)展這個游戲,不過別把游戲弄得太怪異了。
  2. 寫一個全新的游戲,你可能不喜歡我提供的這個,那么自己寫一個玩玩。這是你的電腦,你可以用它做任何自己想做的事情。

常見問題

Q: 可以用if-else替換elif 嗎?

某些情況下可以, 但是這個也依賴于每一個if/else是怎么寫的 。這也意味著, Python會檢查每個if-else的組合,而不是只檢查if-elif-else組合中的第一個為假的分支,嘗試用兩種方式多編寫一些代碼,以找出他們的不同點(diǎn)。

Q:我怎么知道一個數(shù)字是在一個數(shù)字范圍之間?

有兩種方法: 一種經(jīng)典的方式是使用0 < x < 10 或者 1 <= x < 10,另一中方式是使用x in range(1, 10)

Q: 怎樣才能在if-elif-else代碼塊中增加更多的選擇?

為每一個可能的選擇增加一個elif 代碼塊。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號