![Python程序设计教程(第2版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/531/34752531/b_34752531.jpg)
上QQ阅读APP看书,第一时间看更新
3.2.5 循环的嵌套
循环的嵌套是指在一个循环中又包含另外一个完整的循环,即循环体中又包含循环语句。循环嵌套的执行的过程:先进入外层循环第1轮,然后执行完所有内层循环,接着进入外层循环第2轮,然后再次执行完内层循环,……,直到外层循环执行完毕。
while循环里面可以嵌套有while循环,for循环里面可以嵌套有for循环。同时,while循环和for循环也可以相互嵌套。典型的语法形式如下所示:
![](https://epubservercos.yuewen.com/8599B6/18562449808364906/epubprivate/OEBPS/Images/image950.jpg?sign=1738962255-PJ9YSzfZPP9eWqrkMdQzqMQVKt9Mgcxt-0-a7a0a3cbad0c5bd3f66816f4b96ae541)
![](https://epubservercos.yuewen.com/8599B6/18562449808364906/epubprivate/OEBPS/Images/image951.jpg?sign=1738962255-XFIfQPN1vBDOFqcrh9dNCGQjodeMjUEc-0-72ab4439933ea4420c489ee9f77bad14)
【例3-13】 利用,编写程序计算e的近似值。要求直到最后一项的值小于10-8,计算终止。输出最后一个n的值及e的值。分析:将第一项1设为e的初始值。其他项为
,其中n的值为从1开始的自然数,直到
。while循环的条件表达式用True,自动进入下一轮循环。计算n!,并将当前
项加入e中。如果当前
的值小于10-8,则利用break语句终止循环;否则让n递增1,进入下一轮循环。
程序代码:
![](https://epubservercos.yuewen.com/8599B6/18562449808364906/epubprivate/OEBPS/Images/image957.jpg?sign=1738962255-S8sK0cak6J39JjzBldqopA7Dp9fiJd9U-0-64e403766e3dfb93d31c0601427258e8)
程序运行结果:
![](https://epubservercos.yuewen.com/8599B6/18562449808364906/epubprivate/OEBPS/Images/image958.jpg?sign=1738962255-72y7vrGkv9zlqvrEN99qLzpuz5E2Mz2p-0-7ef1e3775570125540ca18897aed569f)
思考:如何改写程序,去除内层循环,提高程序执行效率?
分析:利用n!∗(n+1)==(n+1)!这个等式,外层循环结束时变量s保存了n!的值,下一轮循环计算(n+1)!时,只需s=s∗(n+1)即可。
程序代码:
![](https://epubservercos.yuewen.com/8599B6/18562449808364906/epubprivate/OEBPS/Images/image959.jpg?sign=1738962255-nv2dR9Ko3F2mm6AiXcvWQUnRHcTIngk9-0-33a1558fe321737861b84938992fca4e)