![](https://img.haomeiwen.com/i21160414/51ecea950bf54146.jpg)
任何简单或复杂的算法都可以由顺序结构,选择结构和循环结构这三种基本结构组合而成。
一、顺序结构
程序从上到下,顺序地执行代码,中间没有任何的判断和跳转,直到程序结束。
![](https://img.haomeiwen.com/i21160414/fa8854f4d99c46aa.png)
二、选择结构
程序根据判断条件的布尔值选择性地执行部分代码,明确地让计算机知道在什么条件下应该做什么。
1. 单分支结构
(1)中文语义:如果...就...
(2)语法结构:
if 条件表达式:
条件执行体
(3)流程图示:
![](https://img.haomeiwen.com/i21160414/89f1b7d4c9110e19.png)
(4)示例:
假设ATM机取款情景
取款的前提是有存款,则第一步:输入原有的金额money
。
取款,需要输入取款金额:赋值给变量s
,在这里注意数据类型,需要转换。
进行条件判断:即money
与s
的比较。
条件:
-
如果
money
>=s
,即符合条件,布尔值为True,则执行条件体的内容,money=money-s
,此时,money
的值变为运算后的值,输出内容,程序结束。 -
如果
money<s
,则结果为False,程序结束。
(5)程序图示
![](https://img.haomeiwen.com/i21160414/70b66568fa771c40.png)
2. 双分支结构—二选一执行
(1)中文语义:如果...不满足...就...
(2)语法结构:
if 条件表达式:
条件执行体1
else:
条件执行体2
(3)流程图示:
![](https://img.haomeiwen.com/i21160414/0432195120edd16c.png)
(4)示例:
要求:从键盘录入一个整数,编写程序,让计算机判断是奇数还是偶数。
输入整数:input()
函数
条件判断:奇数偶数判断
-
奇数:与2取余为1
-
偶数:与2取余为0
(5)程序图示:
![](https://img.haomeiwen.com/i21160414/daa6aef568d448ed.png)
![](https://img.haomeiwen.com/i21160414/523fbb361bb4abdf.png)
3. 多分支结构—多选一执行
(1)中文语义:
是...吗?不是。
是...吗?不是。
是...吗?不是。
......
是...吗?是。
(2)语法结构:
if 条件表达式1:
条件执行体1
elif 条件表达式2:
条件执行体2
elif 条件表达式N:
条件执行体N
[else:](可省略)
条件执行体N+1
(3)流程图示:
![](https://img.haomeiwen.com/i21160414/4aae845fa3ae0720.png)
(4)示例:从键盘录入一个整数作为成绩,判断其等级范围。
首先,输入成绩,input()
函数
再次,条件判断:
要求:
分值 | 等级 | 分值 | 等级 |
---|---|---|---|
90-100 | A | 60-69 | D |
80-89 | B | 0-50 | E |
70-79 | C | <0,>100 | 非法数据 |
(5)程序图示:
![](https://img.haomeiwen.com/i21160414/85f6ed51f50b984f.png)
![](https://img.haomeiwen.com/i21160414/171a045ab483e97d.png)
此外,在python中有另一种写法,即数学中的表达:
![](https://img.haomeiwen.com/i21160414/c83a615e9ab1f463.png)
4. 嵌套if
(1)语法结构:
if 条件表达式1:
if 内层条件表达式:
内层条件执行体1
else:
内层条件执行体2
else:
条件执行体
(2)流程图示:
![](https://img.haomeiwen.com/i21160414/04939dbfcbad2dde.jpg)
(3)示例:
要求:
身份 | 金额 | 折扣 |
---|---|---|
会员 | >=200 | 八折 |
>=100 | 九折 | |
<100 | 不打折 | |
非会员 | >=200 | 九点五折 |
<200 | 不打折 |
(4)程序图示:
-
外层判断是否是会员:
-
内层条件1:
-
内层条件2:
5.条件表达式
条件表达式是if......else的简写
(1)语法结构:
y if 判断条件 else x
(2)运算规则:
如果判断条件的布尔值为True,条件表达式的返回值为y
;否则,条件表达式返回值为x
。
(3)程序图示:
要求:从键盘录入两个整数,比较两个数的大小。
双分支结构写法:
![](https://img.haomeiwen.com/i21160414/74ffbb5402143cbd.png)
条件表达式写法:
![](https://img.haomeiwen.com/i21160414/08004c3d0f7a8754.png)
在这里,我们可以看到输出的结果视觉效果不是很理想,这时需要我们改变连接方式:
条件表达式视觉优化:
![](https://img.haomeiwen.com/i21160414/738f65546ac78588.png)
6.pass语句
(1)中文语义:
-
语句什么都不做,只是一个占位符,用在语法上需要语句的地方。
-
先搭建语法结构,在还没想好代码怎么写的时候使用。
(2)使用范围:
1.if 语句的条件执行体
-
for-in语句的循环体
-
定义函数时的函数体
(3)程序图示:
![](https://img.haomeiwen.com/i21160414/aa9955116938e7ab.png)
补充:对象的布尔值
python一切皆对象,所有对象都有一个布尔值。
可使用布尔函数bool()
来获取
以下对象的布尔值均为False:
-
False
-
数值0
-
None
-
空字符串:
''
或''
-
空列表:
[]
-
空元组:
()
或tuple()
-
空字典:
{}
或dict()
-
空集合:
set()
![](https://img.haomeiwen.com/i21160414/f893da59938165c8.png)
示例:
当我们输入“18”时,“18”的布尔值为True,运行如下:
![](https://img.haomeiwen.com/i21160414/8dca2b744628cf18.png)
当我们输入“0”时,“0”的布尔值为False,运行如下:
![](https://img.haomeiwen.com/i21160414/032adc2fb345cc3e.png)
从上我们可以得出:
在写代码时,可以直接把对象放在条件表达式处做判断。
视频来源:哔哩哔哩马士兵Python教学
网友评论