python循环结构之for循环

内容回顾

逻辑运算符回顾

  连接多个条件运算符,and、or、not
  问题:连接多个条件的运算返回的是布尔值还是数据值??

如果所有的条件都是数据值,那么返回的就是数据值

 ```python
 print(0 and 2 and 5)  # 5
 print(0 or 1 or 3 or 5) # 1
 ```

如果所有的条件都是表达式,那么返回的是布尔值

 ```python
 print(1 < 0 and True and 3 > 1)  # False
 print(1 < 0 or True or 3 > 1)  # True
 ```

如果条件既有表达式又有数据值,那么返回的结果就要看连接的逻辑运算符是and还是or

在遇到逻辑运算符都是and的情况时,从前到后要依次看条件是否都成立,最后一个条件是数据值就返回数据值,如果是表达式,就返回布尔值。

 ```python
 print(1 and 1 < 2)  # True
 print(1 and 3 and True and 56)  # 56
 ```

在遇到逻辑运算符都是or的情况时,从前向后依次看,遇到的第一个条件结果成立的时候,就返回,如果是数据值就返回数据值,如果是表达式就返回布尔值

 ```python
 print(1 or 1 < 3 or True)  # 1
 print(3 > 1 or 1 < 2)  # True
 ```

遇到多种运算符混合使用的时候,需要考虑优先级,()>not>and>or,遇到具体的数据值就返回数据值,遇到表达式,就返回布尔值

 ```python
 print(1 and 3 > 2 or 5 or False and 3 == 3)  # True
 print(1 < 0 and 3 or 5 or False and 3 == 3)  # 5
 ```

not的结果返回的只能是布尔值

循环结构之while基本语法
`while` 条件 条件成立后执行的子代码
while+break

`while` 条件:
	条件成立后执行的子代码
	break
break的用法是可以终止循环,如果是多个条件循环嵌套的情况时,break只是终止的他所在的那层循环不会影响其他的循环

while+continue

`while` 条件:
	条件成立后执行的子代码
	continue`
  continue的用法是跳过这次循环,继续执行下次循环

while+else

`while` 条件:
	条件成立后执行的子代码
`else`:
	提前定义好的代码
else的用法是正常在循环体结束后执行的,不是异常执行,else与while同级

while的循环嵌套

`while` 条件:
	条件成立执行的子代码
	`whlie` 条件
		条件成立后的子代码

循环嵌套需要注意代码的层级关系,代码的缩进,大循环套小循环,只需要循行同级的关系按照顺序结构一次向下执行,如果遇到while、if在做另行判断

死循环和全局标志位

  死循环:循环体代码不能是连续的计算机任务,尽量不要去使用。

  全局标志位:为了节省break,在开始定义一个True,结尾再重新定义为False

今日学习任务

循环结构之for循环

  for循环能够做的事情while循环都可以做到,它可以遍历到任何序列的项目,例如列表、字典、字符串、元组、集合

通过列表索引迭代,一种执行循环的方式是通过索引,适用于列表、元组和集合

fruits = ['banana', 'apple',  'mango']
for i in fruits:
	print('当前水果 : %s' % i)
"""
  当前水果 : banana
  当前水果 : apple
  当前水果 : mango
"""

语法结构

`for` 变量名 `in` 可迭代对象:

for循环的循环体代码

image-20220623163307989

for循环的过程,它会拿到给的数据,从前到后依次取出这个数据的每一个数据值然后赋值给前面的变量i,首先拿出第一个数据值绑定给i进行循环体里执行,执行结束后他会再次回到for循环里然后再次拿出第二个数据值进行赋值给i,然后继续执行循环体代码,其中i是一个动态绑定的,直到数据里的数据值全部取完后,它会自动结束

变量名的命名:如果待取名的数据有明确的方向,那么就要做到见名之意

常见的命名名字有:i、j、k、item

字典的取值,在for循环中,默认我们只能取到K值

dict = {'name': 'zhangran', 'age': 23, 'gender': 'women'}
for i in dict:
	print(i)
"""
name
age
gender
"""

字符串的取值,for循环中,字符串的取值为单个字符

str = 'asdfgh'
for i in str:
	print(i)
"""
    a
    s
    d
    f
    g
    h
"""

扩展知识

for的重要方法----range:它是一个能够帮我们产生一个包含许多数据值的列表,他总共有三种用法

 `for` 变量名 in range(数字):
 	循环体代码
当range后面只跟了一个数字,从0开始到范围值-1结束例如:范围值为4的时候,结果是0,1,2,3,4
 `for` 变量名 in range(数字1,数字2):
 	循环体代码
当range后面跟了俩个数字,第一个是起止位置,第二个为终止位置,这时候产生的数据值的特点是”顾头不顾尾“,即左包含右不包含。例如:(1,6),结果是1,2,3,4,5
 `for` 变量名 in range(数字1,数字2,间隔数):
 循环体代码
当range后面跟了三个数字,最后一个数字为数据之间的间隔数(也可理解为等差数列)例如:(1,10,2),结果是1,3,5,7,9

range方法实际操作---网络爬出

 网络爬虫:python代码模拟网络请求获取数据

 ```python
 base_url = 'https://movie.douban.com/top250?start=%s&filter='
 for i in range(0, 250, 25):
     print(base_url % i)
 """
 https://movie.douban.com/top250?start=0&filter=
 https://movie.douban.com/top250?start=25&filter=
 https://movie.douban.com/top250?start=50&filter=
 https://movie.douban.com/top250?start=75&filter=
 https://movie.douban.com/top250?start=100&filter=
 https://movie.douban.com/top250?start=125&filter=
 https://movie.douban.com/top250?start=150&filter=
 https://movie.douban.com/top250?start=175&filter=
 https://movie.douban.com/top250?start=200&filter=
 https://movie.douban.com/top250?start=225&filter=
 """
 ```

for与其他关键字一起使用

  1. for + break

     break强制结束所在的那层for循环

  2. for + continue

     continue跳过这次循环继续下次循环

  3. for + else

     else配合for一起使用 当for循环没有被强制结束的情况下 循环体结束之后运行else子代码
posted @ 2022-06-23 19:21  张张包~  阅读(405)  评论(0编辑  收藏  举报