python8入门 | 程序的控制结构

一、程序的三种控制结构

1.程序流程图

程序流程图是一种表达程序控制结构的方式。主要用于关键部分的程序分析和过程描述,由一些列图形、流程线和文字说明等组成。

流程包括的7种基本元素:

各基本元素的含义如下:

起止框:表示程序逻辑的开始或结束;

判断框:表示一个判断条件,并根据判断结果选择不同的执行路径;

处理框:表示一组处理过程,对应于顺序执行的程序逻辑;

输入/输出框:表示程序中的数据输入或结果输出;

注释框:表示程序的注释;

流向线:表示程序的控制流,以带箭头直线或曲线表达程序的执行路径;

连接点:表示多个流程图的连接方式,常用于将多个较小流程图组织成较大流程图。描述一个计算问题的程序过程有多种方式,包括IPO、流程图、伪代码或程序代码。其中,流程图采用图形方式最为直观,这里仅使用这种形式介绍3种控制结构的基本和扩展含义。

2.程序控制结构基础

程序由3种基本结构组成:顺序结构分支结构和循环结构。任何程序都由这三种结构组合而成。

①顺序结构:按照线性顺序依次执行的一种运行方式,流程图表示如下:

②分支结构是:程序根据条件判断结果而选择不同向前执行路径的一种运行方式,流程图如下:

其中,向前执行表示向代码前进方向执行。最基础的分支结构是二分支结构,即判断条件产生“是”或“否”的结果,并根据这个结

构选择不同的路径。

分支结构会组合形成多分支结构。

③循环结构:是程序根据条件判断结果向后执行的一种运行方式,其流程图如下:

其中,向后执行表示已执行过的代码方向。由于向后执行形成了对代码的反复执行,因此这种逻辑被称为循环。

顺序结构、分支结构和循环结构是3种基本的控制结构,任何编程语言都提供3种基本的控制逻辑,并进行适当的扩展。

3.程序控制结构拓展

在3种基本控制逻辑基础上,python语言进行了必要且适当的拓展。

在分支结构原理的基础上,python增加了异常处理,使用ty-except保留字,如下图所示:

异常处理以程序是否异常为判断条件,根据一段代码执行的正确性进行程序逻辑选择。异常处理是分支结构的一种拓展

在循环结构原理的基础上,python提供两个循环控制符breakcontinue,对循环的执行过程进行控制。break控制符用来结束当前的循环,continue控制符用来结束当前循环的当次循环过程。

二、程序的分支结构

1.单分支结构:if

Python的单分支结构使用if保留字对条件进行判断,使用方式如下:

if <条件>:

<语句块>

流程图如下:

<条件>:是一个或多个条件的组合,以逻辑运算结果为主,多个条件间采用and或or进行逻辑组合。and表示多个条件“与”的关系,or表示多个条件“或”的关系。

2.二分支结构:if — else

Python的二分支结构使用if — else保留字对条件进行判断,语法格式如下:

if <条件>:

<语句块1>

else:

<语句块2>

流程图如下:

例题:

编程题---判断数字特性

1.判断输入数字的奇偶性。

2.判断输入数字能否被3或5整除。

3.多分支结构:if - elif- else

Python的多分支结构使用if - elif- else保留字对多个条件进行判断,并根据不同条件的结果按照顺序选择执行路径,语法格式如下:

if <条件1>:

<语句块1>

elif <条件2>:

<语句块2>

...

else:

<语句块N>

流程图如下:

多分支结构通常用于判断同一个条件或一类条件的多个执行路径。要注意,python会按照多分支结构的代码顺序依次评估判断条件,寻找并执行第一个结果True条件对应的语句块,当前语句块执行后跳过整个if - elif- else结构。如果没有任何条件成立,else下面的语句块被执行。else子句是可选的。

利用多分支结构编写代码时要注意多个逻辑条件的先后关系。

例题:如何输入不同等级的成绩。

1.获取用户输入一个百分制的成绩,转换为五分制成绩,对出对应的A、B、C、D、E等级。

优秀 良好 及格 不及格

三、程序的循环结构

python语言的循环结构包括两种:遍历循环和无限循环。遍历循环使用 for 依次提取遍历结构各元素进行处理,无限循环使用保留字while根据条件执行程序。

1.遍历循环:for

Python通过保留字for实现遍历循环,使用方式如下:

for <循环变量> in <遍历结构>:

<语句块>

流程图如下:

遍历循环可以理解为从遍历结构中逐一提取元素,放在循环变量中,对于每个多提取的元素执行一次语句块。for语句的循环执行次数是根据遍历结构中元素的个数确定的

遍历结构可以是字符串、文件range( )函数或组合数据类型等。

对于字符串,可以逐一遍历字符串的每个字符,使用方式如下:

for <循环变量> in <字符串>:

<语句块>

使用range( )函数,可以指定语句块的循环次数,使用方式如下:

for <循环变量> in range(<循环次数>):

<语句块>

补充:range( )函数----可创建一个整数列表。

range(10):[0,1,2,3,4,5,6,7,8,9]

range(1,11):[1,2,3,4,5,6,7,8,9,10];

range(0,30,5):[0,5,10,15,20,25];

遍历循环还有一种扩展模式,使用方法如下:

for <循环变量> in <遍历结构>:

<语句块1>

else:

<语句块2>

当for循环正常执行之后,程序会继续执行else语句中内容。else语句只有循环正常执行没有被break打断才执行,因此,可以在<语句块2>中放置判断循环执行情况的语句。for循环的else语句可以看成循环正常执行结束的“奖励”部分。

2.无限循环:while

1、Python通过保留字while实现无限循环,基本使用方式如下:

while <条件>

<语句块>

流程图如下:

2、无限循环的拓展模式

whlie <条件>:

<语句块1>

else:

<语句块2>

在这种拓展模式中,当whlie循环正常执行之后,程序会继续执行else语句中内容。else语句只有循环正常执行后断才执行,因此,可以在<语句块2>中放置判断循环执行情况的语句。while循环的else语句与for循环的else语句一样,都是循环正常执行结束的“奖励”部分。

3.循环控制:breakcontinue

循环结构有两个辅助循环控制的保留字:break和continue。

break用来跳出最内层for或while循环,脱离该循环后程序继续执行循环后续代码。

continue用来结束当前当次循环,即跳出循环体中下面尚未执行的语句,但不跳出当前循环。

练习题:


1.以下语句在python中非法的是( )。

A.x = y = z =1 B.x = ( y = z )=1 C.x, y = y, x D.x += y

2.以下选项运行结果为True的是( )。

A.('3','2') < ('a','b') B.5+4j > 2-3j( == 或 !=)

C.'abc' > 'xyz' D.3>2>2

在python中,只要两个对象的类型相同,且它们是内置类型(字典除外),那么这两个对象就能进行比较。所以,两个对象如果类型不同,就没法比较,比如数值类型的数值不能和字符串类型的数值或字母比较。 

Unicode:小写字母>大写字母>数字

a,b,c,d,e,f,...,z(从小到大)

A,B,C,D,...,Z(从小到大)

0,1,2,3,4,5,6,7,8,9:(从小到大)

3.以下选项符合python语言要求且能够正确执行的是( )。

A.min = x if x < y = y B.max=x > y ? x:y

C.if ( x:y ) print x D.while True:pass

4.以下选项用来判断当前程序在分支结构中的是( )。

A.括号 B.冒号 C.缩进 D.花括号

5.以下选项不能不能进行逻辑判断的是( )。

A.and B.or C.not D.xor

6.for或者while与else搭配使用时,能够执行else对应语句块的情况是( )。

A.总会执行

B.永不执行

C.仅循环正常结束时

D.仅循环非正常结束时,以break结束

7.关于break的作用,以下说法中正确的是( )。

A.按照缩进跳出当前层语句块

B.按照缩进跳出除函数缩进外的所有语句块

C.跳出当前层 for/while循环

D.跳出所有的 for/while循环

8.输入一个年份,判断是否是瑞年。

#瑞年的条件:能被4整除但是不能被100整除,或者能被400整除的年份都是瑞年。

9.最大公约数计算。获取两个整数,求出这两个整数的最大公约数和最小公倍数。

#最大公约数:一般使用辗转相除法。

#最小公倍数:两个数的乘积➗ 最大公约数

不满足条件,循环结束,

=0 找到最大公约数。

辗转相除:

(大数,小数)=

大数÷小数= .....A

小数÷A=.....B

A÷B=.....C

.....

(①) ÷ (②) =.....0

②是最大公约数

12÷5=2...2

5÷2=2...1

1=1....0

5=1...0

  • 37
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值