Python 100例第12天

编程入门 行业动态 更新时间:2024-10-07 12:23:54

<a href=https://www.elefans.com/category/jswz/34/1770869.html style=Python 100例第12天"/>

Python 100例第12天

24.题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

自己想:确实看见了规律,某一项值等于其前两项相加。但是实际还是没有写出来

自己写的代码有个错误:

参考 代码:

sum = 0
a = 1
b = 2
for i in range(1, 20+1):sum += b / aa, b = b, a+b
print(sum)

自己根据参考代码总结:

逻辑上:其实自己没有看出来真正的规律 每一项分数 分母等于前一项分数的分子 分子等于前一项分数的分子与分母和。这才是 真正的规律。

编程技巧上:for循环只起到迭代作用;起始处设置变量 关键点是第一个分数的分子与分母的值都给出,然后迭代 分子与分母都相应的变化的代码体现  下一项:分子、分母 = 此项: 分子+分母 、分子。

25.题目:求1+2!+3!+...+20!的和。

自己想:啥也想不出来呀

根据参考代码自己写的:
 

a = 1
sum = 0
for i in range(1, 20+1):a *= isum += a
print('和为 %s' % (sum))
print(sum)

参考代码:不得不说 这种思想我的缺乏

s = 1
t = []
for i in range(1,21):s *= it.append(s)
print(sum(t)-1)  不明白最后这一步为哈-1n = 0 不明白为啥要n = 0
s = 0
t = 1
for n in range(1,21):t *= ns += t
print ('1! + 2! + 3! + ... + 20! = %d' % s)

自己总结:累加问题变为累乘问题 

编程技巧上:主要编程技巧缺失,累加在代码上append()就可以实现。

但是累乘就很困难 通过*= 这样就可以实现累乘。

26.题目:利用递归方法求5!

自己想:和上个题一样做法:*= 应用在for循环中可实现 累乘 属于编程技巧

自己想的代码:

学习了递归函数之后自己写的代码:

总结:运用递归函数 首先会 定义递归函数 def + 函数名称

调用递归函数的形式:

更新递归函数的形式

第一种
def fact(j):sum = 0if j == 0:sum = 1else:sum = j * fact(j - 1)return sumprint (fact(5))
第二种
def Factorial(n):if n == 1:fn=1else:fn = n*Factorial(n-1)return fn
print(Factorial(5))

27.题目利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

自己想:运用递归方式 就 def + 函数定义 然后之前做的都是 数字 函数调用的数字 这回是字符串 就有点无从下手。然后花了20分钟 打印出来 

同时存在非递归方法,使用列表的reverse()方法 

更多推荐

Python 100例第12天

本文发布于:2024-02-19 18:44:43,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1765520.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!