查看上一节:递归的基本用法
上节课留了两个练习,这节课给大家讲一下,同时巩固一下递归的用法。
练习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学习站官方技术圈!