循环与range基本知识

今日内容详细

while循环补充说明

1.死循环

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

2.嵌套及全局标志位

强调:一个break只能结束它所在的那一层循环
强调:有几个while的嵌套 想一次性结束 就应该写几个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':
                print('正在执行您的指令:%s' % cmd)
                break  # 结束小循环
        break  # 结束大循环
    else:
        print('用户名或密码错误')
强调:如果不想反复写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循环

for循环能够做到的事情while都可以做到 只不过for循环在一些场景下使用更简单
主要场景为:循环获取存储多个数据的数据内部数据值

image

for循环语法结构:

for 变量名 in 待遍历的数据:
    循环体代码

for循环特点:

1.擅长遍历取值
2.不需要结束条件 自动结束(遍历完)

for循环主要遍历的数据类型有(常见有 字符串、列表、元组、字典、集合)
    info = 'hello world'
    for i in info:
        print(i)  # 单个单个字符

    d = {'username': 'jason', 'password': 123}
    for i in d:
        print(i)  # 只有键参与遍历

for循环命名

for循环语法结构中的变量名如何命名:

1.见名知意
2.如果遍历出来的数据值没有具体的含义 可以使用常用的
		i j k item v

for循环体代码中如果执行到break也会直接结束整个for循环

for循环体代码中如果执行到continue也会结束当前循环直接开始下一次循环

for 变量名 in 待遍历的数据:
    for循环体代码
else:
    for循环体代码没有被break强制结束的情况下运行完毕之后 运行

range使用方法

用法:

range(num)  # 0到num-1
range(num1,num2)  # num1到num2-1
range(num1,num2,num3)  # num1到num2-1 num3为差值
eg:for i in range(1,10,2) 则取到的为1 3 5 7 9
#从头到尾,但不会循环最后一位。顾头不顾尾
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()
		类似于一个工厂 不会占用太多的内存空间 要就生产
"""

实战案例

网络爬虫
	使用代码爬取网络上我们需要的数据
项目需求
	爬取所有页面的数据(博客园)
找寻规律
	https://www.cnblogs.com/
 	https://www.cnblogs.com/#p2
 	https://www.cnblogs.com/#p3
 	https://www.cnblogs.com/#p4

大胆猜测:第一页是 https://www.cnblogs.com/#p1
编写代码产生博客园文章前两百页的网址
url = "https://www.cnblogs.com/#p%s"
for i in range(1,201):
    print("url % i")
'''
分页的规律 不同的网址有所区别
	1.在网址里面有规律
	2.内部js文件动态加载
'''

作业

1.计算1-100所有的数之和

result = 0  # 定义结果开始为0
for i in range(1, 101):  # 遍历从1开始 终止位置100
    result += i  # 计算 result = result + i 计算完成 i与原本数据值断开关联返回条件处提取下一个数值反复循环体代码 直至提取到100结束
print(result)

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

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

info = 'https://movie.douban.com/top250?start=%s&filter='
for i in range(0, 226, 25):
    print(info % i)

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

# *****
# *****
# *****
# *****
for i in range(4):
    for q in range(5):
        print('*', end='')
    print()
posted @   小白峰  阅读(239)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示