跟老齐学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读写文本文件及编写简单的文本编辑器
Mar 11 Python
利用python发送和接收邮件
Sep 27 Python
Python开发最牛逼的IDE——pycharm
Aug 01 Python
Python给定一个句子倒序输出单词以及字母的方法
Dec 20 Python
Python 隐藏输入密码时屏幕回显的实例
Feb 19 Python
Django实现跨域请求过程详解
Jul 25 Python
python Kmeans算法原理深入解析
Aug 23 Python
python手写均值滤波
Feb 19 Python
解决jupyter notebook 出现In[*]的问题
Apr 13 Python
Django vue前后端分离整合过程解析
Nov 20 Python
Python实现给PDF添加水印的方法
Jan 25 Python
使用Python webdriver图书馆抢座自动预约的正确方法
Mar 04 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基于GD库的缩略图生成代码(支持jpg,gif,png格式)
2014/06/19 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
2015/12/20 PHP
PHP实现支持加盐的图片加密解密
2016/09/09 PHP
php处理多图上传压缩代码功能
2018/06/13 PHP
js实现兼容IE6与IE7的DIV高度
2010/05/13 Javascript
(function($){...})(jQuery)的意思
2010/07/22 Javascript
JavaScript Array对象扩展indexOf()方法
2014/05/09 Javascript
SpringMVC restful 注解之@RequestBody进行json与object转换
2015/12/10 Javascript
Vue官网todoMVC示例代码
2018/01/29 Javascript
通过一次报错详细谈谈Point事件
2018/05/17 Javascript
vue最简单的前后端交互示例详解
2018/10/11 Javascript
VUE引入第三方js包及调用方法讲解
2019/03/01 Javascript
vue组件化中slot的基本使用方法
2019/05/01 Javascript
node.JS二进制操作模块buffer对象使用方法详解
2020/02/06 Javascript
js实现鼠标滑动到某个div禁止滚动
2020/09/17 Javascript
JavaScript 防抖和节流遇见的奇怪问题及解决
2020/11/20 Javascript
[49:40]2018DOTA2亚洲邀请赛小组赛 A组加赛 TNC vs Newbee
2018/04/03 DOTA
python使用os模块的os.walk遍历文件夹示例
2014/01/27 Python
Django中对通过测试的用户进行限制访问的方法
2015/07/23 Python
Python3安装Pymongo详细步骤
2017/05/26 Python
python科学计算之narray对象用法
2019/11/25 Python
Python发送手机动态验证码代码实例
2020/02/28 Python
jupyter notebook读取/导出文件/图片实例
2020/04/16 Python
利用python控制Autocad:pyautocad方式
2020/06/01 Python
EM Cosmetics官网:由彩妆大神Michelle Phan创办的独立品牌
2020/04/27 全球购物
应聘收银员个人的求职信
2013/11/30 职场文书
教室标语大全
2014/06/21 职场文书
群众路线查摆问题整改措施思想汇报
2014/10/10 职场文书
大学生党员个人总结
2015/02/13 职场文书
学习商务礼仪心得体会
2016/01/22 职场文书
初中生物教学反思
2016/02/20 职场文书
新手初学Java List 接口
2021/07/07 Java/Android
详解Golang如何优雅的终止一个服务
2022/03/21 Golang
Docker官方工具docker-registry案例演示
2022/04/13 Servers
Elasticsearch 配置详解
2022/04/19 Java/Android
提高系统的吞吐量解决数据库重复写入问题
2022/04/23 MySQL