Python学习(8)--for循环

简介: Python学习(8)--for循环 1.for循环 当我们需要重复去执行一个操作序列时,常常就需要用到for循环,循环的次数由判断条件决定,当判断条件返回false时,判断终止,循环结束.以下是python中的for循环结构: 以上代码就是一个for循环,其中x是迭代变量,在循环过程中序列会.

Python学习(8)--for循环

1.for循环

当我们需要重复去执行一个操作序列时,常常就需要用到for循环,循环的次数由判断条件决定,当判断条件返回false时,判断终止,循环结束.以下是python中的for循环结构:

以上代码就是一个for循环,其中x是迭代变量,在循环过程中序列会将每一个元素赋给x然后打印出来,for循环执行过程中的代码段与if语句中执行的代码段一样,都是需要有一个Tab缩进符,以表示此语句属于for循环代码段,当循环迭代把序列中的每一个元素都遍历完成后,循环就结束了,以下是代码执行结果:

2.range函数

当我们使用for循环的时候,常常需要做的是控制for循环的次数,比如我们做从1到100的相加运算,需要做100次的加操作,相应的需要循环100次,难道我们要创建一个值为1到100的序列,然后把他们相加吗?这样做不仅繁琐,而且容易出错.python为我们提供了一个生成序列的函数,就是range()函数,比如range(100),python会为我们创建一个长度为100,值从0~99的一个序列,如果我们想让1~100的数相加求和,只需要range(101),然后for循环,让0~100的数相加求和即可.代码如下:

[python] view plain copy

  1. a=range(10)
  2. print(a[0])
  3. print(a[1])
  4. print(a[2])
  5. print(a[3])
  6. print(a[4])
  7. print(a[5])
  8. print(a[6])
  9. print(a[7])
  10. print(a[8])
  11. print(a[9])

运行结果如下:

可以看到我们通过range(10),创建了一个长度为10,值依次为0~9序列,在编程中,如果我们想控制for循环的循环次数,用这样的方法无疑事半功倍.以下是一个用range函数控制循环次数的例子:

[python] view plain copy

  1. for x in range(10):
  2.     print(x,"hello world")

打印结果如下:

3.range函数的拓展功能

range()函数实际上可以使用三个参数来创建序列,即range(i,j,N),在python3中如果这三个参数都写,则会创建一个长度为j-i,步长为N的序列,i和j分别指定了序列的初始值和终止值,这个序列的下标是从0~j-i-1,元素为i~j-1,一共j-i个元素,N为步长,在这里我们又提到了步长这个概念,这个步长的含义其实和之前的步长是一致的,即每间隔N-1个序列元素取一个元素,来作为新序列的元素.代码如下:

[python] view plain copy

  1. a=range(2,10,2)
  2. for x in range(2,10,2):
  3.     print(x)

 

如上代码,a=range(2,10,2),我们开始创建了一个长度为8,值为2~9的一个序列,即创建出来的临时序列值为:2,3,4,5,6,7,8,9.由于步长为2,每隔一个元素值取一个,获取到2,4,6,8,所以序列的最终元素值为2,4,6,8.长度为4.最终为a[0]=2,a[1]=4,a[2]=6,a[3]=8,程序结果最后如下:

需要的注意的是,range()函数只能创建元素为整数的序列.

4.通过下标迭代列表

当我们需要迭代一个序列的时候可以像下面的代码这样做:

[python] view plain copy

  1. s=["H",'e','l','l','o']
  2. for x in s:
  3.    print(x)

即把序列中的每一个元素赋值给一个临时的迭代变量,然后对迭代变量进行操作.但是这样做不够灵活,可能有时候我们只需要迭代其中几个元素,比如我们想迭代下标为偶数的元素,这种情况下,我们可以通过下标来迭代序列.

无论是通过迭代变量,还是下标来迭代序列,我们需要知道的是,迭代的次数都是一样的,那就是序列的长度有多长就迭代多少次,序列长度为len(s),range(len(s))创建的序列就是序列s的下标序列,代码如下:

[python] view plain copy

  1. s=["H",'e','l','l','o']
  2. for x in range(len(s)):
  3.     if x%2==0:
  4.         print(s[x])

如程序所示,range(len(s))就是s的下标序列[0,1,2,3,4],s[x]对应的就是迭代得到的每个元素值,通过条件判断表达式x%2==0,就能获取到下标为偶数的下标值,打印结果如下:

5.for循环迭代字典

之前我们提到字典是不属于序列的,因为字典是无序的键值对,其实我们可以把字典转化为序列后再迭代遍历,这时候就用到了字典的一个函数,items(),代码如下:

[python] view plain copy

  1. d1={'name':'lisi','age':12,'sex':'man'}
  2. print(d1.items())

结果如下图:

如上代码,通过字典的items()方法,创建了一个列表序列,其中每个元素又是一个元组序列,之前我们学过用元组为变量赋值,如下代码:

[python] view plain copy

  1. k,v= ('age'12)
  2. print(k)
  3. print(v)

结果如下图:

如上代码就是将元组('age',12)的值依次赋值给k,v,在遍历以元组作为元素的列表的时候,也用到了这个小技巧,如下代码所示:

[python] view plain copy

  1. d1={'name':'lisi','age':12,'sex':'man'}
  2. for k,v in d1.items():
  3.     print(k,v)

运行结果如下:

如上代码所示,对字典的items()方法创建的列表元素进行迭代,取出每一个字典元素后,用之前的小技巧,将其赋值给临时迭代变量k,v后,并打印.

最近课设很多,研究生这学期也过了一大半,感觉对模式识别,图像处理这方面还没入门,要学的东西还很多,继续努力吧,北工大菜鸟.

原文地址http://www.bieryun.com/2308.html

相关文章
|
2月前
|
机器学习/深度学习 Python
堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能
本文深入探讨了堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能。文章详细介绍了堆叠的实现步骤,包括数据准备、基础模型训练、新训练集构建及元学习器训练,并讨论了其优缺点。
82 3
|
2月前
|
安全 关系型数据库 测试技术
学习Python Web开发的安全测试需要具备哪些知识?
学习Python Web开发的安全测试需要具备哪些知识?
40 4
|
23天前
|
Python 容器
Python学习的自我理解和想法(9)
这是我在B站跟随千锋教育学习Python的第9天,主要学习了赋值、浅拷贝和深拷贝的概念及其底层逻辑。由于开学时间紧张,内容较为简略,但希望能帮助理解这些重要概念。赋值是创建引用,浅拷贝创建新容器但元素仍引用原对象,深拷贝则创建完全独立的新对象。希望对大家有所帮助,欢迎讨论。
|
5天前
|
数据可视化 数据挖掘 大数据
1.1 学习Python操作Excel的必要性
学习Python操作Excel在当今数据驱动的商业环境中至关重要。Python能处理大规模数据集,突破Excel行数限制;提供丰富的库实现复杂数据分析和自动化任务,显著提高效率。掌握这项技能不仅能提升个人能力,还能为企业带来价值,减少人为错误,提高决策效率。推荐从基础语法、Excel操作库开始学习,逐步进阶到数据可视化和自动化报表系统。通过实际项目巩固知识,关注新技术,为职业发展奠定坚实基础。
|
14天前
|
Python
Python学习的自我理解和想法(10)
这是我在千锋教育B站课程学习Python的第10天笔记,主要学习了函数的相关知识。内容包括函数的定义、组成、命名、参数分类(必须参数、关键字参数、默认参数、不定长参数)及调用注意事项。由于开学时间有限,记录较为简略,望谅解。通过学习,我理解了函数可以封装常用功能,简化代码并便于维护。若有不当之处,欢迎指正。
|
25天前
|
存储 索引 Python
Python学习的自我理解和想法(6)
这是我在B站千锋教育学习Python的第6天笔记,主要学习了字典的使用方法,包括字典的基本概念、访问、修改、添加、删除元素,以及获取字典信息、遍历字典和合并字典等内容。开学后时间有限,内容较为简略,敬请谅解。
|
29天前
|
存储 程序员 Python
Python学习的自我理解和想法(2)
今日学习Python第二天,重点掌握字符串操作。内容涵盖字符串介绍、切片、长度统计、子串计数、大小写转换及查找位置等。通过B站黑马程序员课程跟随老师实践,非原创代码,旨在巩固基础知识与技能。
|
28天前
|
程序员 Python
Python学习的自我理解和想法(3)
这是学习Python第三天的内容总结,主要围绕字符串操作展开,包括字符串的提取、分割、合并、替换、判断、编码及格式化输出等,通过B站黑马程序员课程跟随老师实践,非原创代码。
|
25天前
|
Python
Python学习的自我理解和想法(7)
学的是b站的课程(千锋教育),跟老师写程序,不是自创的代码! 今天是学Python的第七天,学的内容是集合。开学了,时间不多,写得不多,见谅。
|
24天前
|
存储 安全 索引
Python学习的自我理解和想法(8)
这是我在B站千锋教育学习Python的第8天,主要内容是元组。元组是一种不可变的序列数据类型,用于存储一组有序的元素。本文介绍了元组的基本操作,包括创建、访问、合并、切片、遍历等,并总结了元组的主要特点,如不可变性、有序性和可作为字典的键。由于开学时间紧张,内容较为简略,望见谅。
下一篇
开通oss服务