程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

Python二级(06)——程序的控制结构

发布于2019-08-20 12:29     阅读(1868)     评论(0)     点赞(3)     收藏(4)


一、知识导图

图1.png

二、程序的基本结构

1、程序的流程图
I、程序流程图用一系列图形、流程线和文字说明描 述程序的基本操作和控制流程,它是程序分析和 过程描述的最基本方式。
II、流程图的基本元素包括7种
图2.png
III、
n 起止框:表示程序逻辑的开始或结束;
n 判断框:表示一个判断条件,并根据判断结果选择不同的执行路径;
n 处理框:表示一组处理过程,对应于顺序执行的程序逻辑;
n 输入输出框:表示程序中的数据输入或结果输出;
n 注释框:表示程序的注释;
n 流向线:表示程序的控制流,以带箭头直线或曲线表达程 序的执行路径;
n 连接点:表示多个流程图的连接方式,常用于将多个较小 流程图组织成较大流程图
图3.png
2、程序的基本结构
I、程序由三种基本结构组成:
任何程序都由这三种基本结构组合而成
这些基本结构都有一个入口和一个出口。任何 程序都由这三种基本结构组合而成
①顺序结构是程序按照线性顺序依次执行的一种运行 方式,其中语句块S1和语句块S2表示一个或一组 顺序执行的语句
图4.png
②分支结构是程序根据条件判断结果而选择不同向前 执行路径的一种运行方式,基础的分支结构是二分支结构。由二分支结构会组合形成多分支结构。
图5.png
③循环结构是程序根据条件判断结果向后反复执 行的一种运行方式,根据循环体触发条件不同, 包括条件循环和遍历循环结构。
图6.png
II、在分支结构原理的基础上,Python增加了异常 处理,使用try-except保留字;异常处理以程序异常为判断条件,根据一段代 码执行的正确性进行程序逻辑选择。异常处理 是分支结构的一种扩展。
III、在循环结构原理的基础上,Python提供两个循 环控制符break和continue,对循环的执行过程 进行控制。break控制符用来结束当前循环, continue控制符用来结束当前循环的当次循环 过程。

三、程序的分支结构

1、单分支结构: if语句
I、Python的单分支结构使用if保留字对条件进行 判断,使用方式如下:
图7.png
<条件>是一个或多个条件,多个条件间采用and或or进 行逻辑组合。and表示多个条件“与”的关系,or表示 多个条件“或”的关系

# 判断用户输入数字的特定
s = eval(input("请输出一个整数:"))
if s%3 == 0 and s%5 == 0:
        print("这个数字既能被3整除,又能被5整除")
print("输入数字是:", s)
  • 1
  • 2
  • 3
  • 4
  • 5

2、 二分支结构: if-else语句
I、Python的二分支结构使用if-else保留字对条件 进行判断,语法格式如下:
图8.png

# 判断用户输入数字的某个属性
s = eval(input("请输出一个整数:")) 
if s % 3 == 0 and s % 5 == 0:
        print("这个数字能够同时被3和5整除") 
else:
        print("这个数字不能够同时被3和5整除")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

II、二分支结构还有一种更简洁的表达方式,适合< 语句块1>和<语句块2>都只包含简单表达式的情 况,语法格式如下:
图9.png

# 判断用户输入数字的某个属性
s = eval(input("请输入一个整数:"))
token = '' if s % 3 == 0 and s % 5 == 0 else '不'
print("输入的数{}能同时被3和5整除".format(token))
  • 1
  • 2
  • 3
  • 4

3、 多分支结构: if-elif-else语句
I、Python的if-elif-else描述多分支结构,语句格式
图10.png
II、多分支结构通常用于判断同一个条件或一类条件的 多个执行路径。要注意,Python会按照多分支结构 的代码顺序依次评估判断条件,寻找并执行第一个 结果为True条件对应的语句块,当前语句块执行后 跳过整个if-elif-else结构。
III、获取用户输入的一个百分制成绩,转换成五分制,给出对应的A、B、C、D、E等级。

将百分制成绩转换为五分制成绩

# 将百分制成绩转换为五分制成绩
score = eval(input("请输出一个百分制成绩:"))
if score >= 60.0:
    grade = "D"
elif score >= 70.0:
    grade = "C"
elif score >= 80.0:
    grade = "B"
elif score >= 90.0:
    grade = "A"
else:
    grade = "E"
print("对应的五分制成绩是:{}".format(grade))

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

4、 判断条件及组合
I、分支结构中的判断条件可以使用任何能够产生 True或False的语句或函数。形成判断条件最常 见的方式是采用关系操作符
图11.png

>>>4 < 5
True
>>>"Python" > "python" 
False
  • 1
  • 2
  • 3
  • 4

II、Python语言中,任何非零的数值、非空的数据类型都 等价于True,0或空类型等价于False,可以直接用作判 断条件。

>>>0 == False
True
>>>"" == True 
False
  • 1
  • 2
  • 3
  • 4

III、Python语言使用保留字not、and和or对条件进行逻辑 运算或组合
保留字not表示单个条件的“否”关系,and表示多个 条件之间的“与”关系,保留字or表示多个条件之间 的“或”关系。

>>>not True
False
>>>a = 80
>>>( a > 100) or ( a > 50 and a < 90)
True
  • 1
  • 2
  • 3
  • 4
  • 5

四、程序的循环结构

1、程序的循环结构
I、Python语言的循环结构包括两种: 遍历循环无限循环
II、使用保留字for依次提取遍历结构各元素进行处理;
III、使用保留字while根据判断条件执行 程序。
2、遍历循环:for
I、遍历循环可以理解为从遍历结构中逐一提取元素,放在循环变量中,对于每个所提取的元素执行一次语句块。for语句的循环执行次数是根据遍历结构中元素个 数确定的。
图12.png
II、遍历结构可以是字符串、文件、range()函数或组合数据类型等。
III、对于字符串,可以逐一遍历字符串的每个字符,基本 使用方式如下:
图13.png

for c in "python":
    print(c)

p
y
t
h
o
n
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

IV、使用range()函数,可以指定语句块的循环次数,基本 使用方式如下:
图14.png

>>>for i in range(5): 
        print(i)
0
1
2
3
4
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

V、遍历循环还有一种扩展模式,使用方法如下:
图15.png
当for循环正常执行之后,程序会继续执行else语句 中内容。else语句只在循环正常执行之后才执行并结 束,因此,可以在<语句块2>中放置判断循环执行情 况的语句。

for s in "python":
    print("循环执行中:" + s)
else:
    s = "循环执行结束"
print(s)

循环执行中:p
循环执行中:y
循环执行中:t
循环执行中:h
循环执行中:o
循环执行中:n
循环执行结束
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

3、 无限循环: while
I、Python通过保留字while实现无限循环
图16.png
II、当程序执行到while语句时,判断条件如果为True, 执行循环体语句,语句结束后返回再次判断while语 句的条件;当条件为False时,循环终止,执行与 while同级别缩进的后续语句。

>>>n = 0
>>>while n < 10: 
        print(n)
        n=n+3
0 
3 
6 
9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

III、无限循环也有一种使用保留字else的扩展模式,使用方 法如下:
图17.png
在这种扩展模式中,当while循环正常执行之后,程序会继续执行 else语句中内容。else语句只在循环正常执行后才执行,因此,可 以在语句块2中放置判断循环执行情况的语句

s, idx = "PY", 0
while idx < len(s):
    print("循环执行中: " + s[idx])
    idx += 1
else:
    s = "循环正常结束"
print(s)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

4、 循环控制: break和continue
I、循环结构有两个辅助循环控制的保留字:break和 continue。break用来跳出最内层for或while循环,脱 离该循环后程序从循环后代码继续执行。

while True:
    s = input("请输入一个人名(输入'Q'退出):")
    if s == 'Q':
        break
    print("输入的人名是:" + s)
print("程序退出")
>>>
请输入一个人名(输入'Q'退出):毛泽东
输入的人名是:毛泽东
请输入一个人名(输入'Q'退出):邓小平
输入的人名是:邓小平
请输入一个人名(输入'Q'退出):Q
程序退出
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

II、如果有2层或多层循环,break退出最内层循环。
III、continue用来结束当前当次循环,即跳出循环体中下面尚未执行的语句,但不跳出当前循环。

for s in "python":
    if s == 'Y' or s == 'y':
        continue
    print(s, end="")

>>>
pthon
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

IV、continue语句和break语句的区别是:continue语句只 结束本次循环,不终止整个循环的执行,而break具备 结束循环的能力。

五、程序的异常处理

1、 程序的异常处理
I、Python程序一般对输入有一定要求,但当实际输入不 满足程序要求时,可能会产生程序的运行错误。

s = eval(input("请输入数字:"))
>>>
请输入数字:python
Traceback (most recent call last):
  File "/工作/pyDemo/src/Test.py", line 62, in <module>
    s = eval(input("请输入数字:"))
  File "<string>", line 1, in <module>
NameError: name 'python' is not defined
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

由于使用了eval()函数,如果用户输入不是一 个数字则可能报错。这类由于输入与预期不匹 配造成的错误有很多种可能,不能逐一列出可 能性进行判断。为了保证程序运行的稳定性, 这类运行错误应该被程序捕获并合理控制。

II、Python语言使用保留字try和except进行异常处理,基 本的语法格式如下:
图18.png
语句块1是正常执行的程序内容,当执行这个语句块发 生异常时,则执行except保留字后面的语句块2。

try:
    s = eval(input("请输入数字:"))
    print("请输入数字的三次方值为:" + s ** 3)
except:
    print("输入错误,请输入数字!")
  • 1
  • 2
  • 3
  • 4
  • 5

除了输入之外,异常处理还可以处理程序执行中的运 行异常。

try:
    for i in range(5):
        print(10/i, end=" ")
except:
    print("某种原因,出错了!")
>>>
某种原因,出错了!
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

六、实例解析–猜数字游戏

编写一个“猜数字游戏”的程序,在1到1000 之间随机产生一个数,然后请用户循环猜测这 个数字,对于每个答案只回答“猜大了”或 “猜小了”,直到猜测准确为止,输出用户的 猜测次数。

import random

num = random.randint(1, 1000)
while True:
    try:
        s = eval(input("请猜一个数字:"))
        if s > num:
            print("猜大了")
        elif s < num:
            print("猜小了")
        else:
            print("恭喜你,猜对了!")
    except:
        print("输入错误,请输入数字:")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

交流

如果你有更好的解法或者有不同的意见,大家可以畅所欲言,共同提高进步!
群主也是小白一枚,零基础学习python,要勇于提问,大家共同探讨,共同学习进步!

1、加入qq群一起交流学习:818757567

图.png

2、关注微信公众号:python大星

图.png

夜来风雨声,花落知多少。



所属网站分类: 技术文章 > 博客

作者:8778787

链接:https://www.pythonheidong.com/blog/article/49248/a0b8175ba6a6c880b379/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

3 0
收藏该文
已收藏

评论内容:(最多支持255个字符)