写在之前

大家好,这里是零基础学习 Python 系列,在这里我将从最基本的Python 写起,然后再慢慢涉及到高阶以及具体应用方面。我是完全自学的 Python,所以很是明白自学对于一个人的考验,所以在这里我会尽我最大的努力,把 Python 尽可能简单的表述清楚,让更多想要学习 Python 的朋友能够入门。同时写这个教程也算是对自己之前所学知识的一个巩固和提高,喜欢的朋友们可以点个关注,有问题欢迎随时和我交流。本文所有的代码编写均是Python3 版本。

循环( loop )是生活中常见的现象,如每天的日升日落,斗转星移,都是循环,编程语言的出现就是为了解决现实中的问题,所以也少不了要循环。

for 循环

在这里我用一个例子来具体解析一下 for 循环:

>>> name = 'rocky'>>> for i in name:... print(i)... rocky

上述的例子就是实现的 for 循环,下面具体说一下它的运行过程:

name = ‘rocky’ 是赋值语句,实现了变量和字符串之间的引用关系。

for i in name:for 是发起循环的关键词;i in name 是 for 循环的规则,字符串类型的对象是序列类型,能够从左到右一个个的按照索引读出每个字符,于是变量 i 就按照索引顺序,从第一个字符开始,依次获得该字符的引用。

当 i = ‘r’ 的时候,开始执行 print(i) ,打印出字母 r;然后循环第 2 次,让 i = ‘o',执行 print(i),打印出字母 o...如此循环下去,直到最后一个字符被打印出来,循环自动结束。

因为可以通过使用索引得到序列对象的某个元素,所以还可以通过下面的循环方式实现相同的效果:

>>> for i in range(len(name)):... print(name[i])... rocky

我在之前的文章中讲过的诸如字符串,列表,元组,字典和集合等都可以用类似于上面的方式来循环,这里因为字典稍微特殊一点,我在这里说一下,其余的如果有兴趣可以自行尝试。

>>> my_dict = dict([('name','rocky'),('like','python'),('age',23)])>>> my_dict{'age': 23, 'name': 'rocky', 'like': 'python'}>>> for k in my_dict:... print(k)... agenamelike

上面的循环,其实就是读取了字典的 “键”,其实还有一个读取 “键” 的方式 -- dict.keys(),得到的字典的 “键” 组成的可迭代的对象。

>>> for k in my_dict.keys():... print(k)... agenamelike

除了获得 “键” 值外,当然还有获取 “值” 啦,获取值用 dict.values(),这个自己可以自行尝试一下。

还有一种方法可以以元组的方式返回键 / 值对,用的是 dict.items()。

>>> for k in my_dict.items():... print(k)... ('age', 23)('name', 'rocky')('like', 'python')

这里有一点要说明的是,for 循环应用的对象必须是可迭代的,如何判断一个对象是不是可迭代的,我们可以用 collection 这个标准库,具体使用如下:

>>> import collections>>> isinstance(1,collections.Iterable)False

当然我说这个的意思并不是要你在每次使用 for 循环之前,非要判断某个对象是否可迭代,因为在上面我说过了,for 循环可以用在字符串,列表,字典,元组和集合,你可以理直气壮的去用。

并行迭代

我提过多次 “迭代” 这个词,可以看出它在 Python 中占有重要的位置,其实 “迭代” 在 Python 中的表现就是 for 循环,从对象中获得一定数量的元素。在这里我们介绍一个方便的技巧,在使用迭代的时候,可以通过 zip() 函数对多个序列进行并行迭代。请看下面的例子:

>>> name = ['rocky','leey','zhangsan']>>> language = ['python','c++','java','c#']>>> names = ['rocky','leey','zhangsan']>>> languages = ['python','c++','java','c#']>>> for name,language in zip(names,languages): ... print(name,' like ',language)... ('rocky', ' like ', 'python')('leey', ' like ', 'c++')('zhangsan', ' like ', 'java')

zip() 在最短的序列用完的时候就会停止,上面的例子中列表 language 是最长的,所以我们无法填充列表。除非人工扩展其它列表。

列表解析

我们先来看一个小问题,求 1 ~ 9 每个整数的平方,并且将结果放在列表中打印出来。

>>> power = []>>> for i in range(1,10):... power.append(i*i)... >>> power[1, 4, 9, 16, 25, 36, 49, 64, 81]

Python 有一个非常强大的功能,就是列表解析,我们把上面的例子用列表解析写出来:

>>> power = [x ** 2 for x in range(1,10)] >>> power[1, 4, 9, 16, 25, 36, 49, 64, 81]

看到上面的结果,我就问你怕不怕?惊不惊?这就是 Python !追求简洁优雅的 Python !上面我写的代码,都能用列表解析来重写,感兴趣的可以试试。

写在最后

python for loop循环程序语句_零基础学习 Python 之 for 循环语句相关推荐

  1. python自学看不懂怎么办_零基础学习python但是基础教程一看到后面就开始看不懂了,怎么办?...

    廖大的教程看不懂不要担心,简明教程也看不下去也不要怕,世界上总有人基础比你好的,不过我们可以用笨办法来学习python. 0,先找一个python3版本的<笨办法学python>,从头看, ...

  2. 0基础学好python难不难_零基础学习Python难不难?Python有什么优势?

    原标题:零基础学习Python难不难?Python有什么优势? Python是一种计算机程序设计语言.首先,我们普及一下编程语言的基础知识.用任何编程语言来开发程序,都是为了让计算机干活,比如下载一个 ...

  3. 明日科技的python书籍怎么样_零基础学习Python不可错过的5本书籍

    3.Python基础教程(第3版) 作者:[挪]芒努斯·利·海特兰德(Magnus Lie Hetland) 出版社:人民邮电出版社 Python3.5编程从入门到实践,Python入门佳作,机器学习 ...

  4. python入门之函数调用第一关_零基础学习 Python 之与函数的初次相见

    写在之前 大家好,这是首发在我公众号「Python空间」的第 26 篇文章,欢迎关注. 大家好,这里是零基础学习 Python 系列,在这里我将从最基本的Python 写起,然后再慢慢涉及到高阶以及具 ...

  5. python数据参数_零基础学习python数据分析——函数的参数

    原标题:零基础学习python数据分析--函数的参数 上一节课中我们讲了python的函数定义,Python的函数定义非常简单,但灵活度却非常大.除了正常定义的必选参数外,还可以使用默认参数.可变参数 ...

  6. 零基础学习python入门书_零基础学习Python不可错过的5本书籍

    原标题:零基础学习Python不可错过的5本书籍 Python作为目前编程开发的主流语言之一,在企业中的应用范围越来越广,广阔的发展前景吸引了很多小伙伴想要入行Python,下面小U就为大家介绍一下零 ...

  7. python零基础书推荐_零基础学习Python(Python初学者、Python入门)常见问题:资料、社区、书籍推荐...

    Python web开发 QQ学习群:338985564 ,欢迎各位加入,一起学习. 本文针对零基础的,想学习Python者.本文会不定时更新. 一.学会使用搜索引擎,尤其是Google. 推荐阅读文 ...

  8. 自学python需要下载什么软件-一个零基础学习Python应该知道的学习步骤与规划

    原标题:一个零基础学习Python应该知道的学习步骤与规划 很多初学Python的同学都面临着很多的疑问,在之前的文章中我大致的很多问题我已经进行了讲解,无论你是编程零基础.数学,英语不错.还是说没有 ...

  9. 零基础可以学python吗-初学者必知:零基础学习Python真的能学会吗?

    零基础学习Python真的可以学习好吗?我想对于这个问题,是大部分想要学习Python的人都会纠结考虑的问题吧,也是很多小白最关注的的问题,今天为大家详细的解释一下. Python语言因为具有一定的独 ...

最新文章

  1. mongoose笔记
  2. 树莓派3 有线静态路由设置_配置树莓派为wifi热点(AP模式)
  3. Android类动态加载技术
  4. java exec 调用vbs_通过java调用VBS,再用VBS执行Excel中的宏的例子 | 学步园
  5. linux什么用户什么任务,Linux 用户
  6. 同时绑定onpropertychange 和 oninput 事件,实时检测 input、textarea输入改变事件,支持低版本IE,支持复制粘贴...
  7. extern 使用方法具体解释
  8. 一次项目测评反思:数据准备、测评要求和各种问题记录
  9. 一行命令搞定图像质量评价
  10. python处理ppt的插件_几款PPT神器插件,千万不能错过!
  11. cmd命令查看服务器硬盘序列号,硬盘序列号查询命令_Win7系统中怎么通过CMD查看硬盘序列号...
  12. 项目管理工具ShowDoc的部署
  13. 修改idea64.exe.vmoptions导致双击打不开idea的解决办法
  14. 深度解析:印度软件产业为何如此发达
  15. Netty学习开发之路
  16. 项目4:后台管理的开发和使用(前端)
  17. spring简单教程
  18. Springboot毕设项目华阳大众汽车售卖系统v9f90(java+VUE+Mybatis+Maven+Mysql)
  19. Android 12 变更及适配攻略
  20. 基于Java毕业设计研究生推免系统源码+系统+mysql+lw文档+部署软件

热门文章

  1. 米联客(MSXBO)osrc-lab LINUX开发包使用说明
  2. 手把手调参最新 YOLOv7 模型 推理部分 - 最新版本(一)
  3. VR家装丨颠覆传统,让家装谈单更轻松
  4. Cookie-天使还是恶魔?
  5. 头歌--Java面向对象 - 封装、继承和多态
  6. 三.Unity2019轻量级渲染管线(LWRP)深入学习
  7. debian虚拟机调分辨率
  8. 2022-2027年中国石榴市场规模现状及投资规划建议报告
  9. Excel VBA 高级编程-客户跟进管理系统
  10. 完善细节,使你的网站清新脱俗!