阿里巴巴400集python教程_递归的练习课程 | Python从入门到精通:高阶篇之十二-阿里云开发者社区...
上节课留了两个练习,这节课给大家讲一下,同时巩固一下递归的用法。
练习1、创建一个函数 power 来为任意数字做幂运算 n* * i
用数据10^5举例说明一下:
# 10 ** 5 = 10 * 10 ** 4
# 10 ** 4 = 10 * 10 ** 3
# ...
# 10 ** 1 = 10
代码展示:
def power(n , i):
'''
power()用来为任意的数字做幂运算
参数:
n 要做幂运算的数字
i 做幂运算的次数
'''
# 基线条件
if i == 1:
# 求1次幂
return n
# 递归条件
return n * power(n , i-1)
print(power(8,6))
执行结果为:
练习2、创建一个函数,用来检查一个任意的字符串是否是回文字符串,如果是返回True,否则返回False。
回文字符串,字符串从前往后念和从后往前念是一样的。
举例说明:
# abcba
# abcdefgfedcba
# 先检查第一个字符和最后一个字符是否一致,如果不一致则不是回文字符串
# 如果一致,则看剩余的部分是否是回文字符串
# 检查 abcdefgfedcba 是不是回文
# 检查 bcdefgfedcb 是不是回文
# 检查 cdefgfedc 是不是回文
# 检查 defgfed 是不是回文
# 检查 efgfe 是不是回文
# 检查 fgf 是不是回文
# 检查 g 是不是回文
代码展示:
def hui_wen(s):
'''
该函数用来检查指定的字符串是否回文字符串,如果是返回True,否则返回False
参数:
s:就是要检查的字符串
'''
# 基线条件
if len(s) < 2 :
# 字符串的长度小于2,则字符串一定是回文
return True
elif s[0] != s[-1]:
# 第一个字符和最后一个字符不相等,不是回文字符串
return False
# 递归条件
# 用切片检查除去第一个和最后一个字符后的新字符串
return hui_wen(s[1:-1])
print(hui_wen('abcdefgfedcba'))
执行结果为:
即,‘abcdefgfedcba’为回文字符串。
也可以合并递归条件,但是不方便阅读,不建议使用,了解即可。
def hui_wen(s):
# '''
# 该函数用来检查指定的字符串是否回文字符串,如果是返回True,否则返回False
# 参数:
# s:就是要检查的字符串
# '''
# 基线条件
if len(s) < 2 :
# 字符串的长度小于2,则字符串一定是回文
return True
# 递归条件
return s[0] == s[-1] and hui_wen(s[1:-1])
print(hui_wen('abcdefgfedcba'))
获取更多内容,请订阅Python学习站官方技术圈!
阿里巴巴400集python教程_递归的练习课程 | Python从入门到精通:高阶篇之十二-阿里云开发者社区...相关推荐
- python列表索引超出范围 等于啥_python如何解决IndexError:列表索引超出范围?-问答-阿里云开发者社区-阿里云...
我正在尝试为ucf101数据集生成密集流,但我不断收到以下错误: 我尝试在第68行中将video_name.split('')[1]更改为video_name.split('')[0],已编译代码,但 ...
- python公司大部分编码风格_Python编码风格篇:比较运算符-阿里云开发者社区
前几天有看到一篇 Flask 开发团队内部 Python 编码风格指南 ,里面有一段关于比较的规范觉得很有意思: 任意类型之间的比较,使用 == 和 != 与单例(singletons)进行比较时,使 ...
- mysql异地多活方案_基于MGR高可用异地多活方案-阿里云开发者社区
一.概述 主要目的实现MySQL高可用解决方案,实现异地多活. 二.实现构思 基于MGR实现高可用异地多活 首先要基于位置信息进行分片,例如华北 华中,华南,程序层要进行ip过滤和判断, 针对不同的i ...
- dms mysql定义变量_数据管理DMS:自建MySQL数据库 全量SQL诊断功能发布啦!-阿里云开发者社区...
MySQL的用户都面临都一个难题,异常或者故障问题难定位,很多时候都靠"猜". 如果比较幸运,异常正在发生,我们还可以获取到会话.引擎状态等信息: 如果没有异常现场,要找到根因,除 ...
- 利用python爬取飞猪信息_Python---20行代码爬取斗鱼平台房间数据(下)-阿里云开发者社区...
在上一篇中,已经详细的讲解了如何获取数据,接下来是深度处理数据,这里调用xlsxwriter库来制作Excel表格. 工具:Python3.6.5,Pycharm 1.模块介绍 XlsxWriter模 ...
- c#如何wmf图片转换成png图片_【C#】使用fo-dicom完成BMP,JPG,PNG图片转换为DICOM文件-阿里云开发者社区...
最近研究了一下DICOM和BMP文件转换的问题,也是很头大.度娘了很久,也在CSDN等论坛看到一些断断续续的文件,最主要的是代码只是片断,不是完整的实现.头大了. 首先,了解一下BMP文件格式,BMP ...
- python预测实例教程_手把手教你用Python库Keras做预测(附代码)-阿里云开发者社区...
当你在Keras中选择好最合适的深度学习模型,就可以用它在新的数据实例上做预测了.但是很多初学者不知道该怎样做好这一点,我经常能看到下面这样的问题: "我应该如何用Keras对我的模型作出预 ...
- python面向过程实践汉诺塔_递归汉诺塔-和递归汉诺塔相关的内容-阿里云开发者社区...
多柱汉诺塔最优算法设计探究 多柱汉诺塔最优算法设计探究 引言 汉诺塔算法一直是算法设计科目的最具代表性的研究问题,本文关注于如何设计多柱汉诺塔最优算法的探究.最简单的汉诺塔是三个柱子(A.B.C),因 ...
- 财务人员python教程_财务有必要学python吗
在即将到来的人工智能时代,编程将成为我们的创造工具,甚至是使用工具的主要方法,和打字.英语一样,成为人人都要掌握的基本技能. 在多年前没几个人家里有电脑的时候,你们能想到,如今电脑会进入各个公司,of ...
最新文章
- 令人作呕的OpenSSL
- GitHub 仓库按大小排序
- c语言 艺术编程,C语言编程艺术--条件编译(原创)
- 上午写了一段代码,下午就被开除了~
- JSR 303 - Bean Validation与Hibernate Validation 介绍
- sklearn特征工程
- EnvironmentError: mysql_config not found
- 全网抢夺“刘畊宏女孩”
- element js 包含字符_携程春招题目字符串截取和数组升维
- [朝气蓬勃][22H2]Win11.0.22622.450专工-微创-优化
- 画思维导图一定要用计算机来完成吗,一起来画思维导图
- 平面设计的福音,速看!
- kotlin中使用软引用
- ps考试引擎安装溢出屏幕
- NAS 网络附属存储
- 如何在10分钟内开始使用MongoDB
- Appium并发测试
- 最简单的使用python爬取图片
- 计算机网络常用端口汇总!总有你不知道的端口及对应的服务!
- 中国连接Internet的海底光缆
热门文章
- web前端培训分享Electron之IPC 通信
- 如何使用Python制作一个会动的地球仪?
- Pycharm中的Debug工具以及简单的使用方法
- 面向对象编程 object oriented programming(OOP)(第二篇)
- OpenCASCADE绘制测试线束:OCAF 命令之标准演示命令
- wxWidgets:wxSpinDoubleEvent类用法
- boost::range_reverse_iterator相关的测试程序
- boost::mpl模块实现copy_if相关的测试程序
- boost::hana::is_nothing用法的测试程序
- boost::advance用法的测试程序