python有趣的案例_Python 中那些经典有趣的示例

1、水仙花数

水仙花数的特点:如果一个三位数等于其各位数字的立方和,则称这个数为水仙花数。

def daffodilNumber(inputNum):

for num in range(100, inputNum):

unit = num % 10

ten = num // 10 % 10

hundred = num // 100

if unit ** 3 + ten ** 3 + hundred ** 3 == num:

print(num)

通过计算得出 100 到 1000 有 4 个数是水仙花数

2、九九乘法表

九九乘法表是小学同学必须背熟的口诀表,那用 Python 怎么实现呢?

# 九九乘法表

def table_9x9():

for row in range(1, 10):

for col in range(1, row + 1):

print('{} * {} = {}'.format(col, row, col * row), end='\t')

print()

输出结果

3、鸡兔同笼

鸡兔同笼是我国古代著名的趣味数学题之一,大约在 1500 年前,《孙子算经》中就记载了这个有趣的数学题,书中是这样叙述的:“今有雉兔同笼,上有三十五头,下有九十四足, 问雉兔各几何?”

意思就是有若干只鸡和兔子在同一个笼子里,从上面数,鸡和兔的头有 35 个,从下面数,鸡和兔的脚有 94 只,问鸡和兔各有多少只?

先理清思路

鸡的只数 = (鸡兔总数 × 4 - 鸡和兔子的脚数 )/ 2

兔子只数 = 鸡兔总数 - 鸡的只数

具体实现如下

# 鸡兔同笼

def chickenOrRabbit(totalNum, footNum):

try:

# 鸡的数量

x = (4 * totalNum - footNum) / 2

if totalNum != 0 and (4 * totalNum - footNum) % (x * 2) == 0:

# 兔子的数量

y = totalNum - x

if x <= 0 or y <= 0:

print("{} 只动物 {} 条腿的情况无解".format(totalNum, footNum))

else:

print("鸡有 {} 只,兔有 {} 只".format(int(x), int(y)))

else:

print("{} 只动物 {} 条腿的情况无解".format(totalNum, footNum))

except Exception:

print("{} 只动物 {} 条腿的情况无解".format(totalNum, footNum))

35 个头,94 只脚运行结果

以下鸡或兔子当中有单脚鸡或缺腿兔的那种情况

4、求平均成绩

三行代码实现去除最高分和最低分求平均成绩

实现代码如下

def averageScore(scores):

print('没有去除最高分和最低分的成绩:', scores)

print('最高分:', max(scores))

print('最低分:', min(scores))

print('前三名的成绩:', heapq.nlargest(3, scores))

print('加双引号的前三名成绩:', heapq.nsmallest(3, scores))

print('平均分:', round(sum(scores) / len(scores), 2))

print('-----------------------------------------------------------------')

scores.sort()

first, *middle, last = scores

print('去除最高分和最低分后的成绩:', middle)

print('去除最高分和最低分之后的平均分:', round(sum(middle) / len(middle), 2))

sort 函数实现对成绩从低到高排序,排序完成后通过 “*表达式”去除第一个和最后一个,这样,最高分和最低分就被去除了。

max 求最高分

min 求最低分

round 四舍五入函数

round(sum(middle) / len(middle), 2) 求平均数并保留2位小数

heapq.nlargest(3, scores) 前三名

heapq.nsmallest(3, scores) 后三名

运行结果如下

5、猴子吃桃

猴子吃桃问题:“猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第 5 天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。”

猴子知道自己摘了多少桃子呢?

用 一段 Python 代码帮它算一算

# 猴子吃桃

def monkeyEatingPeach():

# 设 x 为桃子个数

x = 1

for i in range(5, 0, -1):

print('第%d天的桃子数为%d个' % (i, x))

x = 2 * (x + 1)

猴子到底摘了多少桃子呢?

计算得出,猴子第一天摘了46个桃子。

封面图:PixabayLicense

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值