Python提供了for循环和while循环
while在给定的判断条件为 true 时执行循环体,不然退出循环体。
for重复执行语句
嵌套循环能够在while循环体中嵌套for、while循环python
while语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理须要重复处理的相同任务。其基本形式为:
while判断条件:
执行语句……
执行语句能够是单个语句或语句块。判断条件能够是任何表达式,任何非零、或非空(null)的值均为true,当判断条件假false时,循环结束。app
例子:使用while循环输入 1 2 3 4 5 6 8 9 10less
1 i = 0 2 while i < 10: 3 i+=1 4 if i == 7: 5 continue 6 else: 7 print(i)
输出 1-100 内的全部奇数函数
1 i = 1 2 while i <=100: 3 if i%2 == 1: 4 print(i) 5 i+=1
求1-2+3-4+5 ... 99的全部数的和ui
1 result = 0 2 i = 1 3 while i <=99: 4 if i%2 == 0: 5 result = result - i 6 else: 7 result = result + i 8 i+=1 9 print(result)
在 python 中,while … else 在循环条件为false时执行else语句块:spa
实例code
1 count = 0 2 while count < 5: 3 print (count, " is less than 5") 4 count = count + 1 5 else: 6 print (count, " is not less than 5")
以上实例输出结果为:orm
0 is less than 5
1 is less than 5
2 is less than 5
3 is less than 5
4 is less than 5
5 is not less than 5blog
for循环能够遍历任何序列的项目,如一个列表或者一个字符串,不能遍历int数值。递归
for循环的语法格式以下:
1 msg = 'abcd' 2 for i in msg: 3 print (i)
a
b
c
d
计算1-100的和:
1 sum = 0 2 for x in range(101): 3 sum = sum + x 4 print(sum)
输出a-z
1 for j in range(ord('a'), ord('z')+1): 2 print(chr(j),end=' ')
a b c d e f g h i j k l m n o p q r s t u v w x y z
1 a = [] 2 for i in range(ord('a'),ord('z')): 3 a.append(chr(i)) 4 print(a)
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y']
ord函数将字符转换为整数显示,chr函数将整数转换为字符显示
while和for循环的区别:
while循环通常经过数值是否知足来肯定循环的条件
for循环通常是对能保存多个数据的变量,进行遍历
另一种执行循环的遍历方式是经过索引,以下实例:
1 fruits = ['banana', 'apple', 'mango'] 2 for index in range(len(fruits)): 3 print('第%s个水果是:%s'%(index+1,fruits[index]))
第1个水果是:banana
第2个水果是:apple
第3个水果是:mango
在 python 中,for … else表示这样的意思,for中的语句和普通的没有区别,else中的语句会在循环正常执行完(即 for不是经过break跳出而中断的)的状况下执行,while … else 也是同样。
1 for num in range(10,20): 2 for i in range(2,num): 3 if num%i == 0: 4 j = num//i 5 print('%s等于%s * %s'%(num,i,j)) 6 break 7 else: 8 print('%s是一个质数'%num)
10等于2 * 5
11是一个质数
12等于2 * 6
13是一个质数
14等于2 * 7
15等于3 * 5
16等于2 * 8
17是一个质数
18等于2 * 9
19是一个质数
1 for x in range(1,10): 2 for y in range(1,x+1): 3 print('%s*%s=%-4s'%(y,x,x*y),end='') 4 print()
%2s表示这个字符最少占用2个字符,若是只有一个字符则靠右显示
%-2s表示这个字符最少占用2个字符,若是只有一个字符且字符靠左显示
默认状况下,print() 除了打印你提供的字符串以外,还会打印一个换行符,因此每调用一次 print() 就会换一次行,如同上面同样。
1 i = 1 2 while i < 10: 3 j = 1 4 while j <= i: 5 print('{}*{}={:<4d}'.format(j,i,j*i),end='') 6 j+=1 7 i+=1 8 print()
print ('\n'.join([' '.join(['%s*%s=%-4s'%(y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)]))
print后面输出的内容默认是自带回车的,在Python2中,print最后面加上一个逗号表示不换行,在Python3中,print最后面加上一个,end=''或者,end=""表示不换行。
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
break语句
用来终止循环语句,即循环条件没有False条件或者序列还没被彻底递归完,也会中止执行循环语句。
break语句可用在while和for循环中。
若是使用嵌套循环,break语句将中止执行最深层的循环,并开始执行下一行代码。
continue语句
用来告诉Python跳过当前循环的剩余语句,而后继续进行下一轮循环。
continue语句可用在while和for循环中。
continue语句跳出本次循环,而break跳出整个循环。
打印斐波那契数列。这个数列前两项为 1,以后的每个项都是前两项之和。因此这个数列看起来就像这样:1,1,2,3,5,8,13 ......
1 a,b = 0,1 2 while b < 100: 3 print(b,end=' ') 4 a,b = b,a+b
运行程序:
1 1 2 3 5 8 13 21 34 55 89
第一行代码中咱们初始化a和b。当b的值小于100的时候,循环执行代码。
循环里咱们首先打印b的值,而后在下一行将a+b的值赋值给b,b的值赋值给a。
你能够这样理解,Python中赋值语句执行时会先对赋值运算符右边的表达式求值,而后将这个值赋值给左边的变量。
一、使用break退出循环(若是有多层循环时,须要考虑break的位置,不方便)
flag = True count = 0 while flag: user = input('user>>: ') password = input('password>>: ') count += 1 if count ==3: print('too many') break if user == 'admin' and password == '123': print('success') while True: cmd = input('cmd>>: ') if cmd == 'q': break break
二、利用标志位退出(将flag定义为True,循环中可使用flag做为条件,当须要退出全部循环时,能够改变flag的值为False便可,更方便)
flag = True count = 0 while flag: user = input('user>>: ') password = input('password>>: ') count += 1 if count ==3: print('too many') flag=False if user == 'admin' and password == '123': print('success') while flag: cmd = input('cmd>>: ') if cmd == 'q': flag=False