05-Python流程控制语句
程序三大执行流程
从本节起,代码开始有逻辑性了,而不只是死板的数据操作
- 程序的执行流程:
- 顺序执行: 程序运行时,代码从上往下依次执行.中间如果有报错,后面的内容不执行
- 选择执行: 根据条件满足与否,执行对应的代码
- 循环执行: 根据条件满足与否,重复执行对应的代码
- 布尔型(bool): 逻辑判断 –> 要么真/假
- 选择执行和循环执行的判断标准就是通过布尔值来判断
缩进的艺术,代码块的控制
在python中.是通过缩进来表示一个代码块的权限
- python中.缩进是用
tab
进行表示1
2
3
4
5
6age = 10
# 如果age >= 18就执行里面的代码.否则无事发生
if age >= 18:
print('满足条件执行')
print('加了缩进,所以受到if制约')
print('无需满足条件也会执行')
选择执行(条件判断语句)if
if
语句的作用为条件判断,根据判断结果执行对应的代码
if
: 如果else
: 否则elif
: 或者 else if的简写
1. 单分支语句:
单分支: 满足条件就执行if里的代码.不满足就无事发生
语法格式:
if
<判断条件>
:
$\ \ $<执行语句>
案例:
1
2
3age = int(input('请输入你的年龄'))
if age >= 18:
print('恭喜!成年了')
2. 双分支语句:
双分支: 满足条件就执行
if
里的代码,不满足就执行else
里的代码语法格式:
if
<判断条件>
:
$\ \ $<执行语句>
else
:
$\ \ $<执行语句>
案例:
1
2
3
4
5score = int(input('输入成绩'))
if score >= 60:
print('合格')
else:
print('挂科')
3.多分支语句:
多分支:满足条件就执行
if
或elif
里的代码.都不满足就执行else
里的代码语法格式:
if
<判断条件>
:
$\ \ $<执行语句>
elif
:
$\ \ $<执行语句>
else
:
$\ \ $<执行语句>
案例:
1
2
3
4
5
6
7
8
9score = 100
if score == 100:
print('A')
elif score >= 80:
print('B')
elif score >= 60:
print('C')
else:
print('D')思考:
1
2
3
4
5
6
7
8
9score = 100
if score >= 60:
print('C')
elif score >= 80:
print('B')
elif score == 100:
print('A')
else:
print('D')输出有何区别?是否一致
if
和else
一组只能有一个.elif
可以有多个
逻辑运算符 not
and
or
not
: 否运算.对条件结果取否.and
: 与运算. 当有多个条件时,都满足才为真.or
: 或运算.当有多个条件时,满足其中一个就为真.- 短路运算符:
- 在进行逻辑运算时,如果遇到了短路条件,Python 解释器会立即停止求值,并返回相应的结果,而不再继续计算后面的表达式。
and
运算符:当使用and
运算符连接多个条件时,如果其中有一个条件为假(False
),则整个表达式的结果为假,Python 解释器会立即停止求值,并返回第一个为假的条件的值。如果所有条件都为真(True
),则返回最后一个条件的值。or
运算符:当使用or
运算符连接多个条件时,如果其中有一个条件为真(True
),则整个表达式的结果为真,Python 解释器会立即停止求值,并返回第一个为真的条件的值。如果所有条件都为假(False
),则返回最后一个条件的值。
循环执行while
循环就是把一件事重复n遍
在编程中,循环语句的作用是为了让开发过程中:
1. 减少代码量
2. 提高运行效率
如果我要输出100遍
'科学麻将死路一条'
:- 打100次
print
'科学麻将死路一条'*100
- 用循环
- 打100次
- 死循环: 一直循环.不会停止
while
循环语句: 判断循环条件是否为真,为真就执行代码.为假就结束循环- 语法格式:
while
<循环条件>
:
$\ \ $<执行语句>
$\ \ $<更新语句>
- 案例:
1
2
3
4
5num = 1
# 当num小于等于100时,一直执行. 不小于等于了,停止
while num <= 100:
print(num)
num += 1 # 等价与num = num + 1 的简便写法 - 最简单的死循环:
while
1
:
$\ \ $<循环语句>
break
与continue
break
: 终止,结束本轮循环continue
: 跳过.跳过本次循环
1 |
|
补充思考
break
按例子看似没有用,因为如果在第十次循环break
,那完全可以直接循环只写十次.
但实际操作中满足的条件可以是动态的,配合循环的条件更新语句,就有实际意义了.
占位符pass
写代码过程中,内容没想好,写框架:
1
2
3
4
5if 判断条件:
空着不写
while 判断条件:
空着不写这样会报错
已知一个地方要写一个
if
/while
.但是还没有想好里面要放具体什么东西.就可以先写个pass
.表示跳过. 程序遇到pass
就会跳过1
2
3
4
5if 判断条件:
pass
while 判断条件:
pass
迭代循环for
可以理解为是while的升级版.作用都是循环.但是在特定条件更方便
1.在遍历数据时
2.在循环次数已知时
- 遍历/迭代:有一堆数据,把里面的数据一个个的取出来
for循环的语法:
1.遍历数据
1.变量名: 这里的遍历是作为一个临时容器使用.一般用i
2.可迭代对象: 可以理解为有多个数据的值(字符串,列表,元组),后续会再进行补充讲究
for
<变量名>
in
<可迭代对象>
:
$\ \ $<执行语句>
- 把字符串里的数据取出来.一个个的赋值给i.
1
2
3
4name = '114514'
for i in name:
print(i,end='.')
# 输出: 1.1.4.5.1.4.
2.循环指定的次数
range的值默认从0开始.终点值到它的前一位
1.for
<变量>
in
<range(数值)>
: # 要循环多少次,数值就填几
1
2
3for i in range(114):
print(i)
# 输出0-113
2.for
<变量>
in
<range(起点,终点)>
:
1
2
3 for i in range(114,514):
print(i)
# 输出114-513
3.for
<变量>
in
<range(起点,终点,步长)>
:
1
2
3for i in range(1,101,2):
print(i)
# 输出 1,3,5...
练习
用if和while写一个登录系统.密码输入超过3次就结束程序.
思路: 声明一个变量num
来保存密码输入次数.如果密码正确就登录成功, 如果错误就提醒. 超过了三次.就退出循环用if写一个猜拳游戏.对方默认出石头
打印一个10*10空心矩形
附加:
打印n阶的螺旋矩阵
例如:
[1,2,3,
8,9,4,
7,6,5,]