循环结构指的是某段代码可以被重复执行,一般在循环结构之中都需要定义一个循环的结束条件,只有在循环条件不满足的时候循环才会执行,如果满足,则循环就会推出,在Python语言里面,循环结构分为两种:while循环、for循环
1、while循环
while循环主要的形式是通过一个循环的结束判断条件来决定当前循环体代码是否需要被执行,Python中while循环主要分为两类while循环,while.else循环
while循环 | while.else循环 |
while 循环结束判断: 循环语句 修改循环结束条件 | while 循环结束判断: 循环语句 修改循环结束条件 else : 循环语句执行完毕后执行的代码 |
1.1、while循环示例:
#encoding:UTF-8
sum = 0 #保存计算结果
num = 1 #进行循环初始化条件的定义
while num <= 100 : #循环的结束判断
sum += num #要执行的是累加
num += 1 #修改循环结束条件
print(sum)
1.2、while...else示例:
#encoding:UTF-8
sum = 0 #保存计算结果
num = 1 #进行循环初始化条件的定义
while num <= 100 : #循环的结束判断
sum += num #要执行的是累加
num += 1 #修改循环结束条件
else : #循环执行完毕之后
print("数字累加计算结果:%d,当前num的值: %d" %(sum,num))
print("循环体之外的程序代码")
2、for循环
for循环在Python里面主要的功能是输出指定范围内的数据操作,也就是说如果现在一个给定的范围里面有5个数据,for循环就会循环5次。在Python里面for循环的语法分为如下两类:
for循环 | for...else循环 |
for 变量 in 序列 : 循环语句 | for 变量 in 序列 : 循环语句 else : 循环语句执行完毕之后的程序代码 |
2.1、for循环示例:
#encoding:UTF-8
for num in {1,2,3}:
print (num,end=' ')
range(s1,s2,s3)设置开始值为s1,最后结果为s2(数值在该范围内的最大值),增长步长为s3
range(100)函数默认生成了0~99的数据范围,并按照线性的方式增长
如果需要还可以设置步长(默认为1)
#encoding:UTF-8
for num in range(50,99,3):
print (num,end=' ')
2.2、for...else循环示例:
for循环输出主要是通过序列的形式完成范围设置,而字符串本身就属于序列
#encoding:UTF-8
msg = 'www.baidu.com'
for num in msg:
print (num,end='')
小写字符转为大写字母
#encoding:UTF-8
msg = 'www.baidu.com'
for num in msg:
if 97 <= ord(num) <= 122: #小写字母
upper_num = ord(num)-32 #大小写字母之前差了32
#chr()函数可以将编码数值转为字符(python没有字符的概念)
print (chr(upper_num),end='')
else:
print(num,end='') #不是小写字符,原样输出
3、循环控制
循环控制主要是控制当前的循环结构是否能继续向下执行,在循环结构里面,如果不进行控制,那么会按照既定的机构重复执行,但是如果有一些特殊情况导致循环的执行终端,就称为循环控制语句,循环控制语句主要通过两个关键字来实现的,continue和break
循环控制示例:
#encoding:UTF-8
for num in range(1,10) :
if num == 3 : #所有的循环控制一定要结合分支语句
continue #退出本次循环,即本次循环的后续代码不执行
print(num,end=' ')
结果:
1 2 4 5 6 7 8 9
#encoding:UTF-8
for num in range(1,10) :
if num == 3 : #所有的循环控制一定要结合分支语句
break #退出整体循环
print(num,end=' ')
结果:
1 2
4、循环嵌套
循环嵌套会降低Python的运行效率
九九乘法表循环嵌套示例:
#encoding:UTF-8
for x in range(1,10) :
for y in range(1,x+1):
print("%d*%d=%d"%(x,y,x*y),end='\t')
print() #表示换行
结果:
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
星座塔循环嵌套示例:
#encoding:UTF-8
line = 5 #定义总共要打印的行数
for x in range(0,line):
for z in range(0,line -x ):
print("",end=" ")
for y in range(0,x + 1 ):
print("*",end=" ")
print()
结果:
*
* *
* * *
* * * *
* * * * *
星座塔的另一种写法:
#encoding:UTF-8
line = 5 #定义总共要打印的行数
for x in range(0,line):
print(" " * (line - x),end=" ") #利用字符串的乘法来进行操作
print("* "*(x+1))
结果:
*
* *
* * *
* * * *
* * * * *