循环
要计算1+2+3,我们可以直接
1
2
|
>>>
1
+
2
+
3
6
|
要计算1+2+3+....+10,勉强也能写出来。
但是,要计算1+2+3......+1000,直接写就有点难了。
为了让据算计成千上万次的重复运算,我们就需要用到循环语句了
python的循环语句有两种,一种是 for....in 循环,一次把 list 或 tuple 中的每个元素 迭代 出来,看例子:
1
2
3
|
>>> names
=
[
'xiaolan'
,
'xiaohong'
,
'xiaoming'
]
>>>
for
name
in
names:
print
(name)
|
执行这一段代码,会一次打印 names 的每一个元素:
1
2
3
|
xiaolan
xiaohong
xiaoming
|
所以 for x in ... 循环就是把每个元素代入变量 x, 然后执行缩进块的语句。
再比如我们想计算1-10的整数之和,可以用一个 sum 变量做累加:
1
2
3
4
5
|
>>>
sum
=
0
>>>
for
x
in
[
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
]:
sum
=
sum
+
x
>>>
print
(
sum
)
55
|
如果要计算1-100 的整数之和,从1写到100有点困难,信号python提供了一个range()函数,可以生成
一个整数序列,再通过list()函数可以转换为 list 。
比如 range(5)生成的序列是从0开始小于5的整数:
1
2
|
>>>
list
((
range
(
5
)))
[
0
,
1
,
2
,
3
,
4
]
|
range(101)就可以生成0-100的整数序列,计算如下:
1
2
3
4
5
|
>>>
sum
=
0
>>>
for
x
in
range
(
101
):
sum
=
sum
+
x
>>>
print
(
sum
)
5050
|
第二种是while循环,只要满足条件就不断循环,条件不满足时推出循环。比如我们要计算100以内所有奇数之和,可以用while循环实现:
1
2
3
4
5
6
7
|
>>>
sum
=
0
>>> n
=
99
>>>
while
n>
0
:
sum
=
sum
+
n
n
=
n
-
2
>>>
print
(
sum
)
2500
|
再循环内部n不断自减,直到变为-1时,不再满足while条件,循环推出。
练习
请利用循环依次对list中的每个名字打印出Hello, xxx!
:
L = ['Bart', 'Lisa', 'Adam']
1
2
3
4
5
6
|
>>> L
=
[
'Bart'
,
'Lisa'
,
'Adam'
]
>>>
for
name
in
L:
print
(
'Hello,%s'
%
name)
Hello,BartHello,Lisa
Hello,Adam
|
本文转自 nw01f 51CTO博客,原文链接:http://blog.51cto.com/dearch/1754066,如需转载请自行联系原作者