为了让计算机能计算成千上万次的重复运算,我们就需要循环语句。
Python的循环有两种:for..in循环和while循环
一、for...in循环
依次把list或tuple中的每个元素迭代出来,看例子:
#!/usr/bin/env python #-*- coding: utf-8 -*- names = [‘Michael‘, ‘Bob‘, ‘Tracy‘] for name in names: print(name)
执行这段代码,会依次打印names
的每一个元素:
Michael Bob Tracy
所以for x in ...
循环就是把每个元素代入变量x
,然后执行缩进块的语句。
再比如我们想计算1-10的整数之和,可以用一个sum
变量做累加:
#!/usr/bin/env python #-*- coding: utf-8 -*- sum = 0 for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]: sum = sum + x print(sum)
如果要计算1-100的整数之和,从1写到100有点困难,幸好Python提供一个range()
函数,可以生成一个整数序列,再通过list()
函数可以转换为list。比如range(5)
生成的序列是从0开始小于5的整数:
>>> list(range(5)) [0, 1, 2, 3, 4]
range(101)
就可以生成0-100的整数序列,计算如下:
#!/usr/bin/env python #-*- coding: utf-8 -*- sum = 0 for x in range(101): sum = sum + x print(sum)
请自行运行上述代码,看看结果是不是当年高斯同学心算出的5050。
二、while循环:
只要条件满足,就不断循环,条件不满足时退出循环。比如我们要计算100以内所有奇数之和,可以用while循环实现:
#!/usr/bin/env python #-*- coding: utf-8 -*- sum = 0 n = 99 while n > 0: sum = sum + n n = n - 2print(sum)
在循环内部变量n
不断自减,直到变为-1
时,不再满足while条件,循环退出。
死循环
#!/usr/bin/env python #-*- coding: utf-8 -*- import time #加载time模块 while True: print (‘hello‘) time.sleep(1) #让它每秒执行一次
练习:
无限打印1.2.3.4...........
#!/usr/bin/env python #-*- coding: utf-8 -*- import time n = 1 while True : print (n) n = n + 1 time.sleep(1) print (‘end‘)
输出10以内的所有正整数
#!/usr/bin/env python #-*- coding: utf-8 -*- import time n = 1 while n <= 10 : print (n) n = n + 1 time.sleep(1) print (‘end‘)
break
用于跳出当前循环,并且break下面的代码将不在执行
#!/usr/bin/env python #-*- coding: utf-8 -*- import time n = 1 while True : print (n) if n == 10: break n = n + 1 time.sleep(1)
continue
用于跳出本次循环,继续下一次循环
#!/usr/bin/env python #-*- coding: utf-8 -*- i = 0 while i < 10 : i = i + 1 if i == 4: pass if i == 6: continue if i == 8: break print ( i ) else: print (‘It is over.‘)
结果:1 2 3 4 5 7 跳过了6,进入7的循环,到8时跳出了循环。
时间: 2024-10-17 21:27:18