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

 更新时间:2014年09月20日 16:12:23   投稿:hebedich  
画圈?换一个说法就是循环。循环,是高级语言编程中重要的工作。现实生活中,很多事情都是在循环,日月更迭,斗转星移,无不是循环;王朝更迭,寻常百姓,也都是循环。

在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循环。

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

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

代码:

#! /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]
这里仅仅列举一个简单的例子,看官可以在这个例子基础上深入:打印某范围内的偶数/奇数等。

相关文章

  • pandas的object对象转时间对象的方法

    pandas的object对象转时间对象的方法

    下面小编就为大家分享一篇pandas的object对象转时间对象的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python使用背景差分器实现运动物体检测

    Python使用背景差分器实现运动物体检测

    目前,许多运动检测技术都是基于简单的背景差分概念的,因此本文将基于背景差分器(MOG背景差分器和KNN背景差分器)来实现运动物体的检测,感兴趣的可以了解一下
    2022-02-02
  • python 自定义包的实现示例

    python 自定义包的实现示例

    如果Python的模块过多,可能造成一定的混乱,这时可以通过Python包来管理模块,本文主要介绍了python 自定义包的实现示例,感兴趣的可以了解一下
    2024-05-05
  • 解决python3输入的坑——input()

    解决python3输入的坑——input()

    这篇文章主要介绍了解决python3输入的坑——input(),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • pytorch下使用LSTM神经网络写诗实例

    pytorch下使用LSTM神经网络写诗实例

    今天小编就为大家分享一篇pytorch下使用LSTM神经网络写诗实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Sanic框架蓝图用法实例分析

    Sanic框架蓝图用法实例分析

    这篇文章主要介绍了Sanic框架蓝图用法,结合实例形式分析了Sanic框架中蓝图的功能以及路由控制中蓝图的定义、注册、简单使用方法及相关操作注意事项,需要的朋友可以参考下
    2018-07-07
  • python 统计list中各个元素出现的次数的几种方法

    python 统计list中各个元素出现的次数的几种方法

    这篇文章主要介绍了python 统计list中各个元素出现的次数的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Python+OpenCV进行不规则多边形ROI区域提取

    Python+OpenCV进行不规则多边形ROI区域提取

    ROI即感兴趣区域。机器视觉、图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域,ROI。本文将利用Python和OpenCV实现不规则多边形ROI区域提取,需要的可以参考一下
    2022-03-03
  • Pytorch 多维数组运算过程的索引处理方式

    Pytorch 多维数组运算过程的索引处理方式

    今天小编就为大家分享一篇Pytorch 多维数组运算过程的索引处理方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Python字符串和其常用函数合集

    Python字符串和其常用函数合集

    这篇文章主要给大介绍Python字符串和分享其常用函数合集,字符串、首字母大写定义、所有字母大写、所有字母小写等函数,具有一定的参考价值,需要的朋友可以参考一下
    2022-03-03

最新评论