作者:菜菜ING | 来源:互联网 | 2023-06-02 14:05
#循环结构之for循环##1.与while循环的对比```pythonlist1[jakson,yee,xxxx,封闭货车]在while循环中,需要索引取值num0whilenu
> # 循环结构之for循环
## 1.与 while 循环的对比
```python
list1 = ['jakson','yee','xxxx','封闭货车']
'''
在while循环中,需要索引取值
'''
num = 0
while num <4
print(l1[num])
num += 1
'''
for循环能够做到的事while循环都可以做到
但是for循环的语法结构更加简单 尤其擅长循环取值
'''
```
## 2.语法结构
```python
for 变量名 in 可迭代对象 : # (字符串,字典,列表,元祖)
循环体代码
'''
变量名的命名:如果带取值的数据有明确的指向,最好见名字知意
for student_name in 学生姓名名单
for addr in 地址信息
如果没有明确的指向 可以使用常见的字母
i j k m n item...等等
'''
```
## 3.常见取值操作
```python
# 列表
list1 = ['jakson','yee','xxxx','封闭货车']
for i in list:
print(i)
# 字典
user_dict = {'username':'jakson','firstname':'yee','age':18,'pwd'=123}
""" for 循环字典 默认只能取到字典的key"""
for i in user_dict:
print()
# 字符串
desc = 'hello python!'
""" for 循环字符串 默认每次取单个字符"""
for i in desc:
print(i)
# 元祖
t = (11,22,33,55)
""" for 循环元组数据与列表一致 默认单个数据值"""
for i in t:
print(i)
# 集合
s1 = {11,22,33,55}
""" for 循环集合数据与列表一致 默认单个数据值"""
for i in s1:
print(i)
```
## 4.重要知识
### 1.range方法
range可以看成是一个能够帮助我们快速产生一个包含多个数据值的列表
```python
# 如果括号内只有一个数字 那么就是从 0 开始到该数字结束(顾头不顾尾,包含0不包含5)
for i in range(5):
print(i)
# 如果括号内有两个数字,那么从第一个数字开始(包含),第二个数字结束(不包含)
for i in range (1,10):
print(i)
#括号内有三个数字,最后一个数字是步长(也就是间隔数)
for i in range(0,101,5):
print(i)
"""
在python2中有两个
range()
会直接产生一个列表,当数据很大时可能会造成内存外溢
xrange()
与python3里的range用法相同
在python3中只有一个
range()
什么时候需要什么时候创建,节省内存
"""
```
## range方法实操
```python
# 网络爬虫:python代码模拟网络请求获取数据
#很多网址的数据都不止一页,所以有时候需要通过代码模拟
博客园多页规律
https://www.cnblogs.com/ #第一页
https://www.cnblogs.com/#p2 第二页
https://www.cnblogs.com/#p3 第三页
https://www.cnblogs.com/#p4 第四页
可见其规律在于#p后面的2、3、4...
#所以将前面的内容定义一个模板
base_url='https://www.cnblogs.com/#p'
for i in range(1,101):
print(base_url % 1)
```
## for + break
```python
# 1-10 7结束
for i in range(1,11):
if i == 7:
break
print(i)
"""
break也能够结束所在的那一层for循环
"""
```
## for + continue
```python
# 1-10 7跳过
for i in range(1, 11):
if i == 7:
continue
print(i)
"""
continue也能够结束所在的那一次for循环 直接开始下一次
"""
```
## for + else
```python
for i in range(10):
print(i)
if i == 5:
break
else:
print('嘿嘿嘿 猜猜我什么时候执行')
"""
else配合for一起使用 当for循环没有被强制结束的情况下 循环体结束之后运行else子代码
"""
```
> # 作业
> ### 作业一
```python
# 1.计算1-100所有的数之和
h = 0
for i in range(1, 101):
h = h + i
print(h)
```
> ### 作业二
```python
# 2.判断列表中数字2出现的次数
l1 = [11, 2, 3, 2, 2, 1, 2, 1, 2, 3, 2, 3, 2, 3, 4, 3, 2, 3, 2, 2, 2, 2, 3, 2]
count = 0
for i in l1:
if i == 2:
count += 1
print(count)
```
> ### 作业三
```python
# 3.编写代码自动生成所有页网址
gu = 'https://movie.douban.com/top250?start=%s&filter='
for i in range(0, 251, 25):
print(gu % i)
```
> ### 作业四
```python
# 4.编写代码打印图形(ps:for循环嵌套)
for t in range(4):
for i in range(5):
print('*', end='')
print()
```