【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 ...
随机推荐
- js逆向之AES加密
故事背景: 在获取某网站接口数据时,发现其请求的 headers 中的参数 使用了 AES算法加密 ,并对其进行校验,在此简单记录下自己的踩坑历程. AES简介: 高级加密标准(AES,Advance ...
- 巧用 JuiceFS Sync 命令跨云迁移和同步数据
近年来,云计算已成为主流,企业从自身利益出发,或是不愿意被单一云服务商锁定,或是业务和数据冗余,或是出于成本优化考虑,会尝试将部分或者全部业务从线下机房迁移到云或者从一个云平台迁移到另一个云平台,业务 ...
- 背包问题dp的初步总结
背包问题 01背包 给定的物体只有0个和1个,只有选与不选的划分,其状态转移方程时由i-1行推出,所以第二层循环是由j=m,递减到v[i]的. for(int i=1;i<=n;i++){ fo ...
- 【面试普通人VS高手系列】b树和b+树的理解
数据结构与算法问题,困扰了无数的小伙伴. 很多小伙伴对数据结构与算法的认知有一个误区,认为工作中没有用到,为什么面试要问,问了能解决实际问题? 图灵奖获得者: Niklaus Wirth 说过: 程序 ...
- 新华三Gen10服务器ILO 5 安装中文语言包
ILO 5 安装中文语言包 在官网下载语言包文件,并解压 选择firmware&OS software,点击右侧的update firmware 选择本地文件,浏览到语言包里面的lpk文件,点 ...
- Prim 最小生成树 图解
什么是生成树 子图:G=<V,E>,G'=<V', E'>,为两个图(V为点集,即图中点的集合,E为边集),如果V'是V的子集且E'是E的子集,则G'是G的子图. 如果V' ...
- 工程师姓什么很重要!别再叫我“X工”!!!
关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 工程师之间都是这么互相打招呼的-- "高工,你设计图通过了么?" &quo ...
- .NetCore Hangfire任务计划
安装Hangfire 新建ASP.NET Core空 项目,.Net Core版本3.1 往*.csproj添加包引用,添加新的PackageReference标记.如下所示.请注意,下面代码段中的版 ...
- 北航内核操作系统-lab0
1.lab0环境介绍. 2.进入实验界面. 3.进入实战测试. 任务要求: 3.1编写斐波那契数列. 3.2编写Makefile脚本. Makefile介绍: make命令执行时,需要一个 Makef ...
- 北航内核操作系统-lab1
1.实验目的. 2.实验内容. 2.1Exercise 1.1 请修改 include.mk 文件,使交叉编译器的路径正确.之后执行 make指令,如果配置一切正确,则会在gxemul 目录下生成v ...