💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 习题 31: 作出决定 这本书的上半部分你打印了一些东西,而且调用了函数,不过一切都是直线式进行的。你的脚本从最上面一行开始,一路运行到结束,但其中并没有决定程序流向的分支点。现在你已经学了 if, else, 和 elif ,你就可以开始创建包含条件判断的脚本了。 上一个脚本中你写了一系列的简单提问测试。这节的脚本中,你将需要向用户提问,依据用户的答案来做出决定。把脚本写下来,多多鼓捣一阵子,看看它的工作原理是什么。 <table class="highlighttable"><tbody><tr><td class="linenos"> <div class="linenodiv"> <pre> 1&#13; 2&#13; 3&#13; 4&#13; 5&#13; 6&#13; 7&#13; 8&#13; 9&#13; 10&#13; 11&#13; 12&#13; 13&#13; 14&#13; 15&#13; 16&#13; 17&#13; 18&#13; 19&#13; 20&#13; 21&#13; 22&#13; 23&#13; 24&#13; 25&#13; 26&#13; 27&#13; 28&#13; 29&#13; 30&#13; 31&#13; 32&#13; 33</pre> </div> </td> <td class="code"> <div class="highlight"> <pre>print "You enter a dark room with two doors. Do you go through door #1 or door #2?"&#13; &#13; door = raw_input("&gt; ")&#13; &#13; if door == "1":&#13; print "There's a giant bear here eating a cheese cake. What do you do?"&#13; print "1. Take the cake."&#13; print "2. Scream at the bear."&#13; &#13; bear = raw_input("&gt; ")&#13; &#13; if bear == "1":&#13; print "The bear eats your face off. Good job!"&#13; elif bear == "2":&#13; print "The bear eats your legs off. Good job!"&#13; else:&#13; print "Well, doing %s is probably better. Bear runs away." % bear&#13; &#13; elif door == "2":&#13; print "You stare into the endless abyss at Cthulhu's retina."&#13; print "1. Blueberries."&#13; print "2. Yellow jacket clothespins."&#13; print "3. Understanding revolvers yelling melodies."&#13; &#13; insanity = raw_input("&gt; ")&#13; &#13; if insanity == "1" or insanity == "2":&#13; print "Your body survives powered by a mind of jello. Good job!"&#13; else:&#13; print "The insanity rots your eyes into a pool of muck. Good job!"&#13; &#13; else:&#13; print "You stumble around and fall on a knife and die. Good job!"&#13; </pre> </div> </td> </tr></tbody></table> 这里的重点是你可以在“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. ~~~ ### 加分习题 为游戏添加新的部分,改变玩家做决定的位置。尽自己的能力扩展这个游戏,不过别把游戏弄得太怪异了。