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%