python中的循环

好久没有看过python了,今天终于静下心来,接着上次的继续学习python,今天主要看的是循环这一块,

python中的循环也有for和while,首先先看看for循环

下面是一个简单的for循环例子

>>> for i in range(0,10):
print i

0
1
2
3
4
5
6
7
8
9

range是python的一个内置函数,他可以生成一个数字列表。

>>> range (1,10)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

range(start, stop)返回的是一个整数列表,该列表的值从start开始一直到stop的前一个整数结束.默认情况下,range是通过不断递增1来递增的,但是我们可以通过第三个可选的参数来给他指定增长步长

例如,我们生成一个从2000年到2050年所有的闰年的列表:

>>> range(2000,2050,4)
[2000, 2004, 2008, 2012, 2016, 2020, 2024, 2028, 2032, 2036, 2040, 2044, 2048]

下面这个例子是使用for循环将valus这个列表里面的元素都乘以2并输出

valus = [1,2,3]
 for i in range(len(valus)):
 m=i
 valus[i]=m*2
 print valus[i]

下面再介绍一个名叫enumerate()的内置函数,他的功能是对于给定的一个序列(列表,元组或者字符串),将返回一个由”值对”组成的列表.每个值对的第一个元素为索引,而第二个则是原序列在该索引处的值.例如:

>>> for x in enumerate(‘abc’):
print x
(0, ‘a’)
(1, ‘b’)
(2, ‘c’)

>>> for x in enumerate([10,20,30]):
print x
(0, 10)
(1, 20)
(2, 30)

而且python支持多值赋值,如果赋值语句的左侧有多个变量,而且右侧又有相同数量的值,python就可以对他们一一配对并赋值:

>>> x,y = 1,2
>>> x
1
>>> y
2

>>> x,y,z = ‘abc’
>>> x
‘a’
>>> y
‘b’
>>> z
‘c’

这样我们就可以更加方便的处理上面的那个加倍问题了

>>> valus = [1,2,3]

>>> for (i,v) in enumerate(valus):
valus[i] = 2 * v
>>> valus
[2, 4, 6]

这个循环第一次enumerate(valus)会得到元组(0,valus[0]),然后python会将这个元组拆开并将0赋值给i,将valus[0]赋值给v,以此类推。

下面介绍一下嵌套循环,就是在循环中嵌套另一个循环,在下面这个例子中,我们通过嵌套循环对一张图片进行修改,每隔一行就涂黑一行

import media

f = media.choose_file()
 lake = media.load_picture(f)

width,height = media.get_width(lake),media.get_height(lake)

for y in range(0,height,2):
 for x in range(0,width):
 p = media.get_pixel(lake,x,y)
 media.set_color(p,media.black)

media.show(lake)

下面介绍一下while循环,while循环的常见格式如下所示:

while condition:

block

python遇到一个while循环的时候,他会先判断条件是否成立,如果条件成立,python就会执行一遍循环体,要是条件不成立,则python就会直接跳过循环体

下面是一个简单的例子:

>>> while i > 0:
print i
i-=1
3
2
1

发表评论

电子邮件地址不会被公开。 必填项已用*标注