Python-流程控制语句
<p>1、代码执行顺序</p>
<pre><code>Python 代码正常情况下执行的顺序是从左到右从上到下的,但是在流程控制当中不是这样的。</code></pre>
<p>2、判断语句</p>
<pre><code>2.1、if判断
说明
判断语句,只有满足if条件才会执行if下的语句块。
if:可以有N个。
elif:可以有N个。
else: 只能有1个,有时else可以不写(不写时,默认对不符合if和elif的不做处理)。
案例-1
i = 10
if i == 1:
print("T1")
elif i == 2:
print("T2")
elif i == 3:
print("T3")
else:
print("F")
输出:
F
案例-2
i = 10
if i == 1:
print("T1")
elif i == 2:
print("T2")
elif i == 10:
print("T10")
else:
print("F")
输出:
T10
2.2、if判断要注意的点
(1)判断条件的,判断条件范围大的要放下面。
案例-1
i = 10
if i < 100:
print("< 100")
elif i < 30:
print("< 30")
输出:
< 100
案例-2
i = 10
if i < 30:
print("< 30")
elif i < 100:
print("< 100")
输出:
< 30
(2)区分if elif 和 if if的区别
<1>if elif 是一个判断,一个条件执行之后就不会有第二个条件执行。
<2>if if 是两个不同的判断,互不影响。
案例-1
i = 10
if i < 30:
print("< 30")
elif i < 100:
print("< 100")
输出:
< 30
案例-2
i = 10
if i < 30:
print("< 30")
if i < 100:
print("< 100")
输出:
< 30
< 100
2.3、嵌套判断
说明
内层是在外层成立的前提下成立。
案例
num = 18
if num < 15:
if num > 8: /大于8的前提是要先满足小于15
print("8 < num < 15")
else:
if num > 17: /大于17的前提是要先满足大于等于15
print("num > 17")
输出:
num > 17</code></pre>
<p>3、程序结构</p>
<pre><code>3.1、顺序结构
编写完毕的语句按照编写顺序依次被执行,从上往下执行,从左往右。
3.2、选择结构
根据条件语句的结构选择执行不同的语句。
格式
if 条件1:
语句1
elif 条件2:
语句2
elif 条件3:
语句3
else:
语句4
案例
求1-100的之间所有偶数的和,奇数的和?
'''
num % 2 ==0 #偶数
num % 2 !=0 #奇数
oushuSum = 0 # 存放所有的偶数的和
jishuSum = 0 # 存放所有的奇数的和
从1-100之间去循环的取数,一个一个取出来,取出一个判断是偶数还是奇数,
如果是偶数,叠加到oushuSum,
如果是奇数,叠加到jishuSum。
'''
oushuSum = 0
jishuSum = 0
/从1-100之间去循环的取数,一个一个取出来。
for i in range(1,101):
/判断,并累加
if i%2 == 0: /说明i是偶数
oushuSum = oushuSum + i
else: /说明i是奇数
jishuSum = jishuSum + i
print('偶数和为:%d\n奇数和为:%d' %(oushuSum,jishuSum))
输出:
偶数和为:2550
奇数和为:2500
3.3、循环结构
在一定条件下反复执行某段程序的流程结构。</code></pre>
<p>4、选择语句</p>
<pre><code>4.1、最简单的if语句
语法形式
if 表达式:
语句块
说明
(1)表达式"可以是布尔值、变量、比较表达式、逻辑表达式(例如:a>b and a!=c)。
(2)如果表达式的值为真,则执行"语句块",为假就跳过"语句块"继续执行后面的语句。
(2)相当于汉语里的"如果...就..."。
4.2、if...else语句
语法形式
if 表达式:
语句块1
else:
语句块2
说明
(1)"表达式"可以是布尔值、变量、比较表达式、逻辑表达式(例如:a>b and a!=c)。
(2)如果满足条件,则执行if后面的"语句块",否则执行else后面的语句块。
(3)相当于汉语里的"如果...否则..."。
4.3、if...elif...else语句
语法形式
if 表达式1:
语句块1
elif 表达式2:
语句块2
elif 表达式3:
语句块3
...
else:
语句块n
说明
(1)"表达式"可以是布尔值、变量、比较表达式、逻辑表达式(例如:a>b and a!=c)。
(2)如果表达式的值为真,则执行"语句块",为假就跳过"语句块",进行下一个elif的判断,只有在所有表达式都为假的时候才会执行else中的语句。
(3)if和elif都需要判断表达式的真假,而else则不需要判断;另外,elif和else都必须和if一起使用,不能单独使用。
4.4、if语句的嵌套
语法形式1
在最简单的if语句中嵌套if...else语句
if 表达式1:
if 表达式2:
语句块1
else:
语句块2
语法形式2
在if...else语句中嵌套if...else语句
if 表达式1:
if 表达式2:
语句块1
else:
语句块2
else:
if 表达式3:
语句块3
else:
语句块4
注:if选择语句可以有多种嵌套方式,在开发程序时,可以根据需要选择合适的嵌套方式,但是一定要严格控制好不同级别代码块的缩进量。</code></pre>
<p>5、条件表达式</p>
<pre><code>说明
在程序开发时,经常会根据表达式的结果,有条件的进行赋值。例如要返回2个数中的较大的数,可以使用下面的if语句。
案例
a = 10
b = 6
if a>b:
r = a
else:
r = b
说明
在使用条件表达式时,先计算中间的条件(a>b),如果结果为True,返回if语句左边的值,否则返回else右边的值。
python中提供的条件表达式,可以根据表达式的结果进行有条件的赋值。
案例
以上代码可简化为:
a = 10
b = 6
r = a if a > b else b</code></pre>
<p>6、循环语句</p>
<pre><code>6.1、说明
(1)重复一定次数的循环,称为计次循环,如for循环。
(2)一直重复,直到条件不满足时才结束的循环,称为条件循环。只要条件为真这种循环会一直持续下去,如while循环。
(3)在其他语言中(C、C++、Java等),条件循环还包括do...while。但是在python中没有do...while循环。
6.2、while循环
语法形式
while条件表达式:
循环体
说明
(1)条件循环,通过一个条件来控制是否要继续反复执行循环体中的语句。
(2)循环体是指一组被重复执行的语句。
(3)变量i的值不会自动增加,需要增加一条i=i+1/需要赋予i一个存储值0。
案例
i = 0
while i < 10:
print(i,end = " ")
i = i + 1
print(i,end = " ")
输出:0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10</code></pre>
<p>6.3、for循环</p>
<pre><code>6.1、说明
(1)计次循环,一般应用在循环次数已知的情况下。通常适用于枚举或遍历序列以及迭代对象中的元素。
(2)迭代变量用于保存读取的值。
(3)对象为要遍历或迭代的对象,该对象可以是任何有序的序列对象,如字符串、列表、元组等;循环体为一组被重复执行的语句。
(4)for循环语句可以循环数值、遍历字符串\列表、元组\集合\字典等。
(5)实质上是将后面可迭代对象的元素依次赋值给前面的变量,每赋值一次,执行一次语句块,也就是一次循环。
6.2、语法形式
for 迭代变量in对象:
循环体
6.3、for循环与其他语言的区别
其他语言:
for(var int = 1,i < 3,i++)
{
block
}
for循环:
Python当中采用的是 for in 结构,迭代器原理。
6.4、特殊的for循环
m,n = (1,2) m,n = (3,4) m,n = (5,6)
for m,n in [(1,2),(3,4),(5,6)]:
print("m:%s"%m)
输出:
m: 1
m: 3
m: 5
m,n = (1,2) m,n = (3,4) m,n = (5,6)
for m,n in [(1,2),(3,4),(5,6)]:
print("m:%s"%m,"n:%s"%n)
输出:
m: 1 n: 2
m: 3 n: 4
m: 5 n: 6
6.5、enumerate枚举
说明
指出序列的索引
string = "abcd"
str = enumerate(string)
print(string)
print(str)
输出:
abcd
<enumerate object at 0x0000016A425FB240>
6.6、循环数值
案例
print("计算1+2+...+100的结果为:")
result = 0 /保存累加结果的变量
for i in range(101):
result = result + 1 /累加
print(result)
说明
见[内置函数]-range()
6.7、遍历字符串
案例
string = "YES我可以!"
print(string)
for i in string:
print(i)
结果:
YES我可以!
Y
E
S
我
可
以
!</code></pre>
<p>6.4、嵌套循环</p>
<pre><code>说明
(1)循环嵌套指的是一个循环嵌入另一个循环中。
(2)在Python中,for和while循环都可以进行循环嵌套。
(3)除了以下4种嵌套外,还可以实现更多层的嵌套,方法与下面类似。
语法形式-1——while循环中嵌套while循环
while条件表达式1:
while条件表达式2:
循环体2
循环体1
语法形式-2——while循环中嵌套for循环
while条件表达式1:
for 迭代变量 in 对象:
循环体2
循环体1
语法形式-3——for循环中嵌套for循环
在循环的内部嵌套其他循环,外部循环一次,内部循环一遍。
for 迭代变量 in 对象1:
for 迭代变量 in 对象2:
循环体2
循环体1
案例-1
在外层循环打印i,在内层循环打印j;外层循环打印1次,内层循环打印1遍。
for i in range(2):
print(i,end = " ")
for j in "ab":
print(j,end = " ")
输出:0 a b 1 a b
案例-2
只打印内层循环,内层循环全部打印1遍。
for i in [range(2),range(3),range(4)]:
for j in i:
print(j,end='')
输出:010120123
案例-3
for循环中嵌套while循环
for 迭代变量 in 对象1:
while条件表达式2:
循环体2
循环体1</code></pre>
<p>6.5、While循环和for循环的区别</p>
<pre><code>(1)while循环特点:
<1>for循环是一个广度遍历,而 while 循环是一个深度遍历。
<2>while循环,指当满足while的条件的时候,就一直循环执行while的语句块,直到不满足。
<3> 假设:条件一直满足,那么就形成了死循环;在Python当中默认的死循环的条件是True。
(2)死循环应用:
<1>死循环会阻塞程序运行。
<2>死循环多数用于图形化、ATM取款机、游戏等可视化的主循环。
退出死循环:ctrl+c
案例-1-死循环
while True:
print("OK",end = " ")
输出:OK OK OK OK OK...
案例-2
#打印5行10列效果
for x in range(5):
for y in range(10):
print(x,y),
print()
注:
","是用来让print忽略换行打印的。
打印一个空,目的是让它换行。</code></pre>
<p>7、跳转语句</p>
<pre><code>7.1、break语句
说明
(1)跳出上一层循环 ,终止整个循环,包括while和for在内的所有控制语句。
(2)一般会结合if语句进行搭配使用,表示在某种条件下,跳出循环。
(3)如果使用嵌套循环,break语句将跳出最内层的循环。
(4)生活案例:原计划围着操场跑10圈,第2圈中途停下,不跑了。
语法形式-1-在while中使用break语句
while条件表达式1:
执行代码
if条件表达式2:
break
语法形式-2-在for中使用break语句
for迭代变量in对象:
if条件表达式:
break
案例
for i in range(1,10):
if i%2 == 0:
break
else:
print(i,end = " ")
输出:1
7.2、continue语句
语法形式-1-在while中使用break语句
while条件表达式1:
执行代码
if条件表达式2:
continue
语法形式-2-在for中使用break语句
for迭代变量in对象:
if条件表达式:
continue
说明
(1)跳出本次循环,结束本次循环,对此本次循环后面的代码不运行了,然后提前进入下一轮的循环,执行下一轮的代码。
(2)生活案例:原计划围着操场跑10圈,第2圈中途停下,不跑了,回到起点从第3圈继续开始跑。
(3)如果使用嵌套循环,continue语句将跳出最内层循环的剩余部分。
案例
for i in range(1,10):
if i%2 == 0:
continue
else:
print(i,end = " ")
输出:1 3 5 7 9</code></pre>
<p>8、pass空语句</p>
<pre><code>说明
1、pass 写在任何缩进的语句块部分,只是占位,什么事情都不做,为了满足 python 的语法要求。
案例
for i in range(1,10):
if i%2 == 0:
print(i,end = " ")
else:
pass
输出:2 4 6 8</code></pre>