循環結構指的是某段代碼可以被重複執行,一般在循環結構之中都需要定義一個循環的結束條件,只有在循環條件不滿足的時候循環纔會執行,如果滿足,則循環就會推出,在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))
結果:
*
* *
* * *
* * * *
* * * * *