python入门(七)流程控制


今天好懒,好想鸽掉,但还是打起精神来写了!

判断结构

if语句

用法:

if 条件:
	语句

一个重要的知识,python的代码段不依靠大括号来判断,而是依靠缩进。也就是对齐,这可能就是python强调的美观。像if语句,后面要执行的代码块都要首行缩进,也就是空四个空格。条件为真,执行语句。条件为假,跳过语句。
代码

x = True
if x:
    print('True')

执行结果

True

代码

x = False
if x:
    print('False')

执行结果

 

这里不会有输出。
此外值为0或者为空的数据类型也会被认为是False,比如数字0,空字符串,空列表,空元组,空字典,None等等
代码

x = None
if x:
    print('None')

输出


这里也是不会有输出的,因为条件是False。

elif语句

有时if…else…并不能满需求,因为有时我们有时可能需要多个测试条件。elif不能单独出现,必须跟在if后面。
代码

grade = 80
if grade>90:
    print('great')
elif grade>=60:
    print('ok')
elif grade>0:
    print('bad')

结果

ok

这里garde = 80,满足grade >= 60和grade > 0,但最后只输出了ok。因为在所有if、elif、else的语句中,只执行一个条件后面的语句,就是成立的第一个条件后面的语句。

else语句

else语句,一定要在最后,在 if 和 elif 的后面,当所有 if 和 elif 的条件都不满足,就执行else。
代码

x = 10
if x>10:
    print( 'x>10' )
elif x<0:
    print( 'x<0' )
else :
    print( '0<=x<=10' )

结果

0<=x<=10

x的值不符合 if 和 elif,所以执行了else的语句。

循环结构

while循环

格式:
while 表达式:
语句
语句前面的四个空格不能省略。只有表达式的值为True的时候,才执行while后面的循环体。
代码

x = 1
while x <= 10:
    print(x)
    x += 1

结果

1
2
3
4
5
6
7
8
9
10

for循环

格式:
for 变量 in 序列 :
语句
这里变量的值会不断更新,在序列里不断迭代,也就是从头到尾遍历一遍序列。所以in后面的必须是可迭代的对象,可迭代不懂后面会有解释,不必深究。
代码

for x in (1,2,3): #这是元组
    print(x)

结果

1
2
3

range在for循环里也很常用,range知识具体参考前面数据类型的内容。
代码

for x in range(1,10,2) : #从1到10,步长为2的整数
    print(x)

结果

1
3
5
7
9

break和continue语句

有时,我们需要在某个特定条件下跳出或跳过循环体,就要用到break和continue。
break会直接结束循环。
代码

for i in range(10):
    if( i == 5):
        break
    print(i)

结果

0
1
2
3
4

当i == 5时,break语句直接跳出循环,所以只输出到4。
continue会跳出当前循环执行之后的循环
代码

for i in range(10):
    if( i == 5):
        continue
    print(i)

结果

0
1
2
3
4
6
7
8
9

输出没有5,是因为在i == 5时,continue使得这轮循环结束,跳过了print语句。

循环语句与else组合

在python中,除了if以外,while和for也可和else组合。当while或for后面表达式的值为False的时候,循环结束并执行else。
代码

 i = 0
 while i <= 3:
     print(i)
     i += 1
 else :
     print( 'i == ', i ,'i is greater than 3' )

结果

0
1
2
3
i ==  4 i is greater than 3

从结果可以看出,当 i == 4时,不满足条件,跳出循环执行else。
但如果是由于break或return而中途不正常地退出循环,则不会执行else语句。
代码

 i = 0
 while i <= 10:
     print(i)
     if i == 3:
     break
     i += 1
 else :
     print( 'i is greater than 10' )

结果

0
1
2
3

当 i == 3的时候,break跳出循环,并且没有执行else语句。return也是如此。
代码

 for i in range(10):
     print(i)
     if i == 3:
     return 
 else :
     print( 'i is greater than 10' )

结果

0
1
2
3

当 i == 3的时候,return跳出循环,并且没有执行else语句。

杂项知识

三元表达式

grade = 60
x = 'pass' if grade >= 60 else 'not pass'  # x = pass
grade = 50
x = 'pass' if grade >= 60 else 'not pass'  # x = not pass

pass语句

pass语句是空语句,不做任何操作,只用来占位。为什么需要pass呢?前面的if 、 while 、for 、else的末尾都有’:’,那么他们的后一行必须缩进,只是缩进会报错,就要用pass占位。
正确程序

for  i in range(5):
    if i == 3:
        pass #我们想要在i == 3的时候什么都不做
    print(i)

输出

0
1
3
2
4

错误程序,会报错

for i in range(5):
    if i == 3:
         #这里缩进了,但没有语句
    print(i)

有点浮躁,快速水完了这篇博客。这里学过其他语言应该也不难。
欢迎批评指正!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值