- 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
您可能关注的文档
- Python实例练习题合集(1).docx
- 2024-2025学年山东省菏泽市高三上学期期末考试政治试题(解析版).docx
- 2024-2025学年山东省潍坊市高一下学期开学考试政治试题(解析版).docx
- 2024-2025学年山西省部分学校高一上学期1月期末考试政治试题(解析版).docx
- 2024-2025学年吉林省长春市高二上学期1月期末考试政治试题(解析版).docx
- 2024-2025学年江西省重点中学协作体高三下学期第一次联考政治试卷(解析版).docx
- 2024-2025学年山东省德州市优高联盟高三上学期1月九校联考政治试题(解析版).docx
- 2024-2025学年四川省遂宁市高二上学期1月期末质量检测政治试题(解析版).docx
- 2024-2025学年浙江省杭州市部分重点中学高二下学期开学考试政治试题(解析版).docx
- 2024-2025学年浙江省衢州市高二上学期1月教学质量检测政治试卷(解析版).docx
- 2024-2025学年安徽省亳州市涡阳县高二下学期2月开学考试政治试题(解析版).docx
- 2024-2025学年江西省赣州市上犹县高二下学期开学考试政治试题(解析版).docx
- 2024-2025学年山东省济宁市高二下学期开学考试政治试题(解析版).docx
- 2024-2025学年山西省卓越联盟高三下学期2月开学质量检测政治试题(解析版).docx
- 2024-2025学年新疆乌鲁木齐市高二下学期2月开学考试政治试题(解析版).docx
- 2024-2025学年新疆维吾尔自治区乌鲁木齐地区高三2月大联考文科综合政治试题(解析版).docx
- 2024-2025学年安徽省蚌埠市固镇县高一上学期1月期末考试政治试题 (解析版).docx
- 2024-2025学年江苏省扬州市高三上学期期末检测政治试卷(解析版).docx
- 2024-2025学年江西省吉安市高三上学期期末教学质量检测政治试题(解析版).docx
- 2024-2025学年山东省济宁市高二上学期1月期末考试政治试题(解析版).docx
最近下载
- 最新部编版道德与法治五年级下册全册一课一练及答案.pdf
- 第4课 画外之意——中国传统人物画 课件-2023-2024学年高中美术人教版(2019)美术鉴赏.pptx VIP
- 《中国老年骨质疏松症诊疗指南(2024)》解读.pptx VIP
- 大学英语六级词汇带音标.pdf VIP
- 美国儿科学会育儿百科-家庭教育.doc VIP
- SL 754-2017 城市防洪应急预案编制导则{高清的版}.pdf-2020-09-15-16-48-02-128.docx
- “节水”小知识竞答试题及答案.doc
- 玻璃及玻璃升降器布置.pdf VIP
- 高星级饭店运营与管理专业人才培养方案.pdf VIP
- 湖北省黄冈市黄梅县晋梅中学九年级(下)竞赛化学试卷(3月份).doc VIP
文档评论(0)