python学习Day09

Day 09

今日内容概要

  • 循环结构—for循环
    • for循环
  • range方法实操
    • 网络爬虫

今日内容详细

1.循环结构—for循环
1.前戏
 eg:
   循环打印出列表中每一个数据值
	 l1 = ['a', 'b', 'c', 'd']
    1)while循环操作:
       num = 0 # 定义一个索引为0的变量名
       while num < 4:
           print(l1[num])  # 索引列表取值:索引0
           num += 1  # 每次循环时索引自增1
     2)for循环操作:
        for i in l1: #无论列表增加多少数据都不会报错
           print(i)
         # for循环的变量名i会从给到他的数据中从左往右依次循环赋值,直到没有数据后自动结束
   	"""
   	for循环能够做到的事情while循环都可以做到 
   	但是for循环的语法结构更加简单 尤其擅长循环取值(迭代)
   	"""

2.语法结构
  for 变量名 in 可迭代对象: #字符串 列表 字典 元组 集合
        for循环的循环体代码
        
  for i in [1,2,3]
      print('z')# 结果是打印了3遍z
    #in后面的列表里有几个数据值 就会循环几次
        
3.变量名命名
  1)如果有明确的指向,最好做到见名知意
    eg:
        for name in 学生名单
        for addr in 地址名单
  2)如没有明确指向,可用常见的字母
    eg:
        i  j  k  v  item...
        
4.常见取值操作
  1)for循环列表:
  eg: 循环打印出列表中每一个数据值
     l1 = ['a', 'b', 'c', 'd']
     for i in l1: #无论列表增加多少数据都不会报错
	     print(i)# 结果就是a b c d各一行
  2)for循环字典:
  eg: 循环打印出列表中每一个数据值
     dict = {'name1':'张','name2':'王','name3':'李'}
     for i in dict:
          print(i) #结果就是字典的K值各一行
  3)for循环字符串:
  eg:循环打印出列表中每一个数据值
      desc = 'hello'
      for i in desc:
          print(i) #结果就是字符串中的单字符各一行
  4)for循环元组:
  eg: 循环打印出列表中每一个数据值
     t = (1,2,3,4)
     for i in t: 
	     print(i)# 结果与列表一致都是单个数据值
  5)for循环集合:
  eg: 循环打印出列表中每一个数据值
     s1 = {1,2,3,4}
     for i in s1:
         print(i)# 结果与列表一致都是单个数据值
  '整数型、浮点型、布尔值不支持该方式'

​ 5.for循环重要知识:

1.range方法 (范围)
     range能快速产生一个包含多个数据值的列表
  (1)for i in range(5):#如果括号内只有一个数字,那就是从0到4结束(顾头不顾尾,左包含右不包含)
  (2)for i in range(3,10):#如果括号内有两个数字,那第一个就是起始(包含)位置,第二个是终止(不包含,需数字减1)位置
  (3)for i in range(0,100,25):#如果括号内有三个数字,第一个是起始位置,最后一个数是间隔数字,中间的是总共有多少数字(等差数列)
    
    """
1.在python2中有两个:
	1)range(数字)
		直接产生一个列表 当数据量很大的时候可能会造成内存溢出(爆满)
	2)xrange()
		其实就是python3里面的range方法
		
2.在python3中只有一个:
	range()
		类似于是一个工厂 什么时候要什么时候创建给你 节省内存
"""
1.for+break
#打印1-10  到7结束
for i in range(1,11):
    if i == 7:
        break#结束break所在的for循环
    print(i)

#循环打印1-10  到7结束后继续循环打印上一步操作
while True:
    for i in range(1,11):
        if i == 7:
            break#结束break所在的for循环
        print(i)

2.for+continue
# 打印1-10  到7跳过继续打印后面的数字
for i in range(1, 11):
    if i == 7:
        continue#结束所在的那一次循环直接开始下一次循环
    print(i)
3.for+else
for i in range(10):
    print(i)
    if i == 5:
        break
else:
    print('永远不会执行')
—— —— —— —— —— —— —— —— —— —— —— —— ——
for i in range(10):
    print(i)
    if i == 7:
        continue
else:
    print('执行完上面的循环体将执行此行')
"""
else配合for一起使用 当for循环没有被强制结束的情况下 循环体结束之后运行else子代码
"""
2.range方法实操
网络爬虫:python代码模拟网络请求获取数据
方式一:很多网站数据有很多页,有时候需要代码模拟
eg:
   # 编写代码自动产生博客园前一百的网址
    https://www.cnblogs.com/#p1  第一页
    https://www.cnblogs.com/#p2  第二页
    https://www.cnblogs.com/#p3  第三页
    https://www.cnblogs.com/#p4  第四页
ye = 'https://www.cnblogs.com/#p%s'#定义一个模板%s
for i in range(1,101): 
    print(ye % i)

作业

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循环嵌套)
	*****
	*****
	*****
	*****

————————————————————————————————————————————————————————————————————————————————
1.计算1-100所有的数之和
image
2.判断列表中数字2出现的次数
image
3.编写代码自动生成所有页网址
image
4.编写代码打印出下列图形(ps:for循环嵌套)
*****
*****
*****
*****
image

posted @ 2022-06-25 18:25  逢诱  阅读(28)  评论(0)    收藏  举报