笨方法学Python 习题 35: 分支和函数
来源:互联网 发布:戎美女装淘宝店 编辑:程序博客网 时间:2024/05/17 06:39
#!usr/bin/python# -*-coding:utf-8-*-from sys import exitdef gold_room():print("This room is full of gold. How much do you take?")next = input("> ")if "0" in next or "1" in next:how_much = int(next)else:dead("Man, learn to type a number.")if how_much < 50:print("Nice, you're not greedy, you win!")exit(0)else:dead("You greedy bastard!")def bear_room():print ("There is a bear here.")print ("The bear has a bunch of honey.")print ("The fat bear is in front of another door.")print ("How are you going to move the bear?")bear_moved = Falsewhile True:next = input("> ")if next == "take honey":dead("The bear looks at you then slaps your face off.")elif next == "taunt bear" and not bear_moved:print("The bear has moved from the door. You can go through it now.")bear_moved = Trueelif next == "taunt bear" and bear_moved:dead("The bear gets pissed off and chews your leg off.")elif next == "open door" and bear_moved:gold_room()else:print("I got no idea what that means.")def cthulhu_room():print ("Here you see the great evil Cthulhu.")print ("He, it, whatever stares at you and you go insane.")print ("Do you flee for your life or eat your head?")next = input("> ")if "flee" in next:start()elif "head" in next:dead("Well that was tasty!")else:cthulhu_room()def dead(why):print(why,"Good job")exit(0)def start():print ("You are in a dark room.")print ("There is a door to your right and left.")print ("Which one do you take?")next = input("> ")if next == "left":bear_room()elif next == "right":cthulhu_room()else:dead("You stumble around the room until you starve.")start()
运行结果如下:
You are in a dark room.There is a door to your right and left.Which one do you take?> leftThere is a bear here.The bear has a bunch of honey.The fat bear is in front of another door.How are you going to move the bear?> taunt bearThe bear has moved from the door. You can go through it now.> open doorThis room is full of gold. How much do you take?> asfMan, learn to type a number. Good job!
加分习题
把这个游戏的地图画出来,把自己的路线也画出来。
改正你所有的错误,包括拼写错误。
为你不懂的函数写注解。记得文档注解该怎么写吗?
为游戏添加更多元素。通过怎样的方式可以简化并且扩展游戏的功能呢?
这个 gold_room 游戏使用了奇怪的方式让你键入一个数字。这种方式会导致什么样的 bug? 你可以用比检查 0、1 更好的方式判断输入是否是数字吗?int() 这个函数可以给你一些头绪。
常见问题回答
救命啊!太难了我搞不懂!
当你搞不懂的时候,就在*每一行*代码的上方写下注解,向自己解释这一行的功能。在这个过程中如果有了新的理解,就随时修正自己前面的注解。注解完后,就画一个工作原理的示意图,或者写一段文字表述一下。这样你就能弄懂了。
为什么是 while True:?
这样可以创建一个无限循环。
exit(0) 有什么功能?
在很多类型的操作系统里,``exit(0)`` 可以中断某个程序,而其中的数字参数则用来表示程序是否是碰到错误而中断。 exit(1) 表示发生了错误,而 exit(0) 则表示程序是正常退出的。这和我们学的布尔逻辑 0==False 正好相反,不过你可以用不一样的数字表示不同的错误结果。比如你可以用 exit(100) 来表示另一种和 exit(2)` 或 exit(1) 不同的错误。
为什么 raw_input() 有时写成 raw_input('> ')?
raw_input 的参数是一个会被打印出来的字符串,这个字符串一般用来提示用户输入。
阅读全文
0 0
- 习题35,分支和函数,笨方法学python
- 笨方法学Python 习题 35: 分支和函数
- 习题35,36分支与函数,设计和调试,笨方法学python,中文版游戏
- 笨方法学习Python-习题35: 分支和函数
- 笨方法学Python 习题 19: 函数和变量
- 习题35 分支和函数
- 笨方法学python 习题35修改
- 笨方法学Python 习题 18: 命名、变量、代码、函数
- 笨方法学Python 习题 20: 函数和文件
- 笨方法学Python 习题 21: 函数可以返回东西
- 笨办法学python习题19 函数和变量
- 笨方法学Python 习题 2: 注释和井号
- 笨方法学Python 习题 4: 变量(variable)和命名
- 笨方法学Python 习题 14: 提示和传递
- 笨方法学Python 习题 30: Else 和 If
- 笨方法学Python 习题 32: 循环和列表
- 笨方法学Python 习题 36: 设计和调试
- 笨方法学python 习题32(循环和列表)习题33(while循环)
- win10配置Java环境变量
- 设计模式初探-适配器模式
- vsftp.conf 、user_list、ftpusers 配置文件
- Python科学计算三维可视化(1) ——TVTK库入门
- Linux内核源码-sys_listen()
- 笨方法学Python 习题 35: 分支和函数
- POJ 3544 Journey with Pigs
- SVN(TortoiseSVN)详细教程(四)--创建分支合并相互操作
- IO流的小例子
- 最大乘积
- mysql分区效率测试
- Numpy之array用法
- python批量kill某一个进程
- HDU 4533 威威猫系列故事――晒被子(线段树区间更新+分情况推公式)