【python基础】第08回 流程控制 for循环
本章内容概要
1.循环结构之 for 循环
本章内容详解
1.循环结构之for循环
1.1 语法结构
for 变量名 in 可迭代对象: #字符串 列表 字典 元组
for 循环的循环体代码
针对变量名的命名 如果带取值的数据有明确的指向 最好见明知意
例:
form name in 学习姓名名单
for addr in 地址信息
如果没有明确的指向 可以使用常见的字母
i j k item v ....
用 while 和 for 循环打印 l1 = ['a', 'b', 'c', 'd']
whlie:
x = 0 # 定义 x 初始值为0
while x < 4: # x < 4 取 0 1 2 3
print(l1[x]) # 索引取值
x += 1 # 循环x值加一
for:
for i in l1: # 变量名 i 从l1依次取值
print(i) # 打印i
比较两者代码 在取值中 for 比 while 更简洁
1.for 循环 字典
user_dict = {'username': 'zhang', 'password': 123, 'age': 12}
for i in user_dict:
print(i)
从结果可以看出 for 循环字典 默认只能取到字典的key
2.for 循环 字符串
x = 'hello 你好'
for i in x:
print(i)
从结果可以看出 for 循环字符出串 默认每次取单个字符
3.for 循环 元组
x = (11, 22, 33, 44)
for i in x:
print(i)
从结果可以看出 for 循环元组数据与列表一致 默认都是单个数据值
4.for 循环 集合
x = {1, 2, 3, 4}
for i in x:
print(i)
从结果可以看出 for 循环集合数据与列表一致 默认都是单个数据值
如上图 for 循环 集合打印出结果是乱序的,为什么???
因为字典,集合本身就是无序的,打印出结果,这个排序都是随机的,没有规律可言,只不过字典编程工具为了便于我们查看 一般会给你弄个顺序
1.2 for重要知识 range
range 方法
range可以看成是一个能够帮助我们快速产生一个包含多个数据值的列表
1.如果括号内只有一个数字 那么就是从0开始到数字减一结束(顾头不顾尾 左包含右不包含)
for i in range(5):
print(i)
2.括号内有两个数字 第一个是起止位置(包含) 第二个是终止位置(不包含)
for i in range(3, 7):
print(i)
3.括号内有三个数字 最后一个是数据间隔符(等差数列)
for i in range(2, 30, 5):
print(i)
在python2中有两个
range()
直接产生一个列表 当数据量很大的时候可能会造成内存溢出(爆满)
xrange()
其实就是python3里面的range方法
在python3中只有一个
range()
类似于是一个工厂 什么时候要什么时候创建给你 节省内存
1.3 range方法实操
网络爬虫:python代码模拟网络请求获取数据
很多网址的数据都不止一页 所以有时候需要通过代码模拟
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, 101):
print(url % i)
1.4 for + break
break也能够结束所在的那一层for循环
# 1-10 7结束
for i in range(1,11):
if i == 7:
break
print(i)
1.5 for + continue
continue也能够结束所在的那一次for循环 直接开始下一次
# 1-6 4跳过
for i in range(1, 6):
if i == 4:
continue
print(i)
1.6 for + else
else配合for一起使用 当for循环没有被强制结束的情况下 循环体结束之后运行else子代码
for i in range(10):
print(i)
if i == 5:
break
else:
print('我什么时候执行')
作业
1.计算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]
x = 0
for i in l1:
if i == 2:
x += 1
print(x)
3.编写代码自动生成所有页网址,https://movie.douban.com/top250
url = 'https://movie.douban.com/top250?start=%s&filter='
for i in range(0, 250, 25):
print(url % i)
4.编写代码打印出下列图形(ps:for循环嵌套)
for i in range(4):
for j in range(5):
print('*', end='')
print()
【python基础】第08回 流程控制 for循环的更多相关文章
- 046 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 08 for循环的注意事项
046 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 08 for循环的注意事项 本文知识点:for循环的注意事项 for循环的注意事项 for循环有3个 ...
- 051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试——debug入门1
051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试--debug入门1 本文知识点: 程序调试--debug入门1 程序 ...
- 053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结
053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结 本文知识点: 流程控制知识总结 流程控制知识总结 选择结构语句 循环结构语句 ...
- 052 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 14 Eclipse下程序调试——debug2 多断点调试程序
052 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 14 Eclipse下程序调试--debug2 多断点调试程序 本文知识点: Eclipse下程序调 ...
- 050 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 12 continue语句
050 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 12 continue语句 本文知识点:continue语句 continue语句 continue ...
- 049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句
049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句 本文知识点:break语句 break语句 break语句前情回顾 1.swi ...
- 048 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 10 案例——阶乘的累加和
048 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 10 案例--阶乘的累加和 本文知识点:通过案例练习嵌套循环应用 案例练习--阶乘的累加和 案例题目 ...
- 047 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 09 嵌套while循环应用
047 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 09 嵌套while循环应用 本文知识点:嵌套while循环应用 什么是循环嵌套? 什么是循环嵌套? ...
- 045 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 07 for循环应用及局部变量作用范围
045 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 07 for循环应用及局部变量作用范围 本文知识点:for循环应用及局部变量作用范围 for循环 w ...
随机推荐
- JavaScript学习总结6-apply
JS中的apply方法可以控制this指向 任何JS支持的类型都可以转化为JSON JS对象是键值对型的,JSON是字符串型的 原型对象:__proto__ JS万物皆对象,ES6开始提供了对后端开发 ...
- python中常用内置函数和关键词
Python 常用内置函数如下: Python 解释器内置了很多函数和类型,您可以在任何时候使用它们.以下按字母表顺序列出它们. 1. abs()函数 返回数字的绝对值. print( abs(-45 ...
- Python小游戏——猜数字
1 print("--------------我爱鱼-----------") 2 temp = input("不妨猜一下甲鱼现在心里想的是哪个数字:") 3 ...
- [Vue]写一个简单的文件上传控件
这篇将介绍如何写一个简单的基于Vue+Element的文件上传控件. 控件将具有 1. 上传队列的列表,显示文件名称,大小等信息,可以显示上传进度实时刷新 2. 取消上传 使用Element的u ...
- 【面试普通人VS高手系列】b树和b+树的理解
数据结构与算法问题,困扰了无数的小伙伴. 很多小伙伴对数据结构与算法的认知有一个误区,认为工作中没有用到,为什么面试要问,问了能解决实际问题? 图灵奖获得者: Niklaus Wirth 说过: 程序 ...
- Golang Zap日志
Zap日志解析 Config.yaml zap: level: 'info' #日志级别 format: 'console' #输出的级别,有console和json prefix: '[cateri ...
- prometheus监控预警之AlertManager邮箱报警
Alertmanager 主要用于接收 Prometheus 发送的告警信息,它支持丰富的告警通知渠道,例如邮件.微信.钉钉.Slack 等常用沟通工具,而且很容易做到告警信息进行去重,降噪,分组等, ...
- PowerDotNet平台化软件架构设计与实现系列(13):应用监控平台
本文再写一篇和具体业务逻辑几乎无关的公共服务应用监控平台.PowerDotNet自研的应用监控平台系统,是服务治理的重要拼图,和服务治理平台配合使用效果更好. 监控开源产品非常丰富,站在巨人的肩膀上, ...
- Java中 equals和==的区分, new Integer和 非new的区别
浅谈 equals 和 == ,new出的Integer和非new出的Integer 首先我们要知道在 == 比较的是内存地址值(不包括8种基本数据类型) equals比较的是两个值(内容)是否相同. ...
- 浏览器获取京东cookie
电脑浏览器打开京东网址 https://m.jd.com/ 按键盘F12键打开开发者工具,然后点下图中的图标 此时是未登录状态(使用手机短信验证码登录),如已登录请忽略此步骤 使用手机短信验证码登录( ...