




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
模块四控制语句与函数目录标题424.函数的参数5.递归函数1.条件控制2.函数的定义3.函数的调用4.函数的参数5.递归函数1.条件控制之前编写的程序都是顺序结构的,即依次执行程序中的每条语句。但实际的程序并非如此简单,经常要用到条件判断或反复执行某一个程序段,这就要用到条件语句和循环语句。本小节主要介绍条件语句、循环语句及跳转语句。3条件语句能够改变Python程序的执行流程,是执行这个代码块还是另一个代码块。凡是需要判断来确定下一步如何执行的程序都要使用条件语句。1.条件控制41.1条件分支1.条件控制51.1
条件分支if/else语句(1)单分支格式:if(表达式):
语句序列功能:如果条件表达式的值为真,则执行后面的语句序列。1.条件控制61.1条件分支(2)双分支格式:if(表达式):
语句序列1else:
语句序列2功能:如果“条件表达式”的判断结果为真,则执行语句序列1;否则,执行语句序列2。
1.条件控制7例4-1判断用户的输入,如果输入的数值大于0,则在屏幕上显示“正数”;否则在屏幕上显示“不是正数”。a=input(”a:”)a=int(a)if(a>0): print(a,”是正数。”)else: print(a,”不是正数。”)执行结果:a:55是正数。>>>=======>>>a:-9-9不是正数。1.条件控制81.2
if…elif…else语句if/elif语句是if语句的扩展版本,它包含多个条件,用于作出复杂的决策。
所以elif的完整形式如下。if<条件判断1>: <执行1>elif<条件判断2>: <执行2>else: <执行3>1.条件控制9例4-2:假设0-6岁是kid,6-18岁的是teenager,18岁以上是adult,判断20岁的人属于哪一类?age=20ifage>=6: print('teenager')elifage>=18: print('adult')else: print('kid')
输出结果:
teenager1.条件控制101.3
while循环语句格式:while条件表达式:
语句序列功能:当条件表达式为真时,依次执行while中的语句,直到循环表达式的值为假。1.条件控制11例4-3:求1+2+3+…+100i=1sum=0whilei<=100 sum+=i i=i+1print('sum=',sum)执行结果:sum=50501.条件控制121.4
for循环语句格式:for变量in集合:…功能:每次从集合中取出一个值,并把值赋给变量。集合可以是元组、列表、字典等数据结构。说明:for循环通常与range()函数一起使用,range()函数返回一个列表,for循环遍历列表中的元素。Range()函数格式:range(start,stop[,step]),参数start表示列表开始值,默认为0;参数stop表示列表结束值,不能缺省,循环到stop-1停止;参数step表示步长,默认值为1。1.条件控制13例4-4:求1+2+3+…+100#simplefor#findthesumofthenumbersfrom1to100
theSum=0
fornumberinrange(1,101):theSum=theSum+number
print('Sumis:',theSum)执行结果:Sumis:50501.条件控制141.5
for循环和while循环比较一般来说,固定次数的循环问题使用for循环和while循环都可以解决,而循环次数不固定的循环问题只能使用while循环解决。1.条件控制151.6跳转语句与C、C++类似,在Python中除了提供顺序执行和选择控制、循环控制语句外,还提供了一类跳转语句。这类语句的总体功能是中断当前某段程序的执行,并跳转到程序的其他位置继续执行。Python的跳转语句有:break语句和continue语句。1.条件控制16跳转语句的作用及区别:break语句的作用是:结束当前正在执行的循(for、while),转而执行这些结构后面的语句。continue语句的作用是:结束当前正在执行的这一次循环(for、while),接着执行下一次循环。即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。continue语句和break语句的区别是:continue语句只结束本次循环,而不是终止整个循环的执行。而break语句则是结束整个循环,不再进行条件判断。目录172.函数的定义3.函数的调用4.函数的参数5.递归函数2.函数的定义18
函数语法定义函数是一个能完成特定功能的代码块,可在程序中重复使用,减少程序的代码量和提高程序的执行效率。在Python中函数定义语法如下:deffunction_name(arg1,arg2[,...]):
statement[returnvalue]函数参数和返回值不是必须的,如果没有return语句,则Python函数默认返回值为None。19目录1.条件控制2.函数的定义3.函数的调用4.函数的参数5.递归函数203.函数的调用函数调用定义函数调用的语法:
函数名([实参列表])
我们在调用函数之前,必须先创建它。你可以使用def关键字进行函数的定义,可以通过在交互模式下输入,也可以通过在一个模块文件中编写好该函数,然后导入需要使用该函数的文件。在Python中内置了很多有用的函数,这些函数我们可以直接调用。213.函数的调用例4-5:求任意两数的乘积deftest_func(a,b): return(a*b)>>>test_func(25,25)625>>>test_func(11,12)13222目录1.条件控制2.函数的定义3.函数的调用4.函数的参数5.递归函数234.函数的参数4.1位置参数defpower(x):returnx*x对于power(x)函数来说,参数x就是一个位置参数。当我们调用power函数的时候,必须传入且仅有的一个参数xdefpower(x,n): s=1 whilen>0: n=n-1 s=s*x returns修改后的power(x,n)函数有两个参数:x和n,这两个参数都是位置参数,调用函数时,传入的两个值按照位置顺序依次赋给参数x和n。244.函数的参数4.2默认参数函数定义时最前面是位置参数,然后是默认值参数即默认值参数右边不能再有位置参数。defpower(x,n=2): s=1 whilen>0: n=n-1 s=s*x returnsn为默认参数,默认值为2254.3关键字参数
在Python函数中,还可以定义可变参数。顾名思义,可变参数就是传入的参数个数是可变的,可以是1个、2个或者任意多个,也可以是0个。defcalc(number): sum=0 forninnumber: sum=sum+n*n returnsum>>>calc(1,2,3)14>>>calc(1,3,5,7)84264.函数的参数4.3关键字参数
在Python函数中,还可以定义可变参数。顾名思义,可变参数就是传入的参数个数是可变的,可以是1个、2个或者任意多个,也可以是0个。defcalc(number): sum=0 forninnumber: sum=sum+n*n returnsum>>>calc(1,2,3)14>>>calc(1,3,5,7)84274.函数的参数4.3关键字参数
在Python函数中,还可以定义可变参数。顾名思义,可变参数就是传入的参数个数是可变的,可以是1个、2个或者任意多个,也可以是0个。defcalc(number): sum=0 forninnumber: sum=sum+n*n returnsum>>>calc(1,2,3)14>>>calc(1,3,5,7)84284.4关键字参数可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个元组。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个字典。defperson(name,age,**kw): print('name:',name,'age:',age,'other:',kw)>>>person('Michael',30)name:Michaelage:30other:{}关键字参数kw,在调用该函数的时候可以只传必选参数4.函数的参数294.函数的参数也可以传入任意个数的关键字参数。
>>>person('Bob',35,city='Chongqing')name:Bobage:35other:{'city':'Chongqing'}>>>person('Adam',45,gender='M',job='Engineer')name:Adamage:45other:{'gender':'M','job':'Engineer'}defperson(name,age,**kw): print('name:',name,'age:',age,'other:',kw)作用:它可以扩展函数的功能。比如,在person函数里,我们保证能接收到name和age这两个参数,但是,如果调用者愿意提供更多的参数,我们也能收到。试想你正在做一个用户注册的功能,除了用户名和年龄是必填项外,其他都是可选项,利用关键字参数来定义这个函数就能满足注册的需求。304.5命名关键字参数
和关键字参数**kw不同,命名关键字参数需要一个特殊分隔符,后面的参数被视为命名关键字参数。
如果要限制关键字参数的名字,就可以用命名关键字参数,例如,只接收city和job作为关键字参数。这种方式定义的函数如下:defperson(name,age,*,city,job): print(name,age,city,job)>>>person('Jack',24,city='Chongqing',job='Engineer’)
Jack24ChongqingEngineer4.函数的参数311.条件控制2.函数的定义3.函数的调用4.函数的参数5.递归函数目录325.递归函数
函数可以调用其他函数,令人惊讶的是函数还可以调用自身,下面将对此进行介绍。递归这个词对于没有接触过程序设计的人来说可能会比较陌生。简单说来就是引用(或者调用)自身的意思。一个类似递归的定义如下。
defrecursion(): returnrecursion() 理论上讲此递归会永远运行下去。然而每次调用函数都会用掉一点内存,在足够多次数的函数调用发生后(在之前的调用返回后),空间就不够了,程序会以一个“超过最大递归深度”的错误信息结束。335.1递归求和
对一个数字列表(或者其他序列)求和,我们可以使用内置的sum函数,或者自己编写一个更加定制化的版本。这里是用递归编写的一个定制求和函数的示例。>>>defmysum(L): ifnotL: return0 else: returnL[0]+mysum(L[1:])>>>mysum([1,2,3,4,5])155.递归函数342023/5/175.递归函数在每一层,这个函数都是递归地调用自己来计算列表剩余的值的和,这个和随后加到前面的一项中。当列表变为空的时候,递归循环结束并返回0。当像这样使用递归的时候,对函数调用的每一个打开的层级,在运行调用堆栈上都有自己的一个函数本地作用域的副本,也就是说,这意味着L在每个层级都是不同的。如果这很难理解,可以尝试给函数添加一个L的打印并在此运行它,从而在每个调用层级记录下当前的列表。>>>defmysum(L): print(L) ifnotL return0 else: returnL[0]+mysum(L[1:])运行结果:5.1递归求和355.递归函数5.2递归求阶乘计算数n的阶乘。n的阶乘定义为n×(n
–1)×(n
–2)×…×1。1、一般循环deffactorial(n): result=n foriinrange(1,n): result*=i returnresult这个方法可行而且很容易实现。它的过程主要是:首先,将result赋到n上,然后result依次与1~n-1的数相乘,最后返回结果。365.递归函数计算数n的阶乘。n的阶乘定义为n×(n
–1)×(n
–2)×…×1。2、递归求解deffactorial(n): ifn==1: return1 else: returnn*factorial(n-1)这就是定义的直接实现。只要记住函数调用factorial(n)是和调用factorial(n-1)不同的实体就行。5.2递归求阶乘375.3二元查找假设提问者可能在想一个1~100的数字,提问者需要猜中它。当然,提问者可以耐心地猜上100次,但是真正需要猜多少次呢?答案就是只需要问7次即可。第一个问题类似于“数字是否大于50?”,如果被提问者回答说数字大于50,那么就问“是否大于75”,然后继续将满足条件的值等分(排除不满足条件的值),直到找到正确答案。这个不需要太多考虑就能解答出来。这个就是所谓的二元查找。5.递归函数385.3二元查找假设提问者可能在想一个1~100的数字,提问者需要猜中它。当然,提问者可以耐心地猜上100次,但
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年18-萘内酰亚胺项目合作计划书
- 2024-2025学年新教材高中英语 Unit 4 Amazing art表达 作文巧升格教学实录 外研版必修第三册
- 2024-2025学年新教材高中物理 第2章 抛体运动 第4节 生活中的抛体运动教学实录 鲁科版必修第二册
- 10古诗三首《石灰吟》教学设计-2023-2024学年统编版语文六年级下册
- 2024年四年级品社下册《我做小小普法员》教学实录2 山东版
- 6《太阳和生活》教学设计-2023-2024学年科学二年级上册青岛版
- 2024-2025学年人教版二年级上册数学全册教学教案(教学设计)
- 2024年四年级英语下册 Module 3 Unit 1 Robots will do everything教学实录 外研版(三起)
- 2024年五年级数学上册 四 走进动物园-简易方程单元小测试教学实录 青岛版六三制
- 2023-2024学年高中化学 2.2.1 有机化合物的分类和命名构教学实录 苏教版选择性必修3
- 体能训练预防训练伤
- 内分泌科护理常规的课件
- 疼痛科营销方案
- 中医药在关节病变治疗中的价值
- 《香水知识》课件
- 公务员奖励审批表(表格)
- 仓库6s检查标准
- 申请撤销协助执行通知书范本
- 拉伸法测弹性模量
- 装修项目经理的简历样板
- 班级文化建设一等奖-完整版课件
评论
0/150
提交评论