美文网首页
python第四次实验(课后)

python第四次实验(课后)

作者: 叛逆闲人 | 来源:发表于2018-09-26 00:43 被阅读0次

    1、请输出所有的四叶玫瑰数。四叶玫瑰数是 4 位数的自幂数。自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。(例如:当 n 为 3 时, 有 1^3 + 5^3 + 3^3 = 153,153 即是 n 为 3 时的一个自幂数,3 位数的自幂数被称 为水仙花数)。

    第一种方法:

    i=1000
    while i < 10000:
        temp=i
        a=temp//1000#千位
        b=(temp%1000)//100#百位
        c=(temp%100)//10#十位
        d=(temp%10)#个位       
        if i == a**4 + b**4 + c**4 + d**4:
            print("四位数为:", temp)
        i += 1
    

    四位数为: 1634
    四位数为: 8208
    四位数为: 9474

    第二种方法:

    for i in range(1000,9999,1):
        sum=0
        temp=i
        while temp:
            sum=sum+(temp%10)**4
            temp=temp//10
        if sum==i:
            print(i)
    

    1634
    8208
    9474

    2、用户登录(三次机会)。给用户三次输入用户名和密码的机会,要求如下: 1)如输入第一行输入用户名为‘Kate’,第二行输入密码为‘666666’,输出‘登录成 功!’,退出程序; 2)当一共有 3 次输入用户名或密码不正确输出“3 次用户名或者密码均有误! 退出程序。”。

    for i in range(3):
        name = input("请输入姓名")
        key = input("请输入密码")
        if  name == "Kate" and key == "666666":
            print("登陆成功")
            a=1
        else:
            print("密码错误")
            a=2
    if a == 2:
        print("三次密码均有误")
    

    请输入姓名: 张泽中
    请输入密码: 查克
    密码错误
    请输入姓名: 冯小宝
    请输入密码: 子若非转
    密码错误
    请输入姓名: 夏仕鑫
    请输入密码: 死神
    密码错误
    三次密码均有误

    请输入姓名: Kate
    请输入密码: 666666
    登陆成功
    请输入姓名:

    3、猜数游戏。在程序中预设一个 0-100 之间的整数,让用户通过键盘输入所猜 的数,如果大于预设数,则显示”遗憾,太大了”,小于预设数则显示“遗憾,太 小了”,如此循环,直到猜中该数,显示“猜了 n 次,终于猜对了!”,其中 n 是 用户输入数字的次数,如果用户输入的数不是整数,则输出“输入内容必须为整 数!”的提示,并让用户重新输入。

    import random
    while True:
        try:
            k = random.randint(0, 100)
            x = int(input("请输入0~100之间的整数"))
            tem = 0
            while x != k:
                tem += 1
                if (x > k):
                    print("遗憾,太大了")
                else:
                    print("遗憾,太小了")
                x = eval(input("请输入0~100之间的整数"))
    
        except:
            print("输入内容必须为整数!")
        else:
            print("预测{}次,你猜中了".format(tem))
            break
    

    请输入0~100之间的整数32
    遗憾,太小了
    请输入0~100之间的整数56
    遗憾,太小了
    请输入0~100之间的整数34
    遗憾,太小了
    请输入0~100之间的整数78
    遗憾,太小了
    请输入0~100之间的整数98
    遗憾,太大了
    请输入0~100之间的整数87
    遗憾,太小了
    请输入0~100之间的整数92
    遗憾,太小了
    请输入0~100之间的整数94
    预测7次,你猜中了

    4、羊车门问题。有 3 扇关闭的门,一扇门后面停着汽车,其他们后面是山羊, 只有主持人知道每扇门后面是什么。参赛者可以选择一扇门,在它开启之前, 主持人会开启另一扇门,露出门后的山羊,然后允许参赛者更换自己的选择。 请问:参赛者更换选择后能否增加猜中汽车的机会?请用 random 库对这个随机 事件进行预测,分别输出参赛者改变选择和坚持选择获胜的机率。 (经典问题)

    方法一:

    #羊车门问题求解
    import random as rd
    k=100#选择次数
    i=0
    m=0
    for x in range(k):
        num = [1,1,0]
        rd.shuffle(num)#随机化门
        print("关闭前:"+str(num))
        human = rd.randint(0,2)#选择一个门
        print("随机选择第"+str(human+1)+"个门")
        #关闭一个羊门,赋值为9
        y=0
        while y <3:
            if y !=human and num[y] == 1:
                num[y]=9
                j=y
                y=3
            else:
                y+=1
        print("关闭一个门:"+str(num)) 
    
        #坚持选择
        if num[human] == 0:#中奖
            i+=1
            print("坚持选择中奖!")
        else:
            print("坚持选择未中奖!")        
    
        #更换选择
        z=0
        while z <3:
            if z != human and z != j:
                print("重新第"+str(z+1)+"个门")
                if num[z]==0:
                    m+=1
                    print("重新选择中奖!")
                else:
                    print("重新选择未中奖!")
                z=3
            else:
                z+=1
        print("\n")
    rate_1=i/k
    rate_2=m/k
    print("坚持选择的中奖概率="+str(rate_1))
    print("重新选择的中奖概率="+str(rate_2))
    

    关闭前:[1, 1, 0]
    随机选择第1个门
    关闭一个门:[1, 9, 0]
    坚持选择未中奖!
    重新第3个门
    重新选择中奖!

    关闭前:[0, 1, 1]
    随机选择第3个门
    关闭一个门:[0, 9, 1]
    坚持选择未中奖!
    重新第1个门
    重新选择中奖!

    关闭前:[1, 0, 1]
    随机选择第2个门
    关闭一个门:[9, 0, 1]
    坚持选择中奖!
    重新第3个门
    重新选择未中奖!

    关闭前:[1, 0, 1]
    随机选择第2个门
    关闭一个门:[9, 0, 1]
    坚持选择中奖!
    重新第3个门
    重新选择未中奖!

    关闭前:[0, 1, 1]
    随机选择第1个门
    关闭一个门:[0, 9, 1]
    坚持选择中奖!
    重新第3个门
    重新选择未中奖!

    关闭前:[1, 1, 0]
    随机选择第3个门
    关闭一个门:[9, 1, 0]
    坚持选择中奖!
    重新第2个门
    重新选择未中奖!

    关闭前:[0, 1, 1]
    随机选择第3个门
    关闭一个门:[0, 9, 1]
    坚持选择未中奖!
    重新第1个门
    重新选择中奖!

    关闭前:[0, 1, 1]
    随机选择第1个门
    关闭一个门:[0, 9, 1]
    坚持选择中奖!
    重新第3个门
    重新选择未中奖!

    关闭前:[0, 1, 1]
    随机选择第3个门
    关闭一个门:[0, 9, 1]
    坚持选择未中奖!
    重新第1个门
    重新选择中奖!

    关闭前:[1, 0, 1]
    随机选择第3个门
    关闭一个门:[9, 0, 1]
    坚持选择未中奖!
    重新第2个门
    重新选择中奖!

    关闭前:[1, 1, 0]
    随机选择第3个门
    关闭一个门:[9, 1, 0]
    坚持选择中奖!
    重新第2个门
    重新选择未中奖!

    关闭前:[0, 1, 1]
    随机选择第3个门
    关闭一个门:[0, 9, 1]
    坚持选择未中奖!
    重新第1个门
    重新选择中奖!

    关闭前:[0, 1, 1]
    随机选择第2个门
    关闭一个门:[0, 1, 9]
    坚持选择未中奖!
    重新第1个门
    重新选择中奖!

    关闭前:[1, 0, 1]
    随机选择第1个门
    关闭一个门:[1, 0, 9]
    坚持选择未中奖!
    重新第2个门
    重新选择中奖!

    关闭前:[1, 0, 1]
    随机选择第3个门
    关闭一个门:[9, 0, 1]
    坚持选择未中奖!
    重新第2个门
    重新选择中奖!

    关闭前:[1, 0, 1]
    随机选择第3个门
    关闭一个门:[9, 0, 1]
    坚持选择未中奖!
    重新第2个门
    重新选择中奖!

    关闭前:[1, 1, 0]
    随机选择第1个门
    关闭一个门:[1, 9, 0]
    坚持选择未中奖!
    重新第3个门
    重新选择中奖!

    关闭前:[1, 1, 0]
    随机选择第3个门
    关闭一个门:[9, 1, 0]
    坚持选择中奖!
    重新第2个门
    重新选择未中奖!

    关闭前:[0, 1, 1]
    随机选择第1个门
    关闭一个门:[0, 9, 1]
    坚持选择中奖!
    重新第3个门
    重新选择未中奖!

    关闭前:[0, 1, 1]
    随机选择第2个门
    关闭一个门:[0, 1, 9]
    坚持选择未中奖!
    重新第1个门
    重新选择中奖!

    关闭前:[1, 1, 0]
    随机选择第1个门
    关闭一个门:[1, 9, 0]
    坚持选择未中奖!
    重新第3个门
    重新选择中奖!

    关闭前:[1, 0, 1]
    随机选择第3个门
    关闭一个门:[9, 0, 1]
    坚持选择未中奖!
    重新第2个门
    重新选择中奖!

    关闭前:[1, 1, 0]
    随机选择第1个门
    关闭一个门:[1, 9, 0]
    坚持选择未中奖!
    重新第3个门
    重新选择中奖!

    关闭前:[1, 0, 1]
    随机选择第2个门
    关闭一个门:[9, 0, 1]
    坚持选择中奖!
    重新第3个门
    重新选择未中奖!

    关闭前:[0, 1, 1]
    随机选择第1个门
    关闭一个门:[0, 9, 1]
    坚持选择中奖!
    重新第3个门
    重新选择未中奖!

    关闭前:[1, 0, 1]
    随机选择第3个门
    关闭一个门:[9, 0, 1]
    坚持选择未中奖!
    重新第2个门
    重新选择中奖!

    关闭前:[1, 1, 0]
    随机选择第3个门
    关闭一个门:[9, 1, 0]
    坚持选择中奖!
    重新第2个门
    重新选择未中奖!

    关闭前:[1, 1, 0]
    随机选择第1个门
    关闭一个门:[1, 9, 0]
    坚持选择未中奖!
    重新第3个门
    重新选择中奖!

    关闭前:[0, 1, 1]
    随机选择第3个门
    关闭一个门:[0, 9, 1]
    坚持选择未中奖!
    重新第1个门
    重新选择中奖!

    关闭前:[1, 1, 0]
    随机选择第1个门
    关闭一个门:[1, 9, 0]
    坚持选择未中奖!
    重新第3个门
    重新选择中奖!

    关闭前:[0, 1, 1]
    随机选择第3个门
    关闭一个门:[0, 9, 1]
    坚持选择未中奖!
    重新第1个门
    重新选择中奖!

    关闭前:[1, 0, 1]
    随机选择第1个门
    关闭一个门:[1, 0, 9]
    坚持选择未中奖!
    重新第2个门
    重新选择中奖!

    关闭前:[1, 1, 0]
    随机选择第2个门
    关闭一个门:[9, 1, 0]
    坚持选择未中奖!
    重新第3个门
    重新选择中奖!

    关闭前:[1, 1, 0]
    随机选择第3个门
    关闭一个门:[9, 1, 0]
    坚持选择中奖!
    重新第2个门
    重新选择未中奖!

    关闭前:[1, 0, 1]
    随机选择第3个门
    关闭一个门:[9, 0, 1]
    坚持选择未中奖!
    重新第2个门
    重新选择中奖!

    关闭前:[0, 1, 1]
    随机选择第1个门
    关闭一个门:[0, 9, 1]
    坚持选择中奖!
    重新第3个门
    重新选择未中奖!

    关闭前:[0, 1, 1]
    随机选择第2个门
    关闭一个门:[0, 1, 9]
    坚持选择未中奖!
    重新第1个门
    重新选择中奖!

    关闭前:[0, 1, 1]
    随机选择第3个门
    关闭一个门:[0, 9, 1]
    坚持选择未中奖!
    重新第1个门
    重新选择中奖!

    关闭前:[1, 1, 0]
    随机选择第2个门
    关闭一个门:[9, 1, 0]
    坚持选择未中奖!
    重新第3个门
    重新选择中奖!

    关闭前:[1, 1, 0]
    随机选择第1个门
    关闭一个门:[1, 9, 0]
    坚持选择未中奖!
    重新第3个门
    重新选择中奖!

    关闭前:[1, 1, 0]
    随机选择第3个门
    关闭一个门:[9, 1, 0]
    坚持选择中奖!
    重新第2个门
    重新选择未中奖!

    关闭前:[1, 0, 1]
    随机选择第2个门
    关闭一个门:[9, 0, 1]
    坚持选择中奖!
    重新第3个门
    重新选择未中奖!

    关闭前:[1, 1, 0]
    随机选择第3个门
    关闭一个门:[9, 1, 0]
    坚持选择中奖!
    重新第2个门
    重新选择未中奖!

    关闭前:[0, 1, 1]
    随机选择第3个门
    关闭一个门:[0, 9, 1]
    坚持选择未中奖!
    重新第1个门
    重新选择中奖!

    关闭前:[0, 1, 1]
    随机选择第1个门
    关闭一个门:[0, 9, 1]
    坚持选择中奖!
    重新第3个门
    重新选择未中奖!

    关闭前:[1, 0, 1]
    随机选择第2个门
    关闭一个门:[9, 0, 1]
    坚持选择中奖!
    重新第3个门
    重新选择未中奖!

    关闭前:[1, 0, 1]
    随机选择第1个门
    关闭一个门:[1, 0, 9]
    坚持选择未中奖!
    重新第2个门
    重新选择中奖!

    关闭前:[0, 1, 1]
    随机选择第3个门
    关闭一个门:[0, 9, 1]
    坚持选择未中奖!
    重新第1个门
    重新选择中奖!

    关闭前:[1, 0, 1]
    随机选择第3个门
    关闭一个门:[9, 0, 1]
    坚持选择未中奖!
    重新第2个门
    重新选择中奖!

    关闭前:[0, 1, 1]
    随机选择第3个门
    关闭一个门:[0, 9, 1]
    坚持选择未中奖!
    重新第1个门
    重新选择中奖!

    关闭前:[1, 0, 1]
    随机选择第1个门
    关闭一个门:[1, 0, 9]
    坚持选择未中奖!
    重新第2个门
    重新选择中奖!

    关闭前:[0, 1, 1]
    随机选择第1个门
    关闭一个门:[0, 9, 1]
    坚持选择中奖!
    重新第3个门
    重新选择未中奖!

    关闭前:[1, 0, 1]
    随机选择第2个门
    关闭一个门:[9, 0, 1]
    坚持选择中奖!
    重新第3个门
    重新选择未中奖!

    关闭前:[1, 0, 1]
    随机选择第3个门
    关闭一个门:[9, 0, 1]
    坚持选择未中奖!
    重新第2个门
    重新选择中奖!

    关闭前:[1, 1, 0]
    随机选择第1个门
    关闭一个门:[1, 9, 0]
    坚持选择未中奖!
    重新第3个门
    重新选择中奖!

    关闭前:[1, 0, 1]
    随机选择第2个门
    关闭一个门:[9, 0, 1]
    坚持选择中奖!
    重新第3个门
    重新选择未中奖!

    关闭前:[1, 0, 1]
    随机选择第1个门
    关闭一个门:[1, 0, 9]
    坚持选择未中奖!
    重新第2个门
    重新选择中奖!

    关闭前:[1, 1, 0]
    随机选择第2个门
    关闭一个门:[9, 1, 0]
    坚持选择未中奖!
    重新第3个门
    重新选择中奖!

    关闭前:[1, 0, 1]
    随机选择第1个门
    关闭一个门:[1, 0, 9]
    坚持选择未中奖!
    重新第2个门
    重新选择中奖!

    关闭前:[1, 1, 0]
    随机选择第3个门
    关闭一个门:[9, 1, 0]
    坚持选择中奖!
    重新第2个门
    重新选择未中奖!

    关闭前:[1, 0, 1]
    随机选择第1个门
    关闭一个门:[1, 0, 9]
    坚持选择未中奖!
    重新第2个门
    重新选择中奖!

    关闭前:[1, 0, 1]
    随机选择第2个门
    关闭一个门:[9, 0, 1]
    坚持选择中奖!
    重新第3个门
    重新选择未中奖!

    关闭前:[1, 0, 1]
    随机选择第2个门
    关闭一个门:[9, 0, 1]
    坚持选择中奖!
    重新第3个门
    重新选择未中奖!

    关闭前:[1, 0, 1]
    随机选择第2个门
    关闭一个门:[9, 0, 1]
    坚持选择中奖!
    重新第3个门
    重新选择未中奖!

    关闭前:[0, 1, 1]
    随机选择第3个门
    关闭一个门:[0, 9, 1]
    坚持选择未中奖!
    重新第1个门
    重新选择中奖!

    关闭前:[0, 1, 1]
    随机选择第1个门
    关闭一个门:[0, 9, 1]
    坚持选择中奖!
    重新第3个门
    重新选择未中奖!

    关闭前:[1, 0, 1]
    随机选择第1个门
    关闭一个门:[1, 0, 9]
    坚持选择未中奖!
    重新第2个门
    重新选择中奖!

    关闭前:[1, 1, 0]
    随机选择第1个门
    关闭一个门:[1, 9, 0]
    坚持选择未中奖!
    重新第3个门
    重新选择中奖!

    关闭前:[1, 0, 1]
    随机选择第1个门
    关闭一个门:[1, 0, 9]
    坚持选择未中奖!
    重新第2个门
    重新选择中奖!

    关闭前:[1, 0, 1]
    随机选择第2个门
    关闭一个门:[9, 0, 1]
    坚持选择中奖!
    重新第3个门
    重新选择未中奖!

    关闭前:[1, 0, 1]
    随机选择第3个门
    关闭一个门:[9, 0, 1]
    坚持选择未中奖!
    重新第2个门
    重新选择中奖!

    关闭前:[1, 0, 1]
    随机选择第2个门
    关闭一个门:[9, 0, 1]
    坚持选择中奖!
    重新第3个门
    重新选择未中奖!

    关闭前:[1, 1, 0]
    随机选择第1个门
    关闭一个门:[1, 9, 0]
    坚持选择未中奖!
    重新第3个门
    重新选择中奖!

    关闭前:[0, 1, 1]
    随机选择第3个门
    关闭一个门:[0, 9, 1]
    坚持选择未中奖!
    重新第1个门
    重新选择中奖!

    关闭前:[1, 0, 1]
    随机选择第1个门
    关闭一个门:[1, 0, 9]
    坚持选择未中奖!
    重新第2个门
    重新选择中奖!

    关闭前:[1, 1, 0]
    随机选择第3个门
    关闭一个门:[9, 1, 0]
    坚持选择中奖!
    重新第2个门
    重新选择未中奖!

    关闭前:[1, 1, 0]
    随机选择第1个门
    关闭一个门:[1, 9, 0]
    坚持选择未中奖!
    重新第3个门
    重新选择中奖!

    关闭前:[0, 1, 1]
    随机选择第2个门
    关闭一个门:[0, 1, 9]
    坚持选择未中奖!
    重新第1个门
    重新选择中奖!

    关闭前:[1, 0, 1]
    随机选择第3个门
    关闭一个门:[9, 0, 1]
    坚持选择未中奖!
    重新第2个门
    重新选择中奖!

    关闭前:[1, 0, 1]
    随机选择第3个门
    关闭一个门:[9, 0, 1]
    坚持选择未中奖!
    重新第2个门
    重新选择中奖!

    关闭前:[1, 1, 0]
    随机选择第3个门
    关闭一个门:[9, 1, 0]
    坚持选择中奖!
    重新第2个门
    重新选择未中奖!

    关闭前:[1, 0, 1]
    随机选择第1个门
    关闭一个门:[1, 0, 9]
    坚持选择未中奖!
    重新第2个门
    重新选择中奖!

    关闭前:[1, 1, 0]
    随机选择第2个门
    关闭一个门:[9, 1, 0]
    坚持选择未中奖!
    重新第3个门
    重新选择中奖!

    关闭前:[1, 1, 0]
    随机选择第2个门
    关闭一个门:[9, 1, 0]
    坚持选择未中奖!
    重新第3个门
    重新选择中奖!

    关闭前:[0, 1, 1]
    随机选择第3个门
    关闭一个门:[0, 9, 1]
    坚持选择未中奖!
    重新第1个门
    重新选择中奖!

    关闭前:[1, 1, 0]
    随机选择第3个门
    关闭一个门:[9, 1, 0]
    坚持选择中奖!
    重新第2个门
    重新选择未中奖!

    关闭前:[0, 1, 1]
    随机选择第3个门
    关闭一个门:[0, 9, 1]
    坚持选择未中奖!
    重新第1个门
    重新选择中奖!

    关闭前:[0, 1, 1]
    随机选择第2个门
    关闭一个门:[0, 1, 9]
    坚持选择未中奖!
    重新第1个门
    重新选择中奖!

    关闭前:[0, 1, 1]
    随机选择第2个门
    关闭一个门:[0, 1, 9]
    坚持选择未中奖!
    重新第1个门
    重新选择中奖!

    关闭前:[1, 1, 0]
    随机选择第3个门
    关闭一个门:[9, 1, 0]
    坚持选择中奖!
    重新第2个门
    重新选择未中奖!

    关闭前:[1, 0, 1]
    随机选择第1个门
    关闭一个门:[1, 0, 9]
    坚持选择未中奖!
    重新第2个门
    重新选择中奖!

    关闭前:[0, 1, 1]
    随机选择第2个门
    关闭一个门:[0, 1, 9]
    坚持选择未中奖!
    重新第1个门
    重新选择中奖!

    关闭前:[1, 0, 1]
    随机选择第3个门
    关闭一个门:[9, 0, 1]
    坚持选择未中奖!
    重新第2个门
    重新选择中奖!

    关闭前:[1, 1, 0]
    随机选择第2个门
    关闭一个门:[9, 1, 0]
    坚持选择未中奖!
    重新第3个门
    重新选择中奖!

    关闭前:[1, 1, 0]
    随机选择第3个门
    关闭一个门:[9, 1, 0]
    坚持选择中奖!
    重新第2个门
    重新选择未中奖!

    关闭前:[0, 1, 1]
    随机选择第3个门
    关闭一个门:[0, 9, 1]
    坚持选择未中奖!
    重新第1个门
    重新选择中奖!

    关闭前:[0, 1, 1]
    随机选择第3个门
    关闭一个门:[0, 9, 1]
    坚持选择未中奖!
    重新第1个门
    重新选择中奖!

    关闭前:[0, 1, 1]
    随机选择第2个门
    关闭一个门:[0, 1, 9]
    坚持选择未中奖!
    重新第1个门
    重新选择中奖!

    关闭前:[1, 0, 1]
    随机选择第3个门
    关闭一个门:[9, 0, 1]
    坚持选择未中奖!
    重新第2个门
    重新选择中奖!

    关闭前:[0, 1, 1]
    随机选择第1个门
    关闭一个门:[0, 9, 1]
    坚持选择中奖!
    重新第3个门
    重新选择未中奖!

    坚持选择的中奖概率=0.34
    重新选择的中奖概率=0.66

    第二种方法:

    import random
    a = ['羊1', '羊2', '汽车']
    times = 1000*1000  # 尝试次数
    first, change = 0, 0
    for i in range(times):
        x = random.choice(a)  # 正确答案
        y = random.choice(a)  # 参赛者选择答案
        if x == y:   # 坚持最初的选择
            first += 1
        else:         # 改变选择
            change += 1
    print("坚持初心获得胜利的概率:{:.2f}%".format(first/times*100))
    print("改变初心获得胜利的概率:{:.2f}%".format(change/times*100))1234567891011121314
    

    坚持初心获得胜利的概率:33.40%
    改变初心获得胜利的概率:66.60%

    相关文章

      网友评论

          本文标题:python第四次实验(课后)

          本文链接:https://www.haomeiwen.com/subject/ieiroftx.html