代码
from sys import exit
def gold_room():
print("This room is full of gold. How much do you take?")
choice = input(">(0/1/...)")
if "0" in choice or "1" in choice:
how_much = int(choice)
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:#为什么不是while bear_moved = True?-明白了,用true,没加入任何条件,这样就成为了一个无限循环。这里的True是让循环无限下去,而不是真的想赋值并进行判断。
choice = input("> (take honey/taunt bear/taugh bear/open door/...) ")
if choice == "take honey":
dead("The bear looks at you then slaps your face off.")
elif choice == "taunt bear" and not bear_moved:#not bear_moved就是bear_moved = false?
print("The bear moved from the door.")
print("You can go through it now.")
bear_moved = True#选择这项之后,为何又回到bear_room()函数?-因为这是一个无限循环里的一个分支,并且结局不是指向外部,因此该代码块完成后进行重新循环了。
elif choice == "taugh bear" and bear_moved:
dead("The bear gets pissed off and chews your leg off.")
elif choice == "open door" and bear_moved:#and 表示双重条件。
gold_room()
else:
print("I got no idear 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?")
choice = input("> (flee/head/...)")
if "flee" in choice:
start()
elif "head" in choice:
dead("Well that was tasty!")
else:
cthulhu_room()
def dead(why):
print(why, "Good job!")
exit(0)
'''
python的程序有两中退出方式:os._exit(), sys.exit():
os._exit()会直接将python程序终止,之后的所有代码都不会继续执行。
sys.exit()会引发一个异常:SystemExit,如果这个异常没有被捕获,那么python解释器将会退出。如果有捕获此异常的代码,那么这些代码还是会执行。捕获这个异常可以做一些额外的清理工作。0为正常退出,其他数值(1-127)为不正常,可抛异常事件供捕获。
'''
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?")
choice = input("> (left/right/...)")#增加了一些小提示。
if choice == "left":
bear_room()
elif choice == "right":
cthulhu_room()
else:
dead("You stumble around the room until you starve.")
start()#本课的代码,先列下一堆的函数(函数其实相当于一个小段程序块),然后运行其中一个start函数,启动整段代码。
问题
问题和一些其他内容都加在上面的代码里了。
学到的
1、exit的用法;
2、无限循环的用法。