一、条件判断语句
- if语句
语法: if 条件表达式 :
代码块
执行的流程: if语句在执行时,会先对条件表达式进行求值判断,
如果为True,则执行if后的语句
如果为False,则不执行
默认情况下,if语句只会控制紧随其后的那条语句,如果希望if可以控制多条语句,则可以在if后跟着一个代码块
代码块
代码块中保存着一组代码,同一个代码块中的代码,要么都执行,要么都不执行.
代码块就是一种为代码分组的机制
如果要编写代码块,语句就不能紧随在:后边,而是要写在下一行
代码块以缩进开始,直到代码恢复到之前的缩进级别时结束
缩进有两种方式,一种是使用tab键,一种是使用空格(四个)
Python的官方文档中推荐我们使用空格来缩进
Python代码中使用的缩进方式必须统一
"translate_tabs_to_spaces": true,
可以使用逻辑运算符来连接多个条件,
如果希望所有条件同时满足,则需要使用and
如果希望只要有一个条件满足即可,则需要使用or
if num > 10 and num < 20 :
print('num比10大,num比20小!')
if 10 < num < 20 :
print('num比10大,num比20小!')
- if-else语句
语法:
代码块
else :
代码块
执行流程:
if-else语句在执行时,先对if后的条件表达式进行求值判断
如果为True,则执行if后的代码块
如果为False,则执行else后的代码块
- if-else-else 语句
语法:
if 条件表达式 :
代码块
elif 条件表达式 :
代码块
else :
代码块
执行流程:
if-elif-else语句在执行时,会自上向下依次对条件表达式进行求值判断,
如果表达式的结果为True,则执行当前代码块,然后语句结束
如果表达式的结果为False,则继续向下判断,直到找到True为止
如果所有的表达式都是False,则执行else后的代码块
if-elif-else中只会有一个代码块会执行
二、循环语句
- while循环:
语法:
代码块
else :
代码块
执行流程:
while语句在执行时,会先对while后的条件表达式进行求值判断,
如果判断结果为True,则执行循环体(代码块),循环体执行完毕,继续 对条件表达式进行求值判断,以此类推,直到判断结果为False,则循环终止,如果循环有对应的else,则执行else后的代码块
适用情况:
主要使用在不知道程序需要执行多少次的情况,这种情况下要么让程序一致执行或者在特定的条件下终止。
注意:如果让程序永久运行,那么增加一个延迟时间是非常必要的。time.sleep()的参数是一个数字,单位为秒。不增加延时,导致循环高速运行。在爬虫开发中,很可能导致爬虫被网站封锁。
- for循环
语法:
for x in y :
循环体
for循环可以直接在字符串中获取每一个字符;
#实例
name_list = ('张三','李四','王五')
for name in name_list:
print(name)
for循环也可以把一个字典展开,得到里面的每一个key
# for 循环读取字典
menu_dict = {'凉皮':'8元','肉夹馍':'10元','冰峰':'3元'}
for key in menu_dict :
print('菜品:{}'.format(key))
print('价格:{}'.format(menu_dict[key]) )
print('='*20)
通过range里面的数字,可以控制循环的执行次数。需要注意的是 i从0 开始。
三、break和continue
- 在循环运行中,可能会有些不需要执行的情况,此时我们可以使用continue 关键字来跳过本次循环,
continue可以用来跳过当次循环 - 当需要结束真个循环时,我们使用break 关键字终止整个循环。
break可以用来立即退出循环语句(包括else)
注意:break和continue都是只对离他最近的循环起作用
- pass:pass是用来在判断或循环语句中占位的
特别注意:
1.while和for循环在使用 break和 continue上是完全一致的
2.在循环嵌套中,continue 和 break 都只对自己所在地这一层的循环有效,不影响外面的循环。