Python之 for循环\while循环

时间:2022-12-13 14:05:17

list或tuple可以表示一个有序集合。如果我们想依次访问一个list中的每一个元素呢?比如 list:

L = ['Adam', 'Lisa', 'Bart']
print L[0]
print L[1]
print L[2]

如果list只包含几个元素,这样写还行,如果list包含1万个元素,我们就不可能写1万行print。

这时,循环就派上用场了。

Python的 for 循环就可以依次把list或tuple的每个元素迭代出来:

L = ['Adam', 'Lisa', 'Bart']
for name in L:
print name

注意:  name 这个变量是在 for 循环中定义的,意思是,依次取出list中的每一个元素,并把元素赋值给 name,然后执行for循环体(就是缩进的代码块)。

这样一来,遍历一个list或tuple就非常容易了。

班里考试后,老师要统计平均成绩,已知4位同学的成绩用list表示如下:

L = [75, 92, 59, 68]

请利用for循环计算出平均成绩。参考下面代码:

L = [75, 92, 59, 68]
sum = 0.0
for x in L:
    sum=sum+x
print sum / 4

 

 

Python之 while循环

和 for 循环不同的另一种循环是 while 循环,while 循环不会迭代 list 或 tuple 的元素,而是根据表达式判断循环是否结束。

比如要从 0 开始打印不大于 N 的整数:

N = 10
x = 0
while x < N:
print x
x = x + 1

while循环每次先判断 x < N,如果为True,则执行循环体的代码块,否则,退出循环。

在循环体内,x = x + 1 会让 x 不断增加,最终因为 x < N 不成立而退出循环。

如果没有这一个语句,while循环在判断 x < N 时总是为True,就会无限循环下去,变成死循环,所以要特别留意while循环的退出条件。

任务

利用while循环计算100以内奇数的和.参考代码:

sum = 0
x = 1
while x<100:
    sum=sum+x
    x=x+2
print sum
或者
sum = 0
x = 1
while (x%2==1) or (x<=100):
    sum+=x
    x+=1
print sum

用 for 循环或者 while 循环时,如果要在循环体内直接退出循环,可以使用 break 语句。比如计算1至100的整数和,我们用while来实现:
sum = 0
x = 1
while True:
sum = sum + x
x = x + 1
if x > 100:
break
print sum

咋一看, while True 就是一个死循环,但是在循环体内,我们还判断了 x > 100 条件成立时,用break语句退出循环,这样也可以实现循环的结束。

 
  

任务

 
  

利用 while True 无限循环配合 break 语句,计算 1 + 2 + 4 + 8 + 16 + ... 的前20项的和。

sum = 0
x = 1
n = 1
while True:
    if n>20:
        break
    sum=sum+x
    x=x*2
    n=n+1
print sum