python笔记III--流程控制语句
一、条件判断语句(if语句)
1、if语句
(1)语法:
if 条件表达式 :
代码块
(2)执行的流程:
①if语句在执行时,会先对条件表达式进行求值判断,
②如果为True,则执行if后的语句
③如果为False,则不执行
注意:默认情况下,if语句只会控制紧随其后的那条语句,如果希望if可以控制多条语句,
则可以在if后跟着一个代码块。
(3)代码块:代码块中保存着一组代码,同一个代码块中的代码,要么都执行要么都不执行
> 代码块就是一种为代码分组的机制
> 如果要编写代码块,语句就不能紧随在 : 后边,而是要写在下一行
> 代码块以缩进开始,直到代码恢复到之前的缩进级别时结束。
(4)缩进有两种方式:一种是使用tab键,一种是使用空格(四个)
①Python的官方文档中推荐我们使用空格来缩进
②Python代码中使用的缩进方式必须统一
> 在subline中preference->settings中输入 "translate_tabs_to_spaces": true, 可以将Tab键变为四个缩进。
注意:可以使用逻辑运算符来连接多个条件,
①如果希望所有条件同时满足,则需要使用and
②如果希望只要有一个条件满足即可,则需要使用or
if num > 10 and num < 20 :
print('num比10大,num比20小!')
if 10 < num < 20 :
print('num比10大,num比20小!')
2、input()函数:该函数用来获取用户的输入
input()调用后,程序会立即暂停,等待用户输入。
①用户输入完内容以后,点击回车程序才会继续向下执行
②用户输入完成以后,其所输入的的内容会以返回值得形式返回
注意:input()的返回值是一个字符串。input()函数中可以设置一个字符串作为参数,这个字符串将会作为提示文字显示。
3、if-else语句
(1)语法:
if 条件表达式 :
代码块
else :
代码块
(2)执行流程:
if-else语句在执行时,先对if后的条件表达式进行求值判断
①如果为True,则执行if后的代码块
②如果为False,则执行else后的代码块
4、if-elif-else语句
(1)语法:
if 条件表达式 :
代码块
elif 条件表达式 :
代码块
elif 条件表达式 :
代码块
elif 条件表达式 :
代码块
else :
代码块
(2)执行流程:
I. if-elif-else语句在执行时,会自上向下依次对条件表达式进行求值判断,
①如果表达式的结果为True,则执行当前代码块,然后语句结束
②如果表达式的结果为False,则继续向下判断,直到找到True为止
③如果所有的表达式都是False,则执行else后的代码块
II. if-elif-else中只会有一个代码块会执行
练习:
# 练习5:
# 大家都知道,男大当婚,女大当嫁。那么女方家长要嫁女儿,当然要提出一定的条件:
# 高:180cm以上; 富:1000万以上; 帅:500以上;
# 如果这三个条件同时满足,则:'我一定要嫁给他'
# 如果三个条件有为真的情况,则:'嫁吧,比上不足,比下有余。'
# 如果三个条件都不满足,则:'不嫁!'
# 获取用户的三个数据,身高、财富、颜值
height = float(input('请输入你的身高(厘米):'))
money = float(input('请输入你的财富(万):'))
face = float(input('请输入你的颜值(平方厘米):'))
# 判断到底嫁不嫁
# 如果这三个条件同时满足,则:'我一定要嫁给他'
if height > 180 and money > 1000 and face > 500 :
print('我一定要嫁给他!')
# 如果三个条件有为真的情况,则:'嫁吧,比上不足,比下有余。'
elif height > 180 or money > 1000 or face > 500 :
print('嫁吧,比上不足,比下有余。')
# 如果三个条件都不满足,则:'不嫁!'
else :
print('不嫁!')
二、循环语句:循环语句可以使指定的代码块重复指定的次数
1、while循环
(1)语法:
while 条件表达式 :
代码块
else :
代码块
(2)执行流程:
I. while语句在执行时,会先对while后的条件表达式进行求值判断,
①如果判断结果为True,则执行循环体(代码块),
②循环体执行完毕,继续对条件表达式进行求值判断,以此类推,
II.直到判断结果为False,则循环终止,如果循环有对应的else,则执行else后的代码块
(3)条件表达式:用来设置循环执行的条件。
注意:条件表达式恒为True的循环语句,称为死循环,它会一直运行,慎用!
# while True :
# print('hello')
例:创建一个执行十次的循环
# 创建一个执行十次的循环
i = 0
while i < 10 :
i += 1
print(i,'hello')
else :
print('else中的代码块')
(4)循环嵌套:外层循环每执行一次,内存循环就要执行一圈
例:
# *****
# ****
# ***
# **
# *
i = 0
while i < 5:
j = 0
while j < i + 1:
print("* ",end='')
j += 1
print()
i += 1
(5)break 和 continue
① break可以用来立即退出循环语句(包括else)
② continue可以用来跳过当次循环
③ break 和 continue 都是只对离他最近的循环起作用
例:
# 创建一个5次的循环
i = 0
while i < 5:
if i == 3:
break
print(i)
i += 1
else :
print('循环结束')
如上,代码输出结果为0 1 2 循环结束,因为当i等于3时执行break语句立即退出循环语句,循环结束。
i = 0
while i < 5:
i += 1
if i == 2:
continue
print(i)
else :
print('循环结束')
如上,代码输出结果为 1 3 4 5 循环结束,当i等于2时执行continue语句跳过当次循环,所以输出结果没有2,循环结束。
2、for循环
(1)可以一次遍历打印字符串中的每个元素
(2)不管是单层列表还是多层的嵌套列表,都可以遍历打印出来
语法:
for 变量 in 序列 :
代码块
注意:
for循环的代码块会执行多次,序列中有几个元素就会执行几次。每执行一次就会将序列中的一个元素赋值给变量,所以我们可以通过变量,来获取列表中的元素。
(3)使用keys()、values()、items(),可以分别遍历字典的键、值和键值对。需要注意的是:遍历字典默认是遍历字典的键
for i in d.keys(): # 遍历字典的键
print(i)
(4)通过range()可以创建一个执行指定次数的for循环
for i in range(30):
print(i)
(5)for语句中还可以再使用for语句
(6)for()循环除了创建方式以外,其余的都和while一样, 包括else、包括break continue都可以在for循环中使用,并且for循环使用也更加简单。