文章目录

  • 1.前言
  • 2.for结构
  • 3.for in range()
    • 3.1.range(start, stop)
    • 3.2.range(stop)
    • 3.3.range(start, stop,step)
  • 4.集合类型
    • 4.1.tuple 类型
    • 4.2.dictionary 类型
    • 4.3.set 类型
    • 4.4.迭代器
    • 4.5.生成器

1.前言

在上节中我们学习了 while 语句进行循环控制,接下来我们将要学习另一种循环语句 for 。

2.for结构

不同编程语言都有 for 语言,比如 C# 语言中的 foreach, Java 语言中的 for,在 Python 中的基本使用方法如下。

for item in sequence:expressions

sequence 为可迭代的对象,item 为序列中的每个对象。

example = [11,22,33,44,55,99,88,77,66]
for i in example:print(i)
#输出
11
22
33
44
55
99
88
77
66

输出的结果为 11,22,33,44,55,99,88,77,66内容依次为 example中的每一个元素 注意 Python 是使用缩进表示程序的结构,如果程序这样编写,

example = [11,22,33,44,55,99,88,77,66]
for i in example:print(i)print("in for")
print("out for")#输出
11
in for
22
in for
33
in for
44
in for
55
in for
99
in for
88
in for
77
in for
66
in for
out for

那么每次循环都会输出 in for,在循环结束后,输出 out for 一次。

3.for in range()

在 Python 内置了工厂函数,range 函数将会返回一个序列,总共有三种使用方法

3.1.range(start, stop)

其中 start 将会是序列的起始值,stop为结束值,但是不包括该值,类似 数学中的表达 [start, stop),左边为闭区间,右边为开区间。

for i in range(1, 10):print(i)

上述表达将会返回 1-9 所有整数,但不包含 10

3.2.range(stop)

如果省略了 start 那么将从 0 开始,相当于 range(0, stop)

3.3.range(start, stop,step)

step 代表的为步长,即相隔的两个值得差值。从 start 开始,依次增加 step 的值,直至等于或者大于 stop

for i in range(0,10, 2):print(i)

将会输出 0, 2, 4,6,8。

4.集合类型

Python 共内置了 list、 tuple 、dict 和 set 四种基本集合,每个 集合对象都能够迭代。

4.1.tuple 类型

tuple = ('python',3.7,64)
for i in tuple:print(i)#输出
python
3.7
64

程序将以此按行输出 ‘python’, 3.7 和 64。

4.2.dictionary 类型

dic = {}
dic['language'] = 'python'
dic['version'] = 3.7
dic['platform'] = 64
for key in dic:print(key, dic[key])#输出
language python
version 3.7
platform 64

字典在迭代的过程 中将 key 作为可迭代的对象返回。注意字典中 key 是乱序的,也就是说和插入 的顺序是不一致的。如果想要使用顺序一致的字典,请使用 collections 模块 中的 OrderedDict 对象

4.3.set 类型

s = set(['python','python2','python','python3'])
for i in s:print(i)#输出
python3
python2
python

将会输出 python, python3, python2 set 集合将会去除重复项,注意输出的 结果也不是按照输入的顺序。

4.4.迭代器

Python 中的 for 句法实际上实现了设计模式中的迭代器模式 ,所以我们自己也可以按照迭代器的要求自己生成迭代器对象,以便在 for 语句中使用。 只要类中实现了 iter 和 next 函数,那么对象就可以在 for 语句中使用。 现在创建 Fibonacci 迭代器对象

class Fib(object):def __init__(self, max):self.max = maxself.n, self.a, self.b = 0,0,1def __iter__(self):return selfdef __next__(self):if self.n < self.max:r = self.bself.a, self.b = self.b, self.a + self.bself.n = self.n + 1return rraise StopIteration()
for i in Fib(5):print(i)#输出
1
1
2
3
5

将会输出前 5 个 Fibonacci 数据 1,1, 2, 3, 5

4.5.生成器

除了使用迭代器以外,Python 使用 yield 关键字也能实现类似迭代的效果,yield 语句每次 执行时,立即返回结果给上层调用者,而当前的状态仍然保留,以便迭代器下一次循环调用。这样做的 好处是在于节约硬件资源,在需要的时候才会执行,并且每次只执行一次。

def fib(max):a,b = 0,1while max:r = ba, b = b, a+bmax -= 1yield r
for i in fib(5):print(i)#输出
1
1
2
3
5

将会输出前 5 个 Fibonacci 数据 1,1, 2, 3, 5

Python基础——for循环语句相关推荐

  1. Python基础之循环语句

    Python基础之循环语句 一.循环语句介绍 1.循环语句理解 2.循环语句示意图 二.循环语句的分类 三.循环控制语句 四.while循环 1.while死循环 2.while条件循环 五.brea ...

  2. python基础:循环语句

    循环语句就是在符合条件的情况下,重复执行一个代码段,python中的循环语句有while和for. 一.while循环 1.while是一个条件循环语句,与if一样,他也有条件表达式.如果条件为真,w ...

  3. Python基础-----while循环语句

    while循环语句会执行条件成立下的代码块,同样需要注意缩进与冒号. 1 #!/usr/bin/env python 3 2 # -*- coding:utf-8 -*- 3 4 #1.基本的whil ...

  4. Python基础之循环语句自学笔记(一)

    一.循环语句及基础知识学习(实例) (1)if ..elif..else 例子:使用if..elif..else写一个简单的计算BMI的程序 weight = input('请输入你的体重()千克-- ...

  5. Python基础——while循环语句

    文章目录 1.前言 2.while结构 3.while常接判断类型 3.1.数字 3.2.None 3.3.集合类型 1.前言 在 Python 语言中用来控制循环的主要有两个句法,while 和 f ...

  6. python基础:循环语句的数学运用

    例 例一 代码 运行结果 例二 代码 运行结果 例三 代码 运行结果 例四 代码 运行结果 例五 代码 运行结果 例六 代码 运行结果 例七 代码 运行结果 例八 代码 运行结果 例九 例一 代码 i ...

  7. python中for循环语句格式_Python基础-10循环语句

    Python Python开发 Python语言 Python基础-10循环语句 10.循环语句 对于循环语句,Python仅提供了while和for两个,并未像其他编程语言一样提供for...eac ...

  8. python循环语句画图_Python基础之循环语句用法示例【for、while循环】

    本文实例讲述了Python基础之循环语句用法.分享给大家供大家参考,具体如下: while 循环 Python中while语句的一般形式: while 判断条件: statements 同样需要注意冒 ...

  9. python基础——while循环(九九乘法表,阶乘计算器,三角形图案打印输出)

    python基础--while循环(九九乘法表,阶乘计算器,三角形图案打印输出) 一.目的 本人最近在学习python的基础语法,此文章用来记录学习过程所用,本文章讲述的是while循环的一些基础实例 ...

最新文章

  1. php 自动返回,PHP实现自动识别Restful API的返回内容类型
  2. -gMIS持续优化更新, +InSiteSearch站内搜索
  3. 成功解决AttributeError: module 'numpy' has no attribute 'equal'
  4. 463. Island Perimeter 岛屿的周长
  5. ubuntu 启动图形界面命令_Windows 10 远程连接 Ubuntu 18.04 Server图形界面
  6. GIT的初步使用记录
  7. Axure电脑web端通用元件库rplib文件格式+移动端app通用元件库rplib文件格式(内含使用教程)
  8. 关于/etc/init.d/nfs脚本解读中的疑问解答
  9. java判断浏览器类型_判断浏览器类型
  10. 第七次全国人口普查公报[1](第六号) ——人口受教育情况
  11. 上海python数据分析_python数据分析项目——链家上海二手房数据分析(一)
  12. 离散傅里叶变换到Z变换及收敛域分析-DTFT到ZT
  13. 5月18日第壹简报,星期三,农历四月十八
  14. 关于屏保设置不生效时要了解的几个小技巧!
  15. 【CXY】JAVA基础 之 Collection
  16. BS EN 438-5装饰用薄板材层压板材的分类和规范
  17. win11任务栏图标闪烁|任务栏QQ图标闪动|新消息任务栏自动弹出|设置自动隐藏任务栏之后,QQ或微信等工具新消息自动弹出任务栏并颜色提示问题解决方案
  18. linux安装搜狗中文,Ubuntu 17.04 安装搜狗中文输入法
  19. Data Oriented Analysis Design
  20. 初识Foxtable

热门文章

  1. linux物理网卡地址没有,Linux更改网卡物理地址
  2. java解压缩和shell_shell 文件的归档和压缩
  3. mysql建立数据库需要注意什么_创建数据库的语句是什么 MySQL数据库使用教程
  4. 修改android的wifi客户端名称的两种方法
  5. Kubernetes学习笔记(一):Kubernetes-1.7.x 创建TLS证书和秘钥
  6. oracle 11G创建表空间、用户、配置监听和TNS
  7. 微型计算机d3000,13级仪表微机重点教程.doc
  8. c 复杂的前置后置面试题_练一练!3道经典嵌入式C 面试题,答案在文末
  9. 计算机信息处理技术的基础知识列举出一些易错易混淆知识点,计算机考证实训报告指导书.doc...
  10. mysql switch binlog_TiDB binlog实时同步数据到下游Kafka