跟老齐学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 除法小技巧
Sep 06 Python
Python编写检测数据库SA用户的方法
Jul 11 Python
深入解析Python中的lambda表达式的用法
Aug 28 Python
从CentOS安装完成到生成词云python的实例
Dec 01 Python
Python机器学习库scikit-learn安装与基本使用教程
Jun 25 Python
使用python的pandas为你的股票绘制趋势图
Jun 26 Python
pytest中文文档之编写断言
Sep 12 Python
Python Process多进程实现过程
Oct 22 Python
Pytorch实现各种2d卷积示例
Dec 30 Python
python如何求100以内的素数
May 27 Python
python不到50行代码完成了多张excel合并的实现示例
May 28 Python
Pandas-DataFrame知识点汇总
Mar 16 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
thinkphp备份数据库的方法分享
2015/01/04 PHP
PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案
2017/10/17 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
php+lottery.js实现九宫格抽奖功能
2019/07/21 PHP
JS IE和FF兼容性问题汇总
2009/02/09 Javascript
javascript 学习笔记(onchange等)
2010/11/14 Javascript
基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
2013/04/26 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
2013/12/04 Javascript
JS中操作JSON总结
2020/12/06 Javascript
同一个网页中实现多个JavaScript特效的方法
2015/02/02 Javascript
javascript原生ajax写法分享
2016/04/10 Javascript
详解JavaScript中|单竖杠运算符的使用方法
2016/05/23 Javascript
json传值以及ajax接收详解
2016/05/24 Javascript
JS获取input file绝对路径的方法(推荐)
2016/08/02 Javascript
jQuery实现元素的插入
2017/02/27 Javascript
jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
2017/03/06 Javascript
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
2018/01/16 Javascript
nodejs acl的用户权限管理详解
2018/03/14 NodeJs
JavaScript实现shuffle数组洗牌操作示例
2019/01/03 Javascript
JS使用队列对数组排列,基数排序算法示例
2019/03/02 Javascript
Django之Mode的外键自关联和引用未定义的Model方法
2018/12/15 Python
python 字典 setdefault()和get()方法比较详解
2019/08/07 Python
Python selenium的基本使用方法分析
2019/12/21 Python
python实现从ftp上下载文件的实例方法
2020/07/19 Python
python tkinter实现下载进度条及抖音视频去水印原理
2021/02/07 Python
分享一个页面平滑滚动小技巧(推荐)
2019/10/23 HTML / CSS
Willer台湾:日本高速巴士/夜行巴士预约
2017/07/09 全球购物
JVM是一个编译程序还是解释程序
2012/09/11 面试题
我的长生果教学反思
2014/04/28 职场文书
课内比教学心得体会
2014/09/09 职场文书
三方股东合作协议书
2014/10/28 职场文书
关于长城的导游词
2015/01/30 职场文书
结婚十年感言
2015/07/31 职场文书
班主任班级管理心得体会
2016/01/07 职场文书
MySQL开启事务的方式
2021/06/26 MySQL
CSS中妙用 drop-shadow 实现线条光影效果
2021/11/11 HTML / CSS