跟老齐学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中bisect模块用法实例
Sep 25 Python
Python中的rfind()方法使用详解
May 19 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
Jun 23 Python
python互斥锁、加锁、同步机制、异步通信知识总结
Feb 11 Python
python解决js文件utf-8编码乱码问题(推荐)
May 02 Python
pytorch 把MNIST数据集转换成图片和txt的方法
May 20 Python
python文件操作的简单方法总结
Nov 07 Python
Python大数据之使用lxml库解析html网页文件示例
Nov 16 Python
pytorch 实现tensor与numpy数组转换
Dec 27 Python
Python使用urllib模块对URL网址中的中文编码与解码实例详解
Feb 18 Python
python将unicode和str互相转化的实现
May 11 Python
如何通过命令行进入python
Jul 06 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
snoopy PHP版的网络客户端提供本地下载
2008/04/15 PHP
PHP setTime 设置当前时间的代码
2012/08/27 PHP
ThinkPHP3.1新特性之内容解析输出详解
2014/06/19 PHP
codeigniter发送邮件并打印调试信息的方法
2015/03/21 PHP
php实现的验证码文件类实例
2015/06/18 PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
2016/03/18 PHP
PHP实现生成带背景的图形验证码功能
2016/10/03 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
2017/01/07 PHP
PHP实现微信支付(jsapi支付)流程步骤详解
2018/03/15 PHP
可以文本显示的公告栏的js代码
2007/03/11 Javascript
基于jquery的loading效果实现代码
2010/11/05 Javascript
jQuery插件bxSlider实现响应式焦点图
2015/04/12 Javascript
论JavaScript模块化编程
2016/03/07 Javascript
js操作DOM--添加、删除节点的简单实例
2016/07/08 Javascript
Vue.js每天必学之过渡与动画
2016/09/06 Javascript
JS前端开发判断是否是手机端并跳转操作(小结)
2017/02/05 Javascript
js 调用百度分享功能
2017/02/27 Javascript
解决Jquery下拉框数据动态获取的问题
2018/01/25 jQuery
jQuery 防止相同的事件快速重复触发方法
2018/02/08 jQuery
Vue.js 2.0和Cordova开发webApp环境搭建方法
2018/02/26 Javascript
JavaScript创建对象方式总结【工厂模式、构造函数模式、原型模式等】
2018/12/19 Javascript
vue实现点击按钮“查看详情”弹窗展示详情列表操作
2020/09/09 Javascript
进一步探究Python中的正则表达式
2015/04/28 Python
python实现对一个完整url进行分割的方法
2015/04/29 Python
pandas 根据列的值选取所有行的示例
2018/11/07 Python
基于torch.where和布尔索引的速度比较
2020/01/02 Python
Python自动登录QQ的实现示例
2020/08/28 Python
python 列表推导和生成器表达式的使用
2021/02/01 Python
意大利宠物用品购物网站:Bauzaar
2018/09/15 全球购物
英国儿童鞋和靴子:Start-Rite
2019/05/06 全球购物
戴尔新加坡官网:Dell Singapore
2020/12/13 全球购物
外贸英语专业求职信范文
2013/12/25 职场文书
邮政竞聘演讲稿
2014/09/03 职场文书
2015年上半年信访工作总结
2015/03/30 职场文书
公司员工体检通知
2015/04/21 职场文书
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
2021/06/11 Python