循环结构之for循环
1.for循环
1.1 概念
- for循环用于迭代序列(即列表,元组,字典,集合或字符串)。
- 通过使用for循环,我们可以为列表、元组、集合中的每个项目等执行一组语句。
- for循环通常比while循环更容易编码并且运行效率更高,当需要遍历一个序列时,首先要考虑for循环。
- 当对象有特定的长度时,可以使用 for 循环,没有时使用 while 循环。
for循环和while循环的区别
- 相同点:都能循环做一件重复的事情
- 不同点:for循环是在序列穷尽时停止,while循环是在条件不成立时停止。
1.2.语法结构
- for 变量名 in 可迭代对象: # 字符串 列表 字典 元组
- for循环的循环体代码
- 针对变量名的命名 如果带取值的数据有明确的指向 最好见名知意
- for name in 学习姓名名单
- for addr in 地址信息
- 如果没有明确的指向 可以使用常见的字母
- i j k item v …
1.3.常见取值操作
l1 = ['jason', 'kevin', 'tony', 'oscar']
# 循环打印出列表中每一个数据值
# 列表取值:索引
# while循环打印
# num = 0
# while num < 4:
# print(l1[num]) # 每次循环的时候索引应该自增1
# num += 1
# for循环
for i in l1:
print(i)
# for循环字典默认只能取到字典的key
user_dict = {
'username': 'jason',
'pwd': 123
'age': 18
}
for i in user_dict:
print(i)
# for循环字符串默认每次取单个字符
desc = 'hello'
for i in desc:
print(i)
# for循环元组数据与列表一致,默认都是单数据值
t = (11, 22, 33, 44)
for i in t:
print(i)
s1 = {1, ,2 ,3, 4, 5}
for i in s1:
print(i)
2.range方法
2.1.range方法
- range可以看成是一个能够帮助我们快速产生一个包含多个数据值的列表
for i in range(5): # 如果括号内只有一个数字 那么就是从0开始到数字减一结束(顾头不顾尾 左包含右不包含)
print(i)
for i in range(3, 10): # 括号内有两个数字 第一个是起始位置(包含) 第二个是终止位置(不含)
print(i)
for i in range(0, 100, 25): # 括号内有三个数字 最后一个是数据的间隔数(等差数列)
print(i)
注意:
在python2中有两个
range()
直接产生一个列表 当数据量很大的时候可能会造成内存溢出(爆满)
xrange()
其实就是python3里面的range方法
在python3中只有一个
range()
类似于是一个工厂 什么时候要什么时候创建给你 节省内存
2.2.range方法实操
网络爬虫:python代码模拟网络请求获取数据
很多网址的数据都不止一页 所以有时候需要通过代码模拟(方式1)
博客园多页规律
https://www.cnblogs.com/ 第一页
https://www.cnblogs.com/#p2 第二页
https://www.cnblogs.com/#p3 第三页
https://www.cnblogs.com/#p4 第四页
...
大胆猜则第一页还可以这么写
https://www.cnblogs.com/#p1
# 编写代码自动产生博客园前一百的网址
"""
https://www.cnblogs.com/#p2 第二页
https://www.cnblogs.com/#p3 第三页
https://www.cnblogs.com/#p4 第四页
...
大胆猜则第一页还可以这么写
https://www.cnblogs.com/#p1
"""
# 提前定义好一个模板
base_url = 'https://www.cnblogs.com/#p%s'
for i in range(1, 101):
print(base_url % i)
3.for…break语句
- 通过使用 break 语句,我们可以在循环遍历所有项目之前停止循环
- break也能够结束所在的那一层for循环
# 1-10 7结束
for i in range(1,11):
if i == 7:
break
print(i)
4.for…continue语句
- 通过使用 continue 语句,我们可以停止循环的当前迭代,并继续下一个
- continue也能够结束所在的那一次for循环 直接开始下一次
# 1-10 7跳过
for i in range(1, 11):
if i == 7:
continue
print(i)
5.for…else语句
- for 循环中的 else 关键字指定循环结束时要执行的代码块
- else配合for一起使用 当for循环没有被强制结束的情况下 循环体结束之后运行else子代码
for i in range(10):
print(i)
if i == 5:
break
else:
print('嘿嘿嘿 猜猜我什么时候执行')
作业
1.计算1-100所有的数之和
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]
3.编写代码自动生成所有页网址
https://movie.douban.com/top250
4.编写代码打印出下列图形(ps:for循环嵌套)
*****
*****
*****
*****
原创文章,作者:bd101bd101,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/270114.html