Python程序设计案例教程第2版第4章程序的流程控制_第1页
Python程序设计案例教程第2版第4章程序的流程控制_第2页
Python程序设计案例教程第2版第4章程序的流程控制_第3页
Python程序设计案例教程第2版第4章程序的流程控制_第4页
Python程序设计案例教程第2版第4章程序的流程控制_第5页
已阅读5页,还剩44页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SSM框架应用于沈工高职考试系统的设计与实践第4章 程序的流程控制分支结构4.12双分支结构1单分支结构3多分支结构顺序结构流程控制分类分支结构循环结构定义分支结构又称选择结构,这里包含选择条件,根据是否满足选择条件,执行不同的代码块。分支结构分类:单分支结构双分支结构多分支结构

4.1分支结构如果条件满足,执行代码块,否则程序结束。语法结构如下:if判断条件:

代码块4.1.1单分支结构例:判断输入整数奇偶性4.1.1单分支结构双分支结构产生两个分支,可以根据条件表达式判断结果,选择执行哪一个分支结构。语法结构如下:if判断条件:

代码块1else:

代码块24.1.2双分支结构案例:判断输入整数奇偶性4.1.2双分支结构紧凑型双分支结构例:判断输入整数奇偶性适用于简单表达式的二分支结构<表达式1>if<条件>else<表达式2>

4.1.2双分支结构如果程序需要处理多种情况,可以使用多分支结构。语法结构如下:if判断条件:

代码块1elif判断条件:

代码块2……else:

代码块n4.1.3多分支结构例:将分数由百分制转换为五级制百分制(分)五分制(级)分数<60E60<=分数<70D70<=分数<80C80<=分数<90B90<=分数Ascore=eval(input("请输入成绩:"))

ifscore<60:

grade=“E“elifscore>=60:

grade=“D"

elifscore>=70:

grade="C"

elifscore>=80:

grade="B"

else:

grade="A"

print("输入成绩属于级别{}".format(grade))

问题:该代码是否可正确执行?-注意多条件之间的包含关系

-注意变量取值范围的覆盖

4.1.3多分支结构案例8:模拟出租车计价功能案例:出租车费用计算某城市的出租车计价标准:3km内,收费8元;3-15km,超出3km的部分按每550m收费1元;超过15km,超出部分按每370m收费1元。编写程序,根据用户输入的行驶千米数,计算应缴费用。举个例子Forexample多分支结构案例8:模拟出租车计价功能案例9:飞机场安检案例9:飞机场安检案例10:计算体脂率案例优化1.数据输入部分程序要对身高、体重、年龄和性别进行数据有效性验证(限制身高范围、体重范围、年龄范围,性别只能输入0或1)案例10:计算体脂率案例优化2.数据处理部分利用分支结构,分别根据男女体脂率的不同标准来进行判断3.数据输出部分程序输出结果应根据性别分别进行问好,并输出较友好的体脂率判断结果。具体要求如下:(1)如果是男士,则输出“先生,您好”(2)如果是女士,则输出“女士,您好”(3)如果结果正常,则输出“恭喜您,身体非常健康,请继续保持”(4)如果结果异常,则输出“请注意,您的身体偏瘦/偏胖”循环结构4.22for循环1while循环3循环嵌套由条件控制的循环运行方式-反复执行语句块,直到条件不满足时结束4.2.1while循环结构拉茨猜想又称为冰雹猜想,或者3n+1猜想,对于每一个整数n:奇数时:3n+1偶数时:n/2如此循环,最终都能得到整数1.循环条件:如果得到的数不等于1,就执行循环代码块:

奇数:3n+1

偶数:n/2

输出数据举个例子Forexample4.2.1while循环结构例:Case4_5.pyfor循环又称为遍历循环,遍历某个结构形成的循环运行方式

-由保留字for和in组成,完整遍历所有元素后结束

-每次循环,从遍历结构中获得元素放入循环变量,并执行一次语句块

4.2.2for循环分类计数循环(N次)foriinrange(N):

<语句块>

foriinrange(M,N,K):

<语句块>

forcins:

<语句块>

foriteminls:

<语句块>

4.2.2for循环计数循环(特定次)字符串遍历循环列表遍历循环range()函数range(start,end,step):创建一个整数列表start:表示列表起始位置,可以省略,从0开始end:表示列表结束位置,不可以省略step:表示元素增幅,或者叫步长,可以省略,步长1range(5):[0,1,2,3,4]range(1,5):[1,2,3,4]range(1,5,2):[1,3]4.2.2for循环计数循环(N次)foriinrange(N):

<语句块>

-遍历由range()函数产生的数字序列,产生循环

>>>foriinrange(5):

print(i)

01234

>>>foriinrange(5):

print("Hello:",i)

Hello:0

Hello:1

Hello:2

Hello:3

Hello:44.2.2for循环计数循环(特定次)foriinrange(M,N,K):

<语句块>

-遍历由range()函数产生的数字序列,产生循环

>>>foriinrange(1,6):

print(i)

12345

>>>foriinrange(1,6,2):

print("Hello:",i)

Hello:1

Hello:3

Hello:5

4.2.2for循环字符串遍历循环forcins

:

<语句块>

-s是字符串,遍历字符串每个字符,产生循环>>>forcin"Python123":

print(c)

Python123

4.2.2for循环列表遍历循环-ls是一个列表,遍历其每个元素,产生循环foriteminls:

<语句块>

>>>foritemin[123,"PY",456]:

print(item)

123PY456

4.2.2for循环while循环嵌套while循环中可以嵌套while循环,其格式如下:while循环条件1:代码块1 while循环条件2:代码块24.2.3循环嵌套while循环嵌套-例Case4_9:打印金字塔金字塔层数:n层数计数:level,从0开始计数

每层打印空格数:n-level每层打印*数:2*level+1

4.2.3循环嵌套while循环嵌套-例:打印金字塔4.2.3循环嵌套for循环嵌套for循环变量in序列:代码块1 for循环变量in序列:4.2.3循环嵌套for循环嵌套-例Case4_10:打印金字塔金字塔层数:n层数计数:i,从0开始计数

每层打印空格数:n-i每层打印*数:2*i+1

4.2.3循环嵌套for循环嵌套-例:打印金字塔4.2.3循环嵌套案例11:模拟微波炉定时器案例11:模拟微波炉定时器举个例子Forexample案例代码Case6_20.py举个例子想象一下你在用微波炉上的定时器,输入你想倒数的时间(精确到分和秒),微波炉计时器会倒计时到0:00,程序中要给出分钟数和秒钟数的倒计时,并输出微波炉显示的剩余时间,每次倒计时都分行输出。注意:输出每一行的时候不需要真的等待1秒;需要考虑三种输入情况,如0:12、10:34、00:96。其他语句4.3break和continue-break和continue可以与for和while循环搭配使用-

break跳出并结束整个循环,执行循环后的语句

-continue结束当次循环,继续执行后续次数循环4.3其他语句1循环控制保留字1break和continue的例子循环控制保留字forcin"PYTHON":

ifc=="T":

continue

print(c,end="")

运行结果:PYHONforcin"PYTHON":

ifc=="T":break

print(c,end="")

运行结果:PY

4.3其他语句2循环与elseforcin“PYTHON”:

ifc==“T”:

continue

print(c,end=“”)

else:

print(“正常退出”)

运行结果PYHON正常退出

遇到continue,循环正常退出,执行else语句4.3其他语句forcin“PYTHON”:

ifc==“T”:

break

print(c,end=“”)

else:

print(“正常退出”)

运行结果PY

遇到break,循环结束,不执行else语句模块2:random库4.4random库包括两类函数,常用共8个:基本随机数函数:seed(),random()扩展随机数函数:randint(),uniform(),randrange(),choice(),shuffle(),sample()

4.4模块2:random库random库是用来生成随机数的Python标准库基本随机数函数函数描述seed(a=None)初始化给定的随机数种子,默认为当前系统时间

>>>random.seed(10)#产生种子10对应的序列random()生成一个[0.0,1.0)之间的随机小数

>>>random.random()

0.57140259468991354.4模块2:random库函数描述uniform(a,b)生成一个[a,b]之间的随机小数

>>>random.uniform(10,100)

13.096321648808136randint(a,b)生成一个[a,b]之间的整数

>>>random.randint(10,100)

64randrange(m,n[,k])生成一个[m,n)之间以k为步长的列表[10,12,...,98],从中随机选择

>>>random.randrange(10,100,2)

80choice(seq)从序列seq中随机选择一个元素

>>>random.choice([1,2,3,4,5,6,7,8,9])

8shuffle(seq)将序列seq中元素随机排列,返回打乱后的序列

>>>s=[1,2,3,4,5,6,7];random.shuffle(s);print(s)

[3,5,6,1,2,7,4]sample(seq,k)将序列seq中随机获取K个元素,组成一个新的序列

>>>s=['Java','C','C++','PHP','Python'];random.sample(s,2)

['PHP','C']

4.4模块2:random库案例12:随机生成四位验证码4.5

生成随机四位验证码案例12:随机生成四位验证码

实现过程分析:循环生成4位验证码:foriinrange(4)验证码包括三种情况:数字、小写字母和大写字母生成0-100之间的随机数。大写按照随机数%3分成三种情况

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论