while循环补充、for循环
while循环补充
1.死循环
在编程中,一个无法靠自身的控制终止的循环被称为死循环。
死循环会大量增加cpu的运算。
while 2:
print('11111')
2嵌套及全局标志位
所谓嵌套循环就是一个外循环的主体部分是一个内循环。内循环或外循环可以是任何类型,例如 while 循环或 for 循环。 例如,外部 for 循环可以包含一个 while 循环,反之亦然。外循环可以包含多个内循环。 循环链没有限制。
需要注意:
一个break只对他所在的那一层循环结束,并不会结束整个全部代码。
有while循环,想结束循环就要在每层while里写几个break来终止代码。用break太麻烦也可以用全局标识位,来进行对循环控制。
嵌套
user_age = 18
dl = 1
while 1:
print('开始游戏')
user_cage = input("请输入您猜的年龄")
user_cage = int(user_cage)
if user_cage > user_age:
print("猜大了")
elif user_cage < user_age:
print("猜小了")
else:
print("恭喜你猜对了")
break
全局标志位
定义一个计数器然后通过true和false来控制循环结构的执行和结束。
d1 = 1
while d1:
user = input("输入你的用户名")
password = input("输入你的密码")
if user == '123' and password == '123':
while d1:
c1 = input('请输入是否继续')
if c1 == 'q'
d1 = 0
print('正在执行您的指令:%s' % c1)
else:
print('用户名或密码错误')
流程控制for循环
for 循环

① 关键子in后面的序列指的是一组值,可能是数字,也可能是字符串。
② 关键字for后面的变量就是依次取序列里的值,每取一次值就执行一次下面的代码块,直到序列里的值全取完。
特别注意:for那行语句最后用“:”结尾,下面的代码块必须缩进!
for循环特点
1擅长于遍历取值
2不需要结束条件,自动结束(比while使用简单)
for循环主要遍历的类型(常见:字符串、列表、元组、字典、集合)
d = [123, 'aaa', 'bbb']
for i in d:
print(i)
注:字典输出的是k键
info = {'name':'zhangsan', 'age':'15'}
for i in info:
print(i)
运行结果如下:

字符串输出的是单个字符
info = 'aaaaaaa'
for i in info:
print(i)
运行结果

for循环句法的命名:
1见名之一 eg:名字、性别
2如果遍历出来的数据没有具体含义可以用一些字母代替 eg:i、j、k等
for循环可以跟break和for连用
for 变量名 in 待编里的数值:
break/continue
还可以跟else连用
for 变量名 in 待遍历的数据:
for循环体的代码
else:
for循环体代码中没有被break强制被执行的情况
range方法
range(范围)可以用在for循环中产生多个数字数据
for i in range(100):
print(i) # 即可输出0-99数据
for i in range(10, 20):
print(i) # 即可输出10到19的数据值
for i in range(10, 100, 2):
print(i) # 即可生成10到99的等差数列
python2和python3区别
1.print输出不同,在2中无须用将文本加括号在3中必须加括号
2.Python 2将小数点后面没有任何数字的数字视为整数,这可能会导致在除法期间出现意外结果。例如,如果在Python 2代码中输入表达式:3/2,则评估结果将为1,而不是你所期望的1.5。
这是因为Python 2会假设你希望除法的结果为整数,因此它将计算向下舍入到最接近的整数。为了获得结果1.5,你必须编写3.0 / 2.0来告诉Python,你希望它返回一个浮点数,即在结果中包含小数点后面的数字。
Python 3则会默认将3/2评估为1.5,这对于新程序员来说有更直观的感受。
3.range 在2中range()直接产生一个列表 内部含有多个数值xrange()
其实就是python3里面的range在python3中range()类似于一个工厂 不会占用太多的内存空间 要就生产
range实战案例
网络爬虫
大数据是当代时代热门话题大部分网络爬虫是由python来编写代码的,可以使用python来获取想要的数据。
项目爬取博客圆的页码信息数据
y = 'https://www.cnblogs.com/#p%s'
for i in range(200):
print(y % i)

有些页码使用js动态加载
作业
# 计算1-100所有的数之和
sum = 0
for i in range(101):
sum += i
print(sum)
运行结果

#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]
# 判断列表中数字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] # 13
j=0
i=2
for k in l1:
if i == k:
j += 1
print('2出现的次数:',j)
运行结果

# 3.编写代码自动生成所有页网址(注意总共多少页)
# https://movie.douban.com/top250
y = 'https://movie.douban.com/top250?start=%s&filter='
for i in range(0, 250, 25):
print(y % i)
运行结果

# 4.编写代码打印出下列图形(ps:for循环嵌套)
# *****
# *****
# *****
# *****
for i in range(4):
print('*',end='')
for j in range(4):
print('*',end='')
print()
运行结果:


浙公网安备 33010602011771号