1. 首页
  2. Python

函数和递归

“u003Cdivu003Eu003Cpu003Eu003Cstrongu003E函数和程序结构u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cul class=” list-paddingleft-2″u003Eu003Cliu003Eu003Cpu003E函数可以简化程序,函数可以使程序模块化u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E用函数将较长的程序分割成短小的程序段,可以方便理解u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E程序例子:u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002F16ca0000e22e976aeb33″ img_width=”349″ img_height=”147″ alt=”函数和递归” inline=”0″u003Eu003Cu002Fpu003Eu003Cul class=” list-paddingleft-2″u003Eu003Cliu003Eu003Cpu003E将部分功能从程序中移出作为独立函数,星号绘制函数。u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003E u003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002F16ca0000e4c77ae07652″ img_width=”373″ img_height=”138″ alt=”函数和递归” inline=”0″u003Eu003Cu002Fpu003Eu003Cul class=” list-paddingleft-2″u003Eu003Cliu003Eu003Cpu003E星号数量计算函数u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002F16ca0000e5bd507b3503″ img_width=”316″ img_height=”81″ alt=”函数和递归” inline=”0″u003Eu003Cu002Fpu003Eu003Cul class=” list-paddingleft-2″u003Eu003Cliu003Eu003Cpu003E整体控制函数u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002F16c30002447d019f066d” img_width=”314″ img_height=”112″ alt=”函数和递归” inline=”0″u003Eu003Cu002Fpu003Eu003Cul class=” list-paddingleft-2″u003Eu003Cliu003Eu003Cpu003E完整程序如下:u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002F16c900044fda78d85012″ img_width=”379″ img_height=”282″ alt=”函数和递归” inline=”0″u003Eu003Cu002Fpu003Eu003Cul class=” list-paddingleft-2″u003Eu003Cliu003Eu003Cpu003E整个程序可读性很强。使用函数的思想编写程序,可以大大增加程序的模块化程度u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E程序的运行结果:u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002F16ca0000ea2931a04d82″ img_width=”350″ img_height=”195″ alt=”函数和递归” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E递归的定义u003Cu002Fstrongu003Eu003Cbru003Eu003Cu002Fpu003Eu003Cul class=” list-paddingleft-2″u003Eu003Cliu003Eu003Cpu003E递归:函数定义中使用函数自身的方法u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E经典例子就是阶乘:n!=n(n-1)(n-2)…(1)u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E0的阶乘定义为1,其他数字定义为这个数字乘以比这个数字小1的数的阶乘u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E递归不是循环u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E递归定义特征:有一个或多个基例是不需要再次递归的;所有的递归链都要以一个基例结尾u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003Eu003Cstrongu003E递归函数u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cul class=” list-paddingleft-2″u003Eu003Cliu003Eu003Cpu003E通过一个累计器循环计算阶乘u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E阶乘的递归定义函数:u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002F16830006d16d492f2025″ img_width=”307″ img_height=”91″ alt=”函数和递归” inline=”0″u003Eu003Cu002Fpu003Eu003Cul class=” list-paddingleft-2″u003Eu003Cliu003Eu003Cpu003E运行递归函数fact()计算阶乘u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003E >>>fact(5)u003Cu002Fpu003Eu003Cpu003E 120u003Cu002Fpu003Eu003Cul class=” list-paddingleft-2″u003Eu003Cliu003Eu003Cpu003E递归每次调用都会引起新函数的开始u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E递归有本地值得副本,包括该值得参数u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E阶乘递归函数中:每次函数调用中的相关n值在中途的递归链暂时存储,并在函数返回时使用u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E5!的递归调用过程图u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002F16830006d40a655d1281″ img_width=”1279″ img_height=”672″ alt=”函数和递归” inline=”0″u003Eu003Cu002Fpu003Eu003Cu002Fdivu003E”

原文始发于:函数和递归

主题测试文章,只做测试使用。发布者:醒百年,转转请注明出处:http://www.cxybcw.com/13380.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code