笨办法学python练习35分支与函数

1. 画一个这个游戏的流程图,并指出它是如何运转的。

 

 3. 为你不理解的函数写上注释。 4. 为游戏增加一些功能,同时使代码更加简化。

这是原代码未经修改

from sys import exit 
 
def gold_room(): 
    print("这个房间里堆满了金子。你要拿多少?") 

    choice = input("> ") 
    if "0" in choice or "1" in choice: 
        how_much = int(choice) 
    else: 
        dead("老兄,学打字吧。") 
 
    if how_much < 50: 
        print("不错,你不贪心,你赢了!") 
        exit(0) 
    else: 
        dead("你贪婪的混蛋!") 
 
 
def bear_room(): 
    print("这里有一只熊。") 
    print("熊有一堆蜂蜜。") 
    print("胖熊在另一扇门前。") 
    print("你打算怎么移动这只熊?") 
    bear_moved = False 

    while True: 
        choice = input("> ") 

        if choice == "拿走蜂蜜": 
            dead("熊看着你,然后打了你一巴掌") 
        elif choice == "嘲讽熊" and not bear_moved: 
            print("熊已经从门口走了.") 
            print("你现在可以走了。") 
            bear_moved = True 
        elif choice == "嘲讽熊" and bear_moved: 
            dead("熊生气了,咬了你的腿。") 
        elif choice == "开门" and bear_moved: 
            gold_room() 
        else: 
            print("我不知道那是什么意思。") 


def cthulhu_room(): 
    print("这里你看到了伟大的恶魔克苏鲁") 
    print("他,不管是什么,只要盯着你,你就会发疯。") 
    print("你是逃命呢,还是吃自己的头呢?") 

    choice = input("> ") 

    if "逃离" in choice: 
        start() 
    elif "头" in choice: 
        dead("嗯,那很好吃!") 
    else: 
        cthulhu_room() 


def dead(why): 
    print(why, "好运") 
    exit(0) 

def start(): 
    print("你在一个黑暗的房间里。") 
    print("你的左右各有一扇门。") 
    print("你选哪一个?") 

    choice = input("> ") 

    if choice == "左": 
        bear_room() 
    elif choice == "右": 
        cthulhu_room() 
    else: 
        dead("你在房间里走来走去,直到饿死。") 


start() 


运行结果 

 

5. 这个 gold_room 让你输入数字的方式有点奇怪。这样做有哪些 bug ?你能改善我的代码吗?可以 查查看 int() 的相关知识。

如果输入的数字不是0或者1,就会“ 提示老兄,学打字吧。”直接结束

改善

使用isdigit()来判断输入的是否为正整数代码修改如下

from sys import exit 
 
def gold_room(): 
    print("这个房间里堆满了金子。你要拿多少?") 

    choice = input("> ")
    if choice.isdigit():
        how_much = int(choice)
        if how_much < 50: 
            print("不错,你不贪心,你赢了!") 
            exit(0) 
        else: 
            dead("你贪婪的混蛋!")
    else: 
        dead("老兄,学打字吧。") 
 
     
def dead(why): 
    print(why, "好运") 
    exit(0) 
gold_room() 

输出为

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值