今天好懒,好想鸽掉,但还是打起精神来写了!
判断结构
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) :
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'
grade = 50
x = 'pass' if grade >= 60 else 'not pass'
pass语句
pass语句是空语句,不做任何操作,只用来占位。为什么需要pass呢?前面的if 、 while 、for 、else的末尾都有’:’,那么他们的后一行必须缩进,只是缩进会报错,就要用pass占位。 正确程序
for i in range(5):
if i == 3:
pass
print(i)
输出
0
1
3
2
4
错误程序,会报错
for i in range(5):
if i == 3:
print(i)
有点浮躁,快速水完了这篇博客。这里学过其他语言应该也不难。 欢迎批评指正!
|