首页 > 其他分享 >for循环结构/while注意事项/range方法及实战

for循环结构/while注意事项/range方法及实战

时间:2022-09-28 19:35:31浏览次数:42  
标签:count name range while 循环 注意事项 print

目录

今日内容概要

  • while 循环补充说明
  • 控制流程之for循环(重点)
  • range方法及实战
  • 练习题及答案

1.while 循环补充说明

while 循环
1. 死循环 真正的死循环是一旦执行,会让cpu的占用率特变高,直到系统采取措施
		我们学了for循环后 尽量就不要使用死循环了
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('用户名或密码错误')

image

2.流程控制之for循环(重点)

for 循环 能够做到的事情,while循环也可以做到,但是再一些应用场景下面,for循环更加的简单一些。
for 循环主要用于获取存储多个数据值的数据内部数据值
for循环语法结构为:
for 变量名 in 数据值:
	for 循环体代码
例:
l1 = [11,22,33,44,55]
for i in l1:
    print(i)  # 输出结果为 11,22,33,44,55
在这个for循环中,当他遍历了l1列表中的数据值时,i这个变量名会分别 先绑定到l1列表中的11,然后再绑定22,然后再绑定33,再绑定44....一直到没有能绑定的数据值,结束循环。


# 那么由此我们可以看到它的特点
1.for 循环它擅长遍历取值
2.不需要结束条件 在遍历完成后自动停止
它比while的好处就在于 while可能一不小心写成了死循环,但是for循环不会


for循环它主要遍历的常见数据类型有(字符串、列表、元组、字典、集合)
列表:
name = ['jason','tony','bob','jerry']
for i in name:
    print(i)  # 输出结果为jason tony bob jerry
字典:
name = {'jason':18, 'tony':55,'sam':666}
for i in name:
    print(i)  # 它的输出结果为 jason tony sam
for循环在取字典时,只跟键发生关系,不跟值发生关系
字符串:
name = 'jason'
for i in name:
	print(i)  # 它的输出结果为 j a s o n
字符串中单个字符也是数据值,所以会单独取单个字符

for循环变量名命名建议:
1.见名知意
2.如果遍历出来的数据没有特别具体的含义,可以用单个字母命名
		如 i k v c...


# for 循环体代码如果执行到break 那么也会直接结束整个for循环
# for 循环体代码如果执行到continue 那么会结束当前循环,直接开始下次循环

break例:
name = [11, 22, 33, 555, 44]
for i in name:
    if i == 33:  # 添加一个条件判断,当条件成立的时候执行下面的代码 break 它会直接停止整个循环
        break
    print(i)  # 结果为 11 22

continue例:
name = [11, 22, 33, 555, 44]
for i in name:
    if i == 33:
        continue
    print(i)  # 结果为: 11 22 555 44
# 添加一个条件判断,当条件成立的时候执行下面的代码 continue 它会直接停止当前的循环,直接开始下次循环

for 与 else 也可以一起使用
for 变量名 in 数据值:
	执行for循环体代码
else:
    如果循环体代码没有因为break强制结束的情况下运行完毕后,运行else的子代码

3.range方法及实战

range 我们可以理解为:帮我们产生一个内部含有多个数字的数据
主要用法:
for i in range(1,14):
	print(i)  # 打印数字1-13
    # 我们的(1,14)就是给range 定位一个范围,让他在1-14这个范围取值并依次打印出来
for i in range(50)
	print(i) # 打印数字0-50 它的其实位置没有定的话就默认为0开始,输入的数值-1结尾
for i in range(1, 20, 2): 
    # 第三个数为等差值 默认不写为1 它代表是打印出的第一个数字减去第二个为2  一直如此,直到结束
    print(i)
穿插知识点:
在python2中 range 有两种
1. range()
	直接生成一个列表内部有多个数据值
2.xrange()
	如果你需要其中的数据值就会产出,如不需要它就暂时存储
python3中:
range()方法 = python2 中的 xrange()方法
接下来我们进入range方法的实战项目:
我们现在还没有学到爬虫部门,我们先理解一下它大体的逻辑部分
目的:使用代码爬取我们在网上所需要的数据
需求:爬取当前网站所有页面数据
我们可以先去某网站(豆瓣)看一下它的规律
	首页:https://movie.douban.com/top250?start=0&filter=
     第二页:https://movie.douban.com/top250?start=25&filter=
     第三页:https://movie.douban.com/top250?start=50&filter=
     第四页:https://movie.douban.com/top250?start=75&filter=
        ....
        共 10 页
    我们需要通过代码先获取这250页的网页地址
    我们就可以用到range方法获取
    例:
# 我们知道每个页面和每个页面的等差值为25,那么一共250页我们就可计算出来它的值的范围
count = (25*10)
# 通过占位符 先写好模板准备替换关键数据
data = 'https://movie.douban.com/top250?start=%s&filter='
for i in range(0, count, 25):  # 进入循环 
    print(data % i)  # 输出数据内容

	
'''
分页的规律 不同的网址有所区别
	1.在网址里面有规律
	2.内部js文件动态加载
'''

4.今日练习题及答案


1.计算1-100所有的数之和
count = 0
for i in range(0, 101):
    count = count + i
print(count)
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]
判断列表中数字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:  # 遍历l1列表
    if i == 2:  # 增加条件判断 
        count += 1  # 如果等于2 那么count 加1
print('2出现的次数为%s' % count) 最后打印结果

3. 
编写代码自动生成所有页网址(注意总共多少页)
	https://movie.douban.com/top250
 # 我们知道每个页面和每个页面的等差值为25,那么一共250页我们就可计算出来它的值的范围
count = (25*250)
# 通过占位符 先写好模板准备替换关键数据
data = 'https://movie.douban.com/top250?start=%s&filter='
for i in range(0, count, 25):  # 进入循环 
    print(data % i)  # 输出数据内容
        
4.编写代码打印出下列图形(ps:for循环嵌套)  
*****  
*****  
*****  
*****
for i in range(4):  # 先做四次的列 用*号打印出来
    for b in range(5):  # 在做 5次的行 用 end='' 方法把换行符删除
        print('*',end='')
    print('*')

标签:count,name,range,while,循环,注意事项,print
From: https://www.cnblogs.com/ddsuifeng/p/16739316.html

相关文章