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