《笨办法学Python》 第35课手记
来源:互联网 发布:北欧象征 知乎 编辑:程序博客网 时间:2024/05/29 11:15
《笨办法学Python》 第35课手记
本节课讲函数和分支的,实际上是一次综合练习,代码有点长,请先纠正代码中的错误使脚本能够运行。
原代码中使用三个空格来进行函数内部的缩进,但是我发现如果使用三个空格在缩进这个问题上会不断地报错,因此建议使用四个空格进行缩进。
代码如下:
from sys import exitdef gold_room(): print "This room is full of gold. How much do you take?" next = raw_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 = False while True: next = raw_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 = True elif 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 = raw_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 = raw_input("> ") if next == "left": bear_room() elif next == "right": cthulhu_room() else: dead("You stumble around the room until you starve.")start()
按照作者的操作思路进行游戏结果如下:
本节课涉及的知识
whlie true:这是一种获得无限循环的常用方法,因为判断表达式的值本身就是True,while循环将
无限进行下去。
认真阅读常见问题解答,并记住它们。
这节课的代码很长,介绍一下读代码的方法。
首先函数gold_room、bear_room、cthulhu_room(克鲁苏,一个作家陛下的恶魔)、start、dead是独立的,这些函数包含很多的分支,以供玩家选择,不同的分支将让游戏走向不同的结果。请先读懂这些函数。
最后一行触发函数start从而使游戏开始,从start函数开始,根据用户输入的答案引导游戏向前推进,游戏的下一个进程实质上是在start函数中调用其余的函数。
在心里给出你的答案,按照代码的含义向前推进,画出游戏的流程图。
1 0
- 《笨办法学Python》 第35课手记
- 《笨办法学Python》 第0课手记
- 《笨办法学Python》 第1课手记
- 《笨办法学Python》 第2课手记
- 《笨办法学Python》 第3课手记
- 《笨办法学Python》 第4课手记
- 《笨办法学Python》 第5课手记
- 《笨办法学Python》 第6课手记
- 《笨办法学Python》 第7课手记
- 《笨办法学Python》 第8课手记
- 《笨办法学Python》 第9课手记
- 《笨办法学Python》 第10课手记
- 《笨办法学Python》 第11课手记
- 《笨办法学Python》 第12课手记
- 《笨办法学Python》 第13课手记
- 《笨办法学python》 第14课手记
- 《笨办法学Python》 第15课手记
- 《笨办法学Python》 第16课手记
- 大数据 IMF传奇 sparkpi 运行5万次
- YTU 2617: B C++时间类的运算符重载
- 机房重构—DataGridView绑定列属性
- YTU 2618: B 求类中数据成员的最大值-类模板
- YTU 2619: B 友元类-计算两点间距离
- 《笨办法学Python》 第35课手记
- 吐槽我是特种兵之霹雳火
- hdoj1540Tunnel Warfare【线段树】
- Codeforces 625A Guest From the Past 【基础数学】
- Codeforces 625B War of the Corporations 【暴力】
- Codeforces 625C K-special Tables 【贪心】
- 快速幂&快速乘
- 在amazon ec2上部署spark cluster
- DP之状态和状态转移