python学习之路-递归

简介: 简介: 开发者学堂课程,了解Python语言的基本特性、编程环境的搭建、语法基础、算法基础等,了解Python的基本数据结构,对Python的网络编程与Web开发技术具备初步的知识,了解常用开发框架的基本特性,以及Python爬虫的基础知识。 课程地址:https://developer.aliyun.com/learning/course/601/detail/8731

目标:做一个可以算出任意数的阶乘

1.阶乘是什么,怎么算

# 尝试求10的阶乘(10!)# 1!=1# 2!=1*2=2# 3!=1*2*3=6# 4!=1*2*3*4=24# 10!=1*2*3*4*5*6*7*8*9*10=3628800

2.用循环算出10的阶乘

# 创建一个变量保存结果n=10foriinrange(1,10):
n*=iprint(n)

算出10的阶乘=3628800

image.png

3.创建一个函数,可以用来求任意数的阶乘

#创建一个函数,可以用来求任意数的阶乘# n 要求阶乘的数字deffactorial(n):
# 创建一个变量,用来保存结果result=nforiinrange(1,n):
result*=ireturnresult# 求10的阶乘print(factorial(10))  #3628800

递归式函数,在函数中自己调用自己!

无穷递归,如果这个函数被调用,程序的内存会溢出,效果类似于死循环

递归和循环类似,基本都是可以互相代替的

10!=10*9!

 9!=  9*8!

 8!=  8*7!

 7!=  7*6!

 ...

 1!=  1

deffactorial2(n):
#基线条件,判断n是否为1,如果为1则此时不能再继续递归ifn==1:
return1#1的阶乘就是1,直接返回1# 递归条件returnn*factorial2(n-1)
print(factorial2(10))  #3628800


1.创建一个函数 power 来为任意数字做幂运算 n**i

 

# power()用来为任意的数字做幂运算# 参数:n 要做幂运算的数字,i 要做幂运算的次数defpower(n,i):
# 基线条件ifi==1:
# 求1次幂returnn# 递归条件returnn*power(n,i-1)
print(power(8,6))  #262144print(8**6)        #262144

2.创建一个函数,用来检查一个任意的字符串是否是回文 (字符串,如果是返回True,否则返回 False

回文字符串,字符串从前往后念和从后往前念是一样的

Abcba

abcdefgfedcba

先检查第一个字符和最后一个字符是否一致如果不一致则不是回文字符串

如果一致则看剩余的部分是否是回文字符串

检查 abcdefgfedcba 是不是回文

检查 bcdefgfedcb 是不是回文

检查 cdefgfedc 是不是回文

检查 defgfed 是不是回文

检查 efgfe 是不是回文

检查 fgf 是不是回文

检查 g 是不是回文

defhui_wen(s):
'''       该函数用来检查指定的字符串是否回文       参数:s 就是要检查的字符串    '''# 基线条件if(len(s)<2):
# 字符串的长度小于2,则字符串一定是回文returnTrueelifs[0]!=s[-1]:
# 第一个字符和最后一个字符不相等returnFalse# 递归条件returnhui_wen(s[1:-1])
print(hui_wen('hellolleh'))  # 返回True
相关文章
|
1月前
|
PyTorch Linux 算法框架/工具
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
这篇文章是关于如何使用Anaconda进行Python环境管理,包括下载、安装、配置环境变量、创建多版本Python环境、安装PyTorch以及使用Jupyter Notebook的详细指南。
249 1
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
|
8天前
|
算法 Python
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果;贪心算法在每一步选择局部最优解,追求全局最优;动态规划通过保存子问题的解,避免重复计算,确保全局最优。这三种算法各具特色,适用于不同类型的问题,合理选择能显著提升编程效率。
25 2
|
30天前
|
机器学习/深度学习 人工智能 架构师
Python学习圣经:从0到1,精通Python使用
尼恩架构团队的大模型《LLM大模型学习圣经》是一个系统化的学习系列,初步规划包括以下内容: 1. **《Python学习圣经:从0到1精通Python,打好AI基础》** 2. **《LLM大模型学习圣经:从0到1吃透Transformer技术底座》**
Python学习圣经:从0到1,精通Python使用
|
1月前
|
机器学习/深度学习 缓存 PyTorch
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
这篇文章是关于如何下载、安装和配置Miniconda,以及如何使用Miniconda创建和管理Python环境的详细指南。
348 0
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
|
1月前
|
开发者 Python
Python学习九:file操作
这篇文章是关于Python文件操作的详细教程,包括文件的打开、读写、关闭,以及文件备份脚本的编写和文件定位操作。
18 2
|
30天前
|
机器学习/深度学习 人工智能 架构师
|
1月前
|
机器学习/深度学习 缓存 Linux
python环境学习:pip介绍,pip 和 conda的区别和联系。哪个更好使用?pip创建虚拟环境并解释venv模块,pip的常用命令,conda的常用命令。
本文介绍了Python的包管理工具pip和环境管理器conda的区别与联系。pip主要用于安装和管理Python包,而conda不仅管理Python包,还能管理其他语言的包,并提供强大的环境管理功能。文章还讨论了pip创建虚拟环境的方法,以及pip和conda的常用命令。作者推荐使用conda安装科学计算和数据分析包,而pip则用于安装无法通过conda获取的包。
61 0
|
1月前
|
Python
python学习之旅(基础篇看这篇足够了!!!)(下)
python学习之旅(基础篇看这篇足够了!!!)(下)
27 0
|
1月前
|
存储 程序员 Python
python学习之旅(基础篇看这篇足够了!!!)(上)
python学习之旅(基础篇看这篇足够了!!!)(上)
33 0
|
1月前
|
数据安全/隐私保护 Python
python学习十一:python常用模块使用,如 加密模块pyarmor,时间模块time等
这篇文章介绍了Python中两个常用模块的使用:加密模块pyarmor用于保护代码,以及时间模块time用于处理时间相关的功能。
74 0