python基础:while循环补充说明、流程控制之for循环、range方法、range实战案例

循环结构之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 world'
    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强制结束的情况下运行完毕之后 运行

2.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('用户名或密码错误')

3.range方法

3.1 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与python3中range的区别

在python2中有两个
	range()
		直接产生一个列表 当数据量很大的时候可能会造成内存溢出(爆满)
	xrange()
		其实就是python3里面的range方法
在python3中只有一个
	range()
		类似于是一个工厂 什么时候要什么时候创建给你 节省内存

3.2 range方法实操

网络爬虫:python代码模拟网络请求获取数据
很多网址的数据都不止一页 所以有时候需要通过代码模拟(方式1)

博客园多页规律
    https://www.cnblogs.com/  第一页
    https://www.cnblogs.com/#p2  第二页
    https://www.cnblogs.com/#p3  第三页
    https://www.cnblogs.com/#p4  第四页
     ...
    大胆猜则第一页还可以这么写
    https://www.cnblogs.com/#p1

# 编写代码自动产生博客园前一百的网址
"""
https://www.cnblogs.com/#p2  第二页
https://www.cnblogs.com/#p3  第三页
https://www.cnblogs.com/#p4  第四页
...
大胆猜则第一页还可以这么写
https://www.cnblogs.com/#p1
"""
# 提前定义好一个模板
base_url = 'https://www.cnblogs.com/#p%s'
for i in range(1, 101):
    print(base_url % i)

作业

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

a = 0
for i in range(0, 101):
    a += i
print(a)

image

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

image

# 3.编写代码自动生成所有页网址(注意总共多少页)

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

image

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


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

image

posted @ 2022-09-28 19:21  wwwxxx123  阅读(159)  评论(0编辑  收藏  举报