- 1、本文档共33页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
PAGE232
Python实现阶乘累加求和:1!+2!+…+20!
任务要求
计算1!+2!+…+20!的和,并将结果在控制台打印输出。
任务分析
阶乘累加问题需满足:
对每个数n(1≤n≤20)计算其阶乘n!。
将所有阶乘结果累加。
核心难点在于避免重复计算和处理大数溢出(Python默认支持大整数,无需额外处理)。
任务实现
方法一:直接循环法
total=0
current=1#存储当前阶乘值
forninrange(1,21):
current*=n#计算n!=(n-1)!*n
total+=current
print(结果为:,total)
说明:利用current变量保存当前阶乘值,避免重复计算。
方法二:递归函数法
deffactorial(n):
return1ifn==1elsen*factorial(n-1)
sum_result=sum(factorial(i)foriinrange(1,21))
print(结果为:,sum_result)
说明:
定义递归函数factorial计算单个阶乘
通过生成器表达式遍历求和
缺点:递归深度较大时效率较低(n=20时可行)
方法三:使用math.factorial库函数
importmath
sum_result=sum(math.factorial(i)foriinrange(1,21))
print(结果为:,sum_result)
说明:直接调用Python内置的math.factorial函数
方法四:函数式编程法
fromfunctoolsimportreduce
sum_result=sum(
reduce(lambdax,y:x*y,range(1,i+1))
foriinrange(1,21)
)
print(结果为:,sum_result)
说明:
使用reduce对连续整数序列进行累积计算
lambdax,y:x*y实现乘法累积
特点:函数式编程风格,适合高阶应用场景
Python实现列表数据的复制
任务要求
将一个已知列表[1,2,3,4,5]中的所有数据复制到另一个新列表中。目标是确保新列表与原列表完全独立,同时保留所有数据。
任务实现
方法一:浅拷贝(直接赋值)。通过直接赋值的方式,将原列表的所有元素复制到新列表中。
original_list=[1,2,3,4,5]
new_list=original_list.copy()#或者new_list=original_list[:]
print(原列表:,original_list)
print(新列表:,new_list)
方法二:深拷贝(处理嵌套结构)。如果原列表包含嵌套的可变对象(如子列表),浅拷贝会导致新旧列表共享这些对象。此时需要使用深拷贝。
importcopy
original_list=[1,2,[3,4],5]
new_list=copy.deepcopy(original_list)
print(原列表:,original_list)
print(新列表:,new_list)
方法三:列表推导式。通过生成式语法创建新列表,并将原列表的所有元素逐一添加到新列表中。
original_list=[1,2,3,4,5]
new_list=[xforxinoriginal_list]
print(原列表:,original_list)
print(新列表:,new_list)
方法四:切片复制。利用切片语法对整个列表进行复制。
original_list=[1,2,3,4,5]
new_list=original_list[:]
print(原列表:,original_list)
print(新列表:,new_list)
方法五:extend()方法。通过extend()方法将原列表的所有元素添加到新列表中。
original_list=[1,2,3,4,5]
new_list=[]
new_list.extend(original_list)
print(原列表:,original_list)
print(新列表:,new_list)
方法六:copy模块。使用copy模块中的copy()函数进行浅拷贝。
importcopy
original_list=[1,2,3,4,5]
n
文档评论(0)