夜光带你走进python开发 (二十九)传奇语言

夜光序言:

如果你越来越冷漠,你以为你成长了,但其实没有。长大应该是变得温柔,对全世界都温柔。

 

正文:函数和递归

函数和程序结构


 函数可以简化程序,函数可以使程序模块化
 用函数将较长的程序分割成短小的程序段,可以方便理解
 程序例子:

 将部分功能从程序中移出作为独立函数
 星号绘制函数


 星号数量计算函数

 


 整体控制函数

 夜光:完整程序可以写为。

 整个程序可读性很强。使用函数的思想编写程序,可以大大增加程序的模块化程度
 程序运行结果为:

递归的定义


 递归:函数定义中使用函数自身的方法
 经典例子:阶乘

n!= n(n-1)(n-2)...(1)


举例:5!=5(4)(3)(2)(1) =5 * 4!
推广: n!=n(n-1)! n! n(n1)(n2)...(1)


 阶乘的递归定义:

 0的阶乘:定义为1
其他数字:定义为这个数字乘以比这个数字小1的数的阶乘


 递归不是循环
 最后计算基例:0!。0!是已知值
 递归定义特征 :
 有一个或多个基例是不需要再次递归的;
 所有的递归链都要以一个基例结尾


递归函数


 通过一个累计器循环计算阶乘
 阶乘的递归定义函数 :

 运行递归函数fact()计算阶乘:

 递归每次调用都会引起新函数的开始
 递归有本地值的副本,包括该值的参数
 阶乘递归函数中:每次函数调用中的相关n值在中途的递归链暂时存储,并在函数返回时使用。

 


 5!的递归调用过程图

 

示例程序:字符串反转


 Python列表有反转的内置方法
 方法1:字符串转换为字符列表,反转列表,列表转换回字符串
 方法2:递归


 此问题的IPO模式:
 输入:字符串
 处理:用递归的方法反转字符串
 输出:反转后的字符串
 基本思想:把字符串看做递归对象


 将字符串分割成首字符和剩余子字符串
 反转了剩余部分后把首字符放到末尾,整个字符串反转就完成了
 字符串反转算法(常犯错误版) :

 此算法运行结果出错 :

 构造递归函数,需要基例
 基例不进行递归,否则递归就会无限循环执行
 Python在900余次调用之后,到达默认的“递归深度的最大值”,终止调用
此递归调用以字符串形式执行,应设置基例为空串


 正确的字符串反转代码(新版):

 运行结果:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VIIRS夜光数据是指由卫星上的可见及红外成像辐射计(Visible Infrared Imaging Radiometer Suite,VIIRS)获得的地球夜间灯光数据。该数据被广泛用于研究城市化进程、气候变化、能源利用以及自然环境变化等诸多领域。 要下载VIIRS夜光数据,首先需要访问美国国家海洋和大气管理局(NOAA)的VIIRS数据中心网站,该网站提供了一系列下载途径,包括FTP下载、Web下载和程序接口下载等。 FTP下载是最简单的下载方式,如果您选择使用FTP下载,您需要安装FTP客户端,输入FTP地址和用户名密码后进行文件下载。由于VIIRS数据相对较大,所以FTP下载需要相应的存储空间和下载速度。 Web下载则是另一种常用的下载方式,您只需要在VIIRS数据中心的网站上输入需要下载的区域和时间范围,以及下载格式等信息,即可通过Web页面下载相应的数据。 如果您是程序员,并且需要批量自动下载VIIRS夜光数据,可以使用程序接口下载。VIIRS数据中心提供了RESTful API接口,您可以通过编写Python程序或其他编程语言,调用接口实现自动化下载。 无论您选择哪种下载方式,都需要注意数据的正确性和完整性。VIIRS夜光数据是大量的卫星影像数据,因此在下载数据时,要注意文件的编号、格式和时间等信息。同时,在数据处理时,也需要注意消除椒盐噪声、衰减因素和误差等问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值