while循环补充说明

1.死循环
    	真正的死循环是一旦执行 CPU功耗会极速上升 直到系统采取紧急措施
        尽量不要让CPU长时间不间断运算
    
    2.嵌套及全局标志位
       强调:一个break只能结束它所在的那一层循环
       强调:有几个while的嵌套 想一次性结束 就应该写几个break 
       强调:如果不想反复写break 可以使用全局标志位
        is_flag = True
    while is_flag:
        username = input('username>>>:')
        password = input('password>>>:')
        if username == 'jason' and password == '123':
            while is_flag:
                cmd = input('请输入你的指令>>>:')
                if cmd == 'q':
                    is_flag = False
                print('正在执行你的指令:%s'% cmd)
        else:
            print('用户名和密码错误')

流程控制之for循环

for循环能够坐的事情while都可以做到 只不过for循环在一些场景下使用更简单
  主要场景为:循环获取存储多个数据的数据内部数据值
  实际案例:
      name_list = ['jason', 'kevin', 'tony', 'oscar']# 遍历
      # 循环打印出列表中每一个数据值(while 索引取值>>>:超出范围会报错)
      count = 0 
      while count < 4:
          print(name_list[count])
          count += 1
      #for 循环
      for i in name_list:
          print(i)
  for循环语法结构
  	for变量名 in 待遍历的数据:
          for 循环体代码
  for循环特点
  	1.擅长遍历取值
  	2.不需要结束条件 自动结束(遍历完)
      
  for 循环主要遍历的数据类型有(常见有 字符串、列表、元组、字典、集合)
      info = 'hello word'
      for i in info:
          print(i)  # 单个单个字符
     d ={'username':'jason', 'password': 123}
     for i in d:
          print(i)  # 只有键参与遍历
  for 循环语法结构中的变量名如何命名
  	1.见名知意
     	2.如果遍历出来的数据值没有具体的含义 可以使用常用的    i j k item v
    
  for 循环体代码中如果执行到break也会直接结束整个for循环
  
  for循环体代码中如果执行到continue 也会结束当前循环直接开始下一次循环
  
  for变量名 in 待遍历的数据:
      for循环代码
  else:
      for循环体代码没有被break强制结束的情况下运行完毕之后运行

range方法

range可以简单的理解为是帮我们产生一个内部含有多个数字的数据
  for i in range(101):  # 起始位置为0 终止位置为100 
      print(i)  # [0,.......100]
   
  for i in range(10, 20):  # 第一个为起始位置 第二个终止位置
      print(i)
      
  for i in range(1, 20, 2):  # 第三个数为等差值 默认不写为1
      print(i)
  """
  在python2中
  	range()
  		直接产生一个列表 内部含有多个数值
  	xrange()
  		其实就是python3面的range
  在python3中
  	range()
  	类似于一个工厂 不会占用太多的内存空间 要就生产
  """

range实战案例

网络爬虫
  	使用代码爬取网络上我们需要的数据
  项目需求
  	爬取所有页面的数据(博客园)
  找寻规律
  	https://www.cnblogs.com/
   	https://www.cnblogs.com/#p2
   	https://www.cnblogs.com/#p3
   	https://www.cnblogs.com/#p4
    
  大胆猜测:第一页是https://www.cnblogs.com/#p1
   '''
  分页的规律 不同的网址有所区别
  	1.在网址里面有规律
  	2.内部js文件动态加载
   '''

课后作业:

1.计算1-100所有的数之和
num = 0
for i in range(1,101):
    num += i
    print(num)
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]
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]
 num = 0
 for i in l1:
     if i == 2:
        num += 1
		print(num)

3.编写代码自动生成所有页网址(注意总共多少页)
	https://movie.douban.com/top250

s = 'https://movie.douban.com/top250?start=%s&filter='
for i in range(0,251,25):
    print(s % i)
4.编写代码打印出下列图形(ps:for循环嵌套)
*****
*****
*****
*****

for i in range(4):
    for j in range(5):
        print("*", end='')
    print()