跟老齐学Python之画圈还不简单吗?


Posted in Python onSeptember 20, 2014

在python中,循环有一个语句:for语句。

简单的for循环例子

>>> hello = "world"
>>> for i in hello:
...   print i
... 
w
o
r
l
d

上面这个for循环是怎么工作的呢?

hello这个变量引用的是"world"这个str类型的数据
变量 i 通过hello找到它所引用的"world",然后从第一字符开始,依次获得该字符的引用。
当 i="w"的时候,执行print i,打印出了字母w,结束之后循环第二次,让 i="e",然后执行print i,打印出字母e,如此循环下去,一直到最后一个字符被打印出来,循环自动结束
顺便补充一个print的技巧,上面的打印结果是竖着排列,也就是每打印一个之后,就自动换行。如果要让打印的在一行,可以用下面的方法,在打印的后面加一个逗号(英文)

>>> for i in hello:
...   print i,
... 
w o r l d

>>> for i in hello:
...   print i+",",  #为了美观,可以在每个字符后面加一个逗号分割
... 
w, o, r, l, d,
>>>

因为可以通过使用索引编号(偏移量)做为下表,得到某个字符。所以,还可以通过下面的循环方式实现上面代码中同样功能:

>>> for i in range(len(hello)):
...   print hello[i]
... 
w
o
r
l
d

其工作方式是:

len(hello)得到hello引用的字符串的长度,为5
range(len(hello),就是range(5),也就是[0, 1, 2, 3, 4],对应这"world"每个字母的编号,即偏移量。
for i in range(len(hello)),就相当于for i in [0,1,2,3,4],让i依次等于list中的各个值。当i=0时,打印hello[0],也就是第一个字符。然后顺序循环下去,直到最后一个i=4为止。
以上的循环举例中,显示了对字str的字符依次获取,也涉及了list,感觉不过瘾呀。那好,看下面对list的循环:

>>> ls_line
['Hello', 'I am qiwsir', 'Welcome you', '']
>>> for word in ls_line:
...   print word
... 
Hello
I am qiwsir
Welcome you

>>> for i in range(len(ls_line)):
...   print ls_line[i]
... 
Hello
I am qiwsir
Welcome you

上一个台阶

我们已经理解了for语句的基本工作流程,如果写一个一般化的公式,可以这么表示:

for 目标 in 对象:
    操作语句
用for语句来解决一个实际问题。

例:找出100以内的能够被3整除的正整数。

分析:这个问题有两个限制条件,第一是100以内的正整数,根据前面所学,可以用range(1,100)来实现;第二个是要解决被3整除的问题,假设某个正整数n,这个数如果能够被3整除,也就是n%3(%是取余数)为0.那么如何得到n呢,就是要用for循环。

以上做了简单分析,要实现流程,还需要细化一下。按照前面曾经讲授过的一种方法,要画出问题解决的流程图。

跟老齐学Python之画圈还不简单吗?

下面写代码就是按图索骥了。

代码:

#! /usr/bin/env python
#coding:utf-8

aliquot = []

for n in range(1,100):
  if n%3 == 0:
    aliquot.append(n)

print aliquot

代码运行结果:

[3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
这里仅仅列举一个简单的例子,看官可以在这个例子基础上深入:打印某范围内的偶数/奇数等。

Python 相关文章推荐
Python enumerate遍历数组示例应用
Sep 06 Python
python中PIL安装简单教程
Apr 21 Python
Python使用Srapy框架爬虫模拟登陆并抓取知乎内容
Jul 02 Python
Python处理PDF及生成多层PDF实例代码
Apr 24 Python
利用Python如何批量更新服务器文件
Jul 29 Python
pandas中apply和transform方法的性能比较及区别介绍
Oct 30 Python
关于Pycharm无法debug问题的总结
Jan 19 Python
Flask之pipenv虚拟环境的实现
Nov 26 Python
python itsdangerous模块的具体使用方法
Feb 17 Python
浅谈Python3中print函数的换行
Aug 05 Python
通过代码实例解析Pytest运行流程
Aug 20 Python
python单元测试框架pytest的使用示例
Oct 07 Python
跟老齐学Python之list和str比较
Sep 20 #Python
Python显示进度条的方法
Sep 20 #Python
python中对list去重的多种方法
Sep 18 #Python
Python中用Descriptor实现类级属性(Property)详解
Sep 18 #Python
Python中的闭包总结
Sep 18 #Python
python的即时标记项目练习笔记
Sep 18 #Python
python脚本实现分析dns日志并对受访域名排行
Sep 18 #Python
You might like
php SQL之where语句生成器
2009/03/24 PHP
php 学习资料零碎东西
2010/12/04 PHP
php curl的深入解析
2013/06/02 PHP
PHP文件缓存类实现代码
2015/10/26 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
php生成随机数/生成随机字符串的方法小结【5种方法】
2020/05/27 PHP
Mootools 1.2教程 类(一)
2009/09/15 Javascript
jquery ui 1.7 ui.tabs 动态添加与关闭(按钮关闭+双击关闭)
2010/04/01 Javascript
jquery validate.js表单验证的基本用法入门
2010/05/13 Javascript
extjs关于treePanel+chekBox全部选中以及清空选中问题探讨
2013/04/02 Javascript
多引号嵌套的变量命名的问题
2014/05/09 Javascript
JS iFrame加载慢怎么解决
2016/05/13 Javascript
jQuery1.9+中删除了live以后的替代方法
2016/06/17 Javascript
JS使用onerror捕获异常示例
2016/08/03 Javascript
Javascript函数中的arguments.callee用法实例分析
2016/09/16 Javascript
JS前端加密算法示例
2016/12/22 Javascript
mac下的nodejs环境安装的步骤
2017/05/24 NodeJs
20行JS代码实现粘贴板复制功能
2018/02/06 Javascript
JS实现的简单折叠展开动画效果示例
2018/04/28 Javascript
js前端如何写一个精确的倒计时代码
2019/10/25 Javascript
vue实现简单图片上传
2020/06/30 Javascript
vue页面跳转实现页面缓存操作
2020/07/22 Javascript
python通过opencv实现批量剪切图片
2017/11/13 Python
Python 保存矩阵为Excel的实现方法
2019/01/28 Python
如何使用Python标准库进行性能测试
2019/06/25 Python
Python类和实例的属性机制原理详解
2020/03/21 Python
韩国邮政旗下生鲜食品网上超市:epost
2016/08/27 全球购物
阿拉伯世界最大的电子商务网站:Souq沙特阿拉伯
2016/10/28 全球购物
房地产员工找工作的自我评价
2013/11/15 职场文书
政法学院毕业生求职信
2014/02/28 职场文书
婚礼主持词
2014/03/13 职场文书
九年级化学教学反思
2016/02/22 职场文书
如何撰写促销方案?
2019/07/05 职场文书
MySQL连接查询你真的学会了吗?
2021/06/02 MySQL
vue实力踩坑之push当前页无效
2022/04/10 Vue.js
Nginx 常用配置
2022/05/15 Servers