for循环结构、range方法

内容总结

  • whlie补充说明

    1、死循环

    真正死循环是一旦执行 CPU功耗会急速上升 直到系统采取紧急措施
    尽量不要让CPU长时间不断运行
    

    2、whlie循环嵌套

    重点:一个break只能结束他所在的那一层循环
    重点:有几个while的嵌套 想要一次性结束 就得写几个break
    重点:如果不想反复写break 可以使用全局标志位 牵一发而动全身
    eg:
      is_flag = True
      while is_flag:
          user = input('user>>>>:')
          pwd = input('pwd>>>:')
          if user == 'jason' and pwd == '123':
              while is_flag:
                  choice = input('请输入您的指令>>>:')
                  if choice == 'n':
                      is_flag = Flase
                  print('正在执行你的指令:%s' % choice)
          else:
             print('用户名或密码错误')
              
    
    is_flag = true
    输入用户名和密码
    判断用户名和密码是否正确
    正确进入循环判断指令
    错误回到while条件判断处
    有q
    将is_flag = Flase退出 条件不成立
    没有q 循环并打印指令
  • for循环结构

    for循环的能够做到的事情while都能做到 而for的循环语法更加简洁 并且在循环取值问题上更加方便

    1、语法结构

    for 变量名 in 带遍历数据:
    	for循环体代码
    eg:
    	res = ['jason', 'marry', 'kevin', 'tony']  # 待遍历数据
        循环打印出res中的每一个数据值
        while方法:
            count = 0
            while count < 4:
                print(res[count])
                count += 1
        for方法:
        	for i in res:
                print(i)
     for循环的特点:
        1、擅长遍历取值
        2、不需要结束条件 遍历完自动结束
     for循环结构中的变量名如何命名:
    	1、见名知意
        2、如果遍历出来的数据值没有具体意义 可以使用常用的 i j k item v 来指代变量名
     for循环的主要遍历数据类型有(常见的有:字符串、列表、元组、字典、集合)
    	eg:
            l1 = 'jason'
            for i in l1:
                print(i)  # 打印出来的是单个单个字符
            num_dict = {'name': 'jason', 'pwd': 123}
            for i in nmu_dict:
                print(i)  # 打印出来的只有键
            
    

    2、for+break

    在循环体代码中如果执行到break也会结束整个for循环
    eg:
        res = ['jason', 'kevin', 'oscer', 'marry']
        for i in res:
            print(i)
            if i == 'kevin':
                break
    

    3、for+continue

    在循环体代码中如果执行到continue也会结束当前循环直接开始下一次循环
    eg:
        res = ['jason', 'kevin', 'oscer', 'marry']
        for k in res:
            if k == 'oscer':
                continue
             print(k)
    
  • range方法

    1、range的3个使用方法

    range可以理解为是帮我们产生一个内部含有多个数字的数据
    
    第一种:一个参数  从0开始 顾头不顾尾
    for i in range(10):
        print(i)  # 打印出来的是0 1 2 3 4 5 6 7 8 9
    第二种:两个参数  自定义起始位置 顾头不顾尾
    for i in range(1, 10):
        print(i)  # 打印出来的是1 2 3 4 5 6 7 8 9
    第三种:三个参数  第三个数字为等差值 默认不写为1
    for i in range(1, 10, 2):
        print(i)  # 打印出来的是1 3 5 7 9
    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=  第四页
        base_url = 'https://movie.douban.com/top250?start=%s&filter= '
        for i in range(0, 250, 25)print(base_url % i)
    

    ​ 2、range在Python2与python3的不同

    Python2中:
        range()  # 它产生的是一个列表 内部含有多个数值
        xrange()  # 其实就是python3中的range
    

    image

    python3中:
      range()  #类似一个工厂 不会占用多大的空间 要的话就生产
    

    image

  • 练习

    1、计算出1-100所有的数之和

    # 引入计数器
     num_count = 0
     for i in range(1, 100):
         # num_count = num_count + i
         num_count += i
     print(num_count)
    

    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 k in l1:
         if k == 2:
             count += 1
     print(count)
    

    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=
     base_url = 'https://movie.douban.com/top250?start=%s&filter='
     for v in range(0, 250, 25):
         print(base_url % v)
    

    4、编写代码打印出下列图形(ps:for循环嵌套)

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

    5.时间进度条

    import time
    """
    1,\r 一般用在print()中对要打印的结果做格式化处理, 表示将光标的位置回退到本行的开头位置。
    2,其中end="",表示不换行
    3,其中%s,格式化进行输出,位置进行预留,这里预留了50个字符
    """
    list1 = [12,23,34,45,56,67,78,89]
    j = 1
    leng = len(list1)
    for i in list1:
      time.sleep(0.5)
      percent = j / leng
      strvar = int(percent * 50) * "#"
      print("\r[%-50s] %d%%" % (strvar, percent * 100), end="")
      j += 1
    
posted @   小福福  阅读(98)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
  1. 1 原来你也在这儿 温余福
  2. 2 世间美好和你环环扣扣 温余福
  3. 3 随风起舞 温余福
  4. 4 罪恶都市 温余福
罪恶都市 - 温余福
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 王星

作曲 : 灰鸿啊/皮皮

编曲 : 夏日入侵企画

制作人 : 邢硕

节奏吉他 : 肯尼

主音吉他 : 张伟楠

贝斯 : 皮皮

鼓 : 海鑫

和声 : 邢硕

音效制作 : 邢硕

录音 : 邢硕/夏国兴

混音 : 于昊

特别鸣谢 : 张伟楠

这城市的车流和这地表的颤抖

像一颗石子落入地心之后泛起的温柔

暗涌

河水流过转角她的楼

被梦魇

轻声呓语唤醒身后的幼兽

失效感官焦灼只剩下

麻木愚钝无从感受

共同支撑全都瓦解

只是我们现在都

已忘记到底是

谁隐藏春秋

谁在大雨之后

把旗帜插在最高的楼

过去陈旧的还在坚守

内心已腐朽

摇摇欲坠不停退后

毁灭即拯救

夏日掠夺春秋

结局无法看透

眼看这情节开始变旧

所有的城池已失守

最终无法占有

无眠辗转

伴着人间破碎的旧梦

像繁星

退却后只剩下混沌的夜空

炙热

掩盖风声鹤唳的担忧

把所有失落无助反手推入

无尽的白昼

失效感官焦灼只剩下

麻木愚钝无从感受

共同支撑全都瓦解

只是我们现在都已经忘记到底是

谁隐藏春秋

谁在大雨之后

把旗帜插在最高的楼

过去的陈旧还在坚守

内心已腐朽

摇摇欲坠不停退后

毁灭即拯救

夏日掠夺春秋

结局无法看透

眼看这情节开始变旧

所有的城池早已失守

惶恐难以接受

缠绵往复不肯放手

最终无法占有

谁隐藏春秋

谁在大雨之后

把旗帜插在最高的楼

过去的陈旧还在坚守

内心已腐朽

摇摇欲坠不停退后

毁 灭 即 拯 救

谁掠夺春秋

谁在大雨之后

把旗帜插在最高的楼

过去的陈旧还在坚守

内心已腐朽

摇摇欲坠不停退后

毁灭即拯救

夏日掠夺春秋

结局无法看透

明知城池已失守

缠绵往复不肯放手

最终无法占有

点击右上角即可分享
微信分享提示