目录
经典小案例
例子1:寻找水仙花数。
说明:水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯特朗数,它是一个3位数,该数字每个位上数字的立方之和正好等于它本身,例如:13 + 53 + 33 = 153。
for num in range(100,1000):
last = num %10
mid = num//10%10
high = num//100
if num == last**3+mid**3+high**3:
print(num)
153
370
371
407
正整数的反转
>>> num = int(input("num="))
num=1234567
>>> reversed_num=0
>>> while num>0:
reversed_num=reversed_num*10+num%10
num//=10
>>> print(reversed_num)
7654321
>>>
例子2:百钱百鸡问题。
说明:百钱百鸡是我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?翻译成现代文是:公鸡5元一只,母鸡3元一只,小鸡1元三只,用100块钱买一百只鸡,问公鸡、母鸡、小鸡各有多少只?
>>> for x in range(0,20):
for y in range(0,34):
z = 100-x-y
if 100==x*5+y*3+z//3 and z%3==0:
print(f'公鸡: {x}只, 母鸡: {y}只, 小鸡: {z}只')
公鸡: 0只, 母鸡: 25只, 小鸡: 75只
公鸡: 4只, 母鸡: 18只, 小鸡: 78只
公鸡: 8只, 母鸡: 11只, 小鸡: 81只
公鸡: 12只, 母鸡: 4只, 小鸡: 84只
>>>
例子3:CRAPS赌博游戏。
说明: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 <= money:
break
# 第一次摇色子
# 用1到6均匀分布的随机数模拟摇色子得到的点数
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('你破产了, 游戏结束!')
D:\装机软件\python\python.exe "D:/python code2020/test01/test01.py"
你的总资产为: 1000元
请下注: 500
玩家摇出了8点
玩家摇出了7点
庄家胜!
你的总资产为: 500元
请下注: 300
玩家摇出了10点
玩家摇出了12点
玩家摇出了8点
玩家摇出了4点
玩家摇出了4点
玩家摇出了10点
玩家胜!
你的总资产为: 800元
请下注: 200
玩家摇出了4点
玩家摇出了5点
玩家摇出了10点
玩家摇出了6点
玩家摇出了8点
玩家摇出了7点
庄家胜!
你的总资产为: 600元
请下注: 300
玩家摇出了8点
玩家摇出了11点
玩家摇出了4点
玩家摇出了12点
玩家摇出了5点
玩家摇出了5点
玩家摇出了7点
庄家胜!
你的总资产为: 300元
请下注: 400
请下注: 300
玩家摇出了8点
玩家摇出了9点
玩家摇出了5点
玩家摇出了9点
玩家摇出了6点
玩家摇出了6点
玩家摇出了11点
玩家摇出了9点
玩家摇出了9点
玩家摇出了6点
玩家摇出了7点
庄家胜!
你破产了, 游戏结束!
Process finished with exit code 0
例子4:斐波那契数列。
#输出斐波纳契前20个数
a,b=1,1
print(a,b,end=' ')
for _ in range(18):
a,b=b,a+b
print(b,end=' ')
例子5:打印素数。
说明:素数指的是只能被1和自身整除的正整数(不包括1)
for num in range(2,100):
is_prime=True
for factor in range(2,num):
if num%factor == 0:
is_prime=False
break
if is_prime:
print(num)
D:\装机软件\python\python.exe "D:/python code2020/test01/S素数.py" 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 Process finished with exit code 0
课程链接:https://github.com/jackfrued/Python-Core-50-Courses/blob/master/