python-for循环

一、功能

  for 循环提供了python中最强大的循环结构(for循环是一种迭代循环机制,而while循环是条件循环,迭代即重复相同的逻辑操作,每次操作都是基于上一次的结果,而进行的)

  Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。

二、语法

  for循环的一般格式如下:

  for iter_var in iterable:

    suite_to_repeat

注解:每次循环, iter_var 迭代变量被设置为可迭代对象(序列, 迭代器, 或者是其他支持迭代的对 象)的当前元素, 提供给 suite_to_repeat 语句块使用.

python for循环实例

msg="hello egon 666"
for i in (msg):print(i)
for循环,利用索引遍历出每一个字符

执行结果如下

C:\Python36\python.exe C:/Users/张宁阳/Desktop/test/day7/作业.py
h
e
l
l
oe
g
o
n6
6
6Process finished with exit code 0
View Code
遍历序列类型
name_list=['alex','eric','rain','xxx']#通过序列项迭代
for i in name_list:print(i)#通过序列索引迭代
for i in range(len(name_list)):print('index is %s,name is %s' %(i,name_list[i]))#基于enumerate的项和索引
for i,name in enumerate(name_list,2):print('index is %s,name is %s' %(i,name))
for循环遍历序列

遍历可迭代对象或迭代器:

迭代对象:就是一个具有next()方法的对象,obj.next()每执行一次,返回一行内容所有内容迭代完后,

迭代器引发一 个 StopIteration 异常告诉程序循环结束. for 语句在内部调用 next() 并捕获异常.

for循环遍历迭代器或可迭代对象与遍历序列的方法并无二致,只是在内部做了调用迭代器next(),并捕获异常,终止循环的操作

很多时候你根本无法区分for循环的是序列对象还是迭代器 

>>> f=open('a.txt','r')for i in f:print(i.strip())
hello
everyone
sb

三、range()函数

如果你需要遍历数字序列,可以使用内置range()函数。它会生成数列。

range()语法:

range(start,end,step=1):顾头不顾尾

  • range(10):默认step=1,start=0,生成可迭代对象,包含[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  • range(1,10):指定start=1,end=10,默认step=1,生成可迭代对象,包含[1, 2, 3, 4, 5, 6, 7, 8, 9]
  • range(1,10,2):指定start=1,end=10,step=2,生成可迭代对象,包含[1, 3, 5, 7, 9]

例如:

>>>for i in range(5):
...     print(i)
...
0
1
2
3
4

注:for基于range()实现计数循环,range()生成可迭代对象,说明for循环本质还是一种迭代循环

你也可以使用range指定区间的值:

>>>for i in range(5,9) :print(i)5
6
7
8
>>>

您可以结合range()和len()函数以遍历一个序列的索引,如下所示:

>>>a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ']
>>> for i in range(len(a)):
...     print(i, a[i])
... 
0 Google
1 Baidu
2 Runoob
3 Taobao
4 QQ
>>>
View Code

四、for与break,continue,else

同while

#break
#continuefor i in range(10):if i == 4:# breakcontinueprint(i)for+else
for i in range(10):print(i)break
else:print('===>')
break、continue

五、实例

九九乘法表

for i in range(1,10):for j in range(1,i+1):print("%d*%d=%d" % (j, i, i * j), end=' ')print(' ')
albums = ('Poe', 'Gaudi', 'Freud', 'Poe2')
years = (1976, 1987, 1990, 2003)#sorted:排序
for album in sorted(albums):print(album)#reversed:翻转
for album in reversed(albums):print(album)#enumerate:返回项和
for i in enumerate(albums):print(i)
#zip:组合
for i in zip(albums,years):print(i)
复制代码

六、小结

  • for循环为迭代循环
  • 可遍历序列成员(字符串,列表,元组)
  • 可遍历任何可迭代对象(字典,文件等)
  • 可以用在列表解析和生成器表达式中
  • break,continue,else在for中用法与while中一致

转载于:https://www.cnblogs.com/zhangningyang/p/7217259.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252253.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

KindEditor

1、进入官网 2、下载 官网下载:http://kindeditor.net/down.php 3、文件夹说明 ├── asp asp示例 ├── asp.net asp.net示例 ├── attached 空文件夹,放置关联文件attached ├── …

使用realsense t265测试svo2.0视觉里程计

毕业三年了,现在是第二份工作,第一份工作已经结束一年半了,这意味着,我有一年半的时间没有搞视觉SLAM相关的东西了,虽然在第二份工作也是做视觉相关的,但是只是用到一些目标识别和跟踪的知识,并…

面试必问之JVM原理

1:什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令…

InfluxDB学习之InfluxDB的基本操作

InfluxDB提供类SQL语法,如果熟悉SQL的话会非常容易上手。本文就为大家介绍一下InfluxDB的基本操作。 InfluxDB提供类SQL语法,如果熟悉SQL的话会非常容易上手。 一、InfluxDB操作方式 InfluxDB提供三种操作方式: 1)客户端命令行方式…

DOS Network一月项目月报

欢迎大家阅读DOS Network第一期项目月报!DOS为了跟大家更好的沟通和交流,将在每个月为大家跟进DOS Network项目进展月报。月报主要分为项目研发和社区及营销两个部分。 如果你是刚认识DOS Network预言机网络的新朋友,欢迎查阅往期文章&#x…

lsof详解

from:https://www.cnblogs.com/the-study-of-linux/p/5501593.html lsof (list open files)是一个列出当前系统打开文件的工具。在linux系统环境下,任何事物都可以以文件形式存在,通过文件不仅可以访问常规的数据,还可以访问网络连接和硬件。…

ros rviz显示rosbag中的图像和imu数据

一、rosbag相关的指令 1. rostopic list //列举出系统中正在发布的ros 话题 2. rosbag record -a //录制系统中所有正在发布的ros 话题 3. rosbag record topic1 topic2 .... -o bagname.bag 4. rosbag play bagname.bag //播放bag文件 5. rosbag info bagname.bag //查看…

day1||python

测试题: 0. Python 是什么类型的语言? Python是一种面向对象、解释型、动态类型计算机程序设计语言解释型:程序无需编译成二进制代码,而是在执行时对语句一条一条编译动态类型:在程序执行过程中,可以改变变…

2.7万字还原行业面貌,《2019 AI金融风控行业研究报告》正式上线!...

在金融科技领域,风险控制的重要性,从其关联的金融业务和结合的技术维度可见一斑:风控涉及信用借贷、保险、支付、供应链金融等场景,并运用了包括生物特征识别、机器学习、自然语言处理、大数据、云计算等多项技术。 区别于美国有…

cs堡垒机使用说明

一、堡垒机介绍 为了保证机房的网络安全,IDC内所有服务器不被允许从办公网直接ssh登录,必须通过跳板机进行间接登录。用户通过跳板机执行的所有命令(包括通过跳板机登录的其他机器后的命令)都会被保存并审计。 cs是我们登录IDC服…

koa中间件机制详解

转自:https://cnodejs.org/topic/58fd8ec7523b9d0956dad945 koa是由express原班人马打造的一个更小、更富有表现力、更健壮的web框架。 在我眼中,koa的确是比express轻量的多,koa给我的感觉更像是一个中间件框架,koa只是一个基础的…

如何构建一个真实的推荐系统?

AI 前线导读:随着互联网行业的井喷式发展,数据规模呈现爆炸式增长。大数据中蕴含了巨大的价值,但同时也来了很 “信息过载” 的问题。推荐系统作为一个广泛应用的信息过滤系统,在很多领域取得了巨大的成功。在电子商务上&#xff…

volatile的适用场景

介绍 把代码块声明为 synchronized,有两个重要后果,通常是指该代码具有 原子性(atomicity)和 可见性(visibility)。 原子性意味着个时刻,只有一个线程能够执行一段代码,这段代码通过…

C#如何测试代码运行时间

第一种方式:System.Diagnostics.Stopwatch stopwatch new Stopwatch(); stopwatch.Start(); // 开始监视代码运行时间 // 需要测试的代码 .... stopwatch.Stop(); // 停止监视 TimeSpan timespan stopwatch.Elapsed; // 获取当前实例测量得出的总时间 double …

第二十二章:动画(六)

复合动画您可以混合等待和未等待的调用来创建复合动画。 例如,假设您希望按钮在大小扩展的同时旋转360度然后收缩。ViewExtensions类定义一个方法名称ScaleTo,它为Scale属性设置动画,就像RotateTo为Rotate属性设置动画一样。 Button大小的扩展…

ubantu之Git使用

本文讲述在Ubuntu 14.04 x64环境下,如何安装Git,配置连接GitHub,并且上传本地代码到github。 一. 注册Git账户以及创建仓库 要想使用github第一步当然是注册github账号了。之后就可以创建仓库了(免费用户只能建公共仓库&#xff0…

C#如何打包EXE程序生成setup安装文件

C#如何打包EXE程序生成setup安装文件作为研发人员,在本机上开发的winform wpf或者控制台程序需要发给其他人测试时候,一般需要对其进行打包生成setup安装文件,今天第一次,搜了下资料,记录如下:注&#xff1…

最具戏剧性的分析诊断案例——十分钟锁定数据库性能“元凶”

昨天,正好有点空时间想看看书,结果,刚打开书,没看几个字儿,接到用户电话说:一个库有问题,希望能帮忙看下。因为我知道他们那边也有自己的专职DBA,于是问:没让人给看看吗&…

Python黑科技:在家远程遥控公司电脑,python+微信一键连接!

有时候需要远程家里的台式机使用,因为我平时都是用 MAC 多,但是远程唤醒只能针对局域网,比较麻烦,于是我想用微信实现远程唤醒机器。 *注意:全文代码可左右滑动查看 准备工作 本程序主要是实现远程管理 Windows10操作系…

c#通过app.manifest使程序以管理员身份运行

通常我们使用c#编写的程序不会弹出这个提示,也就无法以管理员身分运行。微软的操作系统使用微软的产品方法当然是有的,通过app.manifest配置可以使程序打开的时候,弹出UAC提示需要得到允许才可以继续,这样就获得了管理员的权限来执…