Python学习刷题系列,这个系列会一直更新,前面是基础,后面会有面向对象,web编程等,学习Python有什么难题也可以关注我的微信公众号“FIsh小站”
1、寻找水仙花数:这是一个三位数,每个位上的数字的立方之和刚好等于它本身
for num in range(100, 1000):
# 获取这个数的个位
low = num % 10
# 获取这个数的十位
mid = num // 10 % 10
# 获取这个数的百位
high = num // 100
if num == low **3 + mid ** 3 + high **3:
print(num)
2、百钱买百鸡:公鸡五元一只,母鸡三元一只,小鸡三只一元2,百元买百鸡,问各多少只
for x in range(0, 21):
# x表示公鸡总数
for y in range(0, 34):
# y表示母鸡总数
z = 100 - x - y
# 剩余的为小鸡
if 5 *x + 3*y +z/3 == 100 and z% 3 == 0:
# 小鸡三元一只,小鸡的数目应该是3 的整数倍
print(f'公鸡: {x}只, 母鸡: {y}只, 小鸡: {z}只')
3、CRAPS 赌博游戏:玩家第一次摇骰子如果摇出了7点或11点,玩家胜;玩家第一次如果摇出2点、3点或12点,庄家胜;玩家如果摇出其他点数则玩家继续摇骰子,如果玩家摇出了7点,庄家胜;如果玩家摇出了第一次摇的点数,玩家胜;其他点数玩家继续摇骰子,直到分出胜负
from random import randint
money = 1000
while money > 0:
print(f"总资产为:{money}元")
go_on = False
# 下注金额必须大于0小于等于玩家总资产
while True:
debt = int(input("请下注:"))
if 0 > debt or debt > money:
print("您的输入有误,请重新输入")
break
# 第一次摇骰子
first = randint(1, 6) + randint(1, 6)
print(f"\n玩家摇出了{first}点")
if first == 7 or first == 11:
print("玩家胜出\n")
money += debt
elif first == 2 or first == 3 or first == 12:
print("庄家胜出\n")
money -= debt
else:
go_on = True
while go_on:
go_on = False
current = randint(1, 6) + randint(1, 6)
print(f'玩家摇出了{current}点')
if current == 7:
print("庄家胜出\n")
money -= debt
elif current == first:
print("玩家胜出\n")
money += debt
else:
go_on = True
print(f"总资产为:{money}元")
if money == 0:
print("你破产了,游戏结束")
break
4、斐波那契数列:打印斐波那契数列的前20个
a,b = 0,1
for temp in range(20):
a,b= b,a+b # 组包和拆包
print(a)
5、字符串切割:接收从键盘输入的字符串,遇到空格进行切割,以列表形式输出
str = input ("请输入字符串:")
print(str.split(' '))
6、打印九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print(f"{j} * {i} = {i*j}\t",end = '')
j += 1
print()
i += 1