【python】小白python练习案例100之11-15

本文分享了五个Python编程练习案例,包括矩阵相加、查找水仙花数、输出正反三角形、猴子吃桃问题以及计算阶乘和递归求和,适合初学者巩固基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

每天5个python练习案例,小白和初学的快来当练手吧!坚持就是胜利!

注:解题思路都在代码里面的注释里了,大家可以先看题尝试着自己做,然后对照着下面方法改进或者若代码出现问题或有更好的解法欢迎大家批评指正我。


目录

【No11】矩阵相加

【No12】输出水仙花

【No13】*号输出三角形

【No14】猴子吃桃问题

【No15】求1 + 2! + 3! + 4! + …… + n!的和


 

【No11】矩阵相加

#计算两个矩阵相加
x = [
    [12, 7, 3],
    [4, 5, 6],
    [7, 8, 9]
]
y = [
    [5, 8, 1],
    [2, 5, 6],
    [7, 3, 9]
]
res = [
    [0, 0, 0],
    [0, 0, 0],
    [0, 0, 0]
]
for i in range(len(res)):
    for j in range(len(res[0])):
        res[i][j] = x[i][j] + y[i][j]

print(res)

【No12】输出水仙花

题目:输出0~999的所有“水仙花数”。

注:0~999之间的所有“水仙花数” “水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是一个“水仙花数”。

比如:153 = 1^3 + 5^3 + 3^3

a = 0
b = 0
c = 0
for i in range(100,1000):
    a = i // 100
    b = i // 10 % 10
    c = i % 10
    if a** 3 + b**3 + c**3 ==i:
        print(i)

【No13】*号输出三角形

题目: 用*号输出正反三角形的图案

#用*号输出正反三角形的图案
#正三角
n = int(input("请问您要打印几行:"))
for i in range(1, n+1):
    for k in range(1, n+1-i):
        print(' ', end = '')
    for j in range(1, i+1):
        print(' *', end = '')
    print()

#反三角
for i in range(1, n+1):
    for k in range(1, i+1):
        print(' ', end = '')
    for j in range(1, n+1-i):
        print(' *', end = '')
    print()

【No14】猴子吃桃问题

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

分析:运用递归思想,从第十天 1 个桃子算起,第九天为(第十天的桃子数量+1)*2

ant = 1
for i in range(9, 0, -1): #倒序输出天数
    ant = (ant + 1) * 2
    print("第%d天的桃子的数量为:%d" % (i, ant))
print("猴子第一天共摘了:", ant)

运行结果:

【No15】求1 + 2! + 3! + 4! + …… + n!的和

#求1 + 2! + 3! + 4! + …… + n!的和
n = int(input("请输入计算的n值:"))
#方法一:两层循环嵌套
f_sum1 = 0
for i in range(1, n + 1):
    fact = 1
    for j in range(1, i + 1):
        fact *= j
    f_sum1 += fact
print(f_sum1)

#方法二:利用递归思想构造阶乘函数
def factorial(n):  #构造一个计算阶乘的函数
    if n == 1:
        return 1
    else:
        return n * factorial(n-1)
f_sum2 = 0
for i in range(1, n+1):
    f_sum2 += factorial(i)
print(f_sum2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值