练习35——分支和函数

来源:互联网 发布:图片剪切软件下载 编辑:程序博客网 时间:2024/05/17 07:56
# coding:utf-8# ex35  分支和函数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.")    #新增的判断,使用try当int()报错时,提示输入错误,否则进入对数字大小的判断    try:        how_much = int(next)    except:        dead("Wrong input.")    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 = 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 = 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()# 加分题:# 1.这个 gold_room 游戏使用了奇怪的方式让你键入一个数字。这种方式会导致什么样的 bug? # 你可以用比检查 0、1 更好的方式判断输入是否是数字吗?int() 这个函数可以给你一些头绪。# A:只检查0,1在不在输入内,当出现22,33,之类的数字就无法判断正确性的。这边使用int()搭配try方法使用,# 给int()的参数不为数字时,会报错,可以用这个来进行判断是否为整数。# 这个try的使用方法很基础,仅作为解决本问题的方式,以后完善。
0 0