跟老齐学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列表(list)常用操作方法小结
Feb 02 Python
python根据出生日期返回年龄的方法
Mar 26 Python
python模拟登录并且保持cookie的方法详解
Apr 04 Python
对Python中range()函数和list的比较
Apr 19 Python
用python统计代码行的示例(包括空行和注释)
Jul 24 Python
PyCharm-错误-找不到指定文件python.exe的解决方法
Jul 01 Python
python中bs4.BeautifulSoup的基本用法
Jul 27 Python
使用已经得到的keras模型识别自己手写的数字方式
Jun 29 Python
Python自省及反射原理实例详解
Jul 06 Python
django中ImageField的使用详解
Dec 21 Python
python 使用openpyxl读取excel数据
Feb 18 Python
详解非极大值抑制算法之Python实现
Jun 28 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程序实现支持页面后退的两种方法
2008/06/30 PHP
PHP控制网页过期时间的代码
2008/09/28 PHP
用PHP实现读取和编写XML DOM代码
2010/04/07 PHP
解析thinkphp的左右值无限分类
2013/06/20 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
2016/03/18 PHP
PHP在linux上执行外部命令的方法
2017/02/06 PHP
thinkPHP框架通过Redis实现增删改查操作的方法详解
2019/05/13 PHP
由JavaScript技术实现的web小游戏(不含网游)
2010/06/12 Javascript
js取滚动条的尺寸的函数代码
2011/11/30 Javascript
jQuery拖拽div实现思路
2014/02/19 Javascript
JS点击链接后慢慢展开隐藏着图片的方法
2015/02/17 Javascript
jQuery获取页面元素绝对与相对位置的方法
2015/06/10 Javascript
三分钟带你玩转jQuery.noConflict()
2016/02/15 Javascript
聊一聊JS中this的指向问题
2016/06/17 Javascript
深入理解AngularJS中的ng-bind-html指令
2017/03/27 Javascript
ES6中Math对象新增的方法实例详解
2017/04/25 Javascript
浅谈在koa2中实现页面渲染的全局数据
2017/10/09 Javascript
layui框架table 数据表格的方法级渲染详解
2018/08/19 Javascript
使用element-ui table expand展开行实现手风琴效果
2019/03/15 Javascript
小程序跳转H5页面的方法步骤
2020/03/06 Javascript
JavaScript实现简单的图片切换功能(实例代码)
2020/04/10 Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
2020/08/07 Javascript
javascript实现时钟动画
2020/12/03 Javascript
详解Python的Flask框架中的signals信号机制
2016/06/13 Python
使用python3.5仿微软记事本notepad
2016/06/15 Python
Python自动化运维_文件内容差异对比分析
2017/12/13 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
2018/12/04 Python
基于Python在MacOS上安装robotframework-ride
2018/12/28 Python
大课间体育活动方案
2014/03/12 职场文书
应届生自荐信
2014/06/30 职场文书
小学教师师德整改措施
2014/09/29 职场文书
2014年教师学期工作总结
2014/11/08 职场文书
2014年团支部工作总结
2014/11/17 职场文书
同学聚会通知短信
2015/04/20 职场文书
如何用python清洗文件中的数据
2021/06/18 Python
JavaScript中document.activeELement焦点元素介绍
2021/11/27 Javascript