鱼C论坛

 找回密码
 立即注册
查看: 2597|回复: 2

大佬们为什么运行不了

[复制链接]
发表于 2022-11-13 16:34:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
from random import randrange
def init():
    result={i:"goat"for i in range(3)}
    r=randrange(3)
    result[r]='car'
    return result
def start():
    doors = init()
    while True:
        try:
            firstDoorNum=int(input("choose a door:"))
            assert1<=firstDoorNum<=3
            break
        except:
            print("door number must be 1,2,3")
    for door in doors.keys()-{firstDoorNum}:
        if doors[door]=="goat":
            print('"goat" behind the door',door)
            thirddoor=(door.keys()-{door,firstDoorNum}).pop()
            change=input('switch to{}?(y/n)'.format(thirddoor))
            finaldoornum=thirddoor if change=='y' else firstDoorNum
            if doors[finaldoornum]=='goat':
                return 'I win'
            else:
                return 'you win'
    while True:
        print('='*30)
        print(start())
        r=input('do you want to try once more?(y/n)')
        if r =='n':
            break
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-13 16:47:41 | 显示全部楼层
本帖最后由 tommyyu 于 2022-11-13 17:23 编辑
from random import randrange
def init():
    result={i:"goat"for i in range(3)}
    r=randrange(3)
    result[r]='car'
    return result
def start():
    doors = init()
    while True:
        try:
            firstDoorNum=int(input("choose a door:"))
            assert 1<=firstDoorNum<=3 #这一句原来 assert 后面少了一个空格
            firstDoorNum -= 1 # 由于后面字典的键都是从 0 开始的,所以要和后面对应。
            break
        except:
            print("door number must be 1,2,3")
    for door in doors.keys()-{firstDoorNum}:
        if doors[door]=="goat":
            print('"goat" behind the door',door+1) #door 要加一
            thirddoor=(doors.keys()-{door,firstDoorNum}).pop() #这一句的 doors.keys() 写成了 door.keys()
            change=input('switch to {}?(y/n)'.format(thirddoor+1)) #thirddoor也要加一
            finaldoornum=thirddoor if change=='y' else firstDoorNum
            if doors[finaldoornum]=='goat':
                return 'I win'
            else:
                return 'you win'
while True:  #循环部分都多了一个缩进
    print('='*30)
    print(start())
    r=input('do you want to try once more?(y/n)')
    if r =='n':
        break
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-13 19:41:09 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-25 15:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表