- while循环补充说明
- 流程控制之for循环
- 基本数据类型内置方法
内容详细
1.死循环
真正的死循环是一旦执行,Cpu的功耗会急速上升 知道系统采取紧急措施
所以 尽量不要让cpu长时间不断运算。
2.嵌套以及全局标志位
强调:1.一个break只可以结束他所在的那一层循环
2.有几个while的嵌套 想一次性结束 就应该写几个break!
3.如果不想反复写break 可以使用全局标志位
is_flag = True # 定义该bool值为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 # is_falg 表示的bool值 在这表示False/停止了
print('正在执行您的指令:%s' % cmd) # 打印你输入的指令值
else:
print('用户名或密码错误') # if的分支
流程控制之for循环
for循环可以做到的事情while都可以做到,只不过for循环在某些场景下使用更简单 主要场景:循环获取储蓄多个数据的数据内部数据值 实际:
name_list = ['jason', 'kevin', 'tony', 'oscar']
# 循环打印出列表中每一个数据值(while 索引取值>>>:超出范围会报错)
# count = 0 # 定义次数开始为0
# while count < 4: # 循环次数到4
# print(name_list[count]) # 打印循环出来的每次结果
# count += 1 # 循环次数+1
for 循环:
for i in name_list: # for循环列表里的 遍历数据
print(i) # 打印输出
for循环语法结构
for 变量名 in 待遍历的数据:
for循环体代码
for循环特点
1.擅长遍历取值
2.不需要结束条件 自动结束(遍历完)
for循环主要遍历的数据类型有(常见有 字符串、列表、元组、字典、集合)
info = 'hello world'
for i in info:
print(i) # 单个单个字符 打印结果: h e l l o w o r l d
d = {'username': 'jason', 'password': 123}
for i in d:
print(i) # 只有键参与遍历 打印结果: username password
for循环语法结构中的变量名如何命名
- 见名知意
- 如果遍历出来的数据值没有具体的含义 可以使用常用的
- i j k item v
for循环体代码中如果执行到break也会直接结束整个for循环
for循环体代码中如果执行到continue也会结束当前循环直接开始下一次循环
for 变量名 in 待遍历的数据:
for循环体代码
else:
for循环体代码没有被break强制结束的情况下运行完毕之后 运行 # 没有break 等循环结束 自然运行
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中
range()
直接产生一个列表 内部含有多个数值
# range(100) 在python2中 会打印出1-99全部数字 会占空间
xrange()
其实就是python3里面的range
在python3中
range()
类似于一个工厂 不会占用太多的内存空间 要就生产
"""
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
编写代码产生博客园文章前两百页的网址
'''
分页的规律 不同的网址有所区别
1.在网址里面有规律
2.内部js文件动态加载
'''
作业
计算1-100所有的数之和
num = 0 # 定义变量 初始值为0
for i in range(1, 101): # range执行后面数值会取值少一个
num += i
# num = + i 第一次num = + i(i代表1 做for循环)=1
# num = + i 第二次num = + i(i代表2 num此时为1)=3
print(num) # 打印输出结果
# 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]
n = 0 # 定义一个次数
for i in l1: # for循环 取l1里面所有的值
print(i)
if i == 2: # 判断 取到的值是否为2
n += 1 # 如果是 次数+1
print(n)
3.编写代码自动生成所有页网址(注意总共多少页)
num = 0 # 定义一个初始次数
base_utl = 'https://movie.douban.com/top250?start=%s&filter=' # 定义网址名
for i in range(0, 250, 25): # for 循坏 数值空20
num += 1 # 循环一次 次数+1
print(base_utl % i)
print(num)
# 4.编写代码打印出下列图形(ps:for循环嵌套)
# *****
# *****
# *****
# *****
for i in range(4): # for循环4次
for i in range(5): # for循环5次
print('*', end='') # 没有end'' 自动换行
print()
标签:
留言评论