一、while循环补充说明

1、死循环

 while+条件:
# 在条件不改变且一直为真时 while会陷入死循环,在我们执行一些较大的运算流程时,while会使我们的CPU占用率急速升高,甚至会使电脑死机、重启

2、嵌套及全局标志位

​ 在我们使用while循环时,通常可使用break结束循环,但break只能结束他所在那一层的循环,在我们使用while嵌套时,想要一次性结束,就应该有几个while,就要写几个break。

​ 由于使用while嵌套时,需要反复地写break来关闭循环,这时我们可设置一个全局标志位,在条件达到时,触动开关type,来一次性关闭循环

is_bool = True  # 设置一个全局标记开关
while True: # 设置一个循环,绑定开关
if 条件1: # 条件1成立后,向下执行
while true: # 嵌套一个循环,绑定开关
if 条件2 # 条件2成立后,继续向下执行
is_bool = False # 触动开关,结束循环
else:
条件2不成立执行
else :
条件1不成立执

二、for...循环

1、for...循环特点

​ 相比于while循环,for循环有以下特点

  • 擅长遍历取值

​ 遍历取值:指在可在列表、字典、元组、集合等数据值库中,依次取值,类似于索引

  • 不需要结束,可自动结束循环
  • for循环体代码在执行中,遇到break也会直接结束整个循环
  • for循环体代码在执行中,遇到continue也会结束当前循环,重新开始下一次循环

2、for...循环语法结构

for 变量名 in 待遍历的数据:
# 待遍历完成后自动结束循环
liest_int = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 设置一个数据值库
for i in liest_int: # 遍历列表中数据值
print(i) # 将列表中数据值依次打印

三、range方法

1、什么是range

  • range可以简单的理解为,能够便捷的帮我们生成一个数据值库
range(100):  # 生成一个从0开始,99结束的数据值库
range(10, 100) # 生成一个起始为10,99结束的数据值库
range(1,100,3) # 第三个数为等插值,不写默认为1

2、不同版本python,range区别

在python2中:
range()
直接生成一个列表,内部含有多个数据值
xrange()
其实就是python3中的range
在python3中:
range()
类似于一个工厂,不会占用空间,需要时生产



3、range实战使用

网络爬虫
可使用range特性,来进行网络爬虫,读取我们需要的数据
项目需求
爬取所有页面内容 (豆瓣)
寻找规律
https://movie.douban.com/top250
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=0&filter=
编写代码产生豆瓣10页的网址
https_douban = 'https://movie.douban.com/top250? start=%s&filter= '
for i in range(0, 250, 25):
print(https_douban % i) '''
分页的规律 不同的网址有所区别
1.在网址里面有规律
2.内部js文件动态加载
'''

练习题


1.计算1-100所有的数之和 答:
count = 0 # 设置一个为0的基数
for i in range(0,101): # 遍历出0-100的数
count += i # 从0开始相加
print(count) # 得出答案为5050 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]
答:
# 2.判断列表中数字2出现的次数
count = 0 # 设置一个从0开始的基数
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]
for i in l1: # 遍历变量名l1中的数据值
if i == 2: # 当数据值等于2时,记录一次
count += 1 # l1中数据值为2时 基数加1
print(count) # 打印2出现的次数为13 3.编写代码自动生成所有页网址(注意总共多少页)
https://movie.douban.com/top250
答:
寻找规律
https://movie.douban.com/top250
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/top250start=0&filter=
编写代码产生豆瓣10页的网址
https_douban = 'https://movie.douban.com/top250? start=%s&filter= '
for i in range(0, 250, 25):
print(https_douban % i) 4.编写代码打印出下列图形(ps:for循环嵌套)
*****
*****
*****
*****

最新文章

  1. java之Date
  2. directive中的参数详解
  3. C#后台弹出对话框
  4. uva 11029
  5. 网站开启Gzip压缩-apache
  6. Socket编程实践(12) --UDP编程基础
  7. IOS开发之——使用SBJson拼接Json字符串
  8. PHP 魔术变量和魔术函数详解
  9. 【转载】SSD 下的 MySQL IO 优化
  10. cloudera-manager所有服务提示时钟偏差问题解决办法
  11. sql的升阶
  12. CentOS在线安装Mysql5.7
  13. cf1110E 思维
  14. Python连接Mssql
  15. python decimal.quantize()参数rounding的各参数解释与行为
  16. [javascript] 看知乎学习js事件触发过程
  17. 在Silverlight中动态绑定页面报表(PageReport)的数据源
  18. jQuery中attr和prop方法的区别说明
  19. 高性能的数据压缩库libzling-20140324
  20. 用Appium让Android功能自动化测试飞起来

热门文章

  1. Node.js + Express + Knex 开发 API 接口
  2. Get请求使用请求体传递参数会报400异常的问题
  3. SpringMVC 01: SpringMVC + 第一个SpringMVC项目
  4. centOS7.x修改root密码
  5. 第八十篇:Vue购物车(一) 购物车基本框架
  6. ubuntu 16.04 搭建docker
  7. Hint 使用--leading
  8. Spring_事务总结
  9. 通过VS下载的NuGet包,如何修改其下载存放路径?
  10. BUUCTF Misc 被偷走的文件