习题 35: 分支和函数
知识点总结:
• 本次做的是利用循环、判定做的一个小游戏
•fromsys import exit #向sys模块借一个exit函数用来退出程序
•exit(0), #正常退出
•start() #start为线程入口,通过它启动线程
•whileTrue: #这是一种获得无限循环的常用方法,因为判断表达式的值本身就是True,while循环将无限进行下去。
ex35.py
#-*-coding: utf-8-*-
from sys import exit
#向sys模块借一个exit函数用来退出程序
#定义函数:gold_room,金房间
def 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():
#熊房间我想了很久,为什么要加布尔值
#进入熊房间后有几种选择:
#1.take honey ==》dead(死亡,退出)
#2.taunt bear ==》open door ==》(进入金币房)
# ==》take honey==》dead(死亡,退出)
# ==》其他(无效再次选择)
#3.其他 ==》其他(无效再次选择)
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:,如果为真则无限执行下去
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()
#定义终止,exit(0)表正常退出
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为线程入口,通过它启动线程
start()
运行结果:
思维导图(使用xmind绘画):