循環結構
優點
- 減少代碼冗余
- 提升效率
while循環
語法結構
while 條件表達式: 循環體 code1 code2
打印0-100
i = 0 while i <= 100: print(i) i+=1

執行過程:
第一套循環 首先i=0 判斷0<=100 條件成立 返回True 執行循環體 打印當前i i+=1 i = i+1 i=>1 第二套循環 回到第二行循環判斷條件中 1 <= 100 條件成立 返回True 執行循環體 打印當前i i+=1 i = i+1 i=>2 ...... 直到當i = 101 時 ,回循環判斷條件中,發現不成立,返回False 循環體終止不執行了.跳出循環
計算1~100的累加
i = 0 sum = 0 while i <= 100: sum = sum + i #sum += i i+=1 print(sum)
![]()
執行過程
# 第一次循環 判斷 i 1<=100 條件成立 執行循環體當中的內容 sum = sum + i => sum = 0 + 1 i+=1 i=>2 # 第二次循環 判斷 i 2<=100 條件成立 執行循環體當中的內容 sum = sum + i => sum = 0 + 1 + 2 i+=1 i=>3 # 第三次循環 判斷 i 3<=100 條件成立 執行循環體當中的內容 sum = sum + i => sum = 0 + 1 + 2 + 3 i+=1 i=>4 依次類推... 當i = 101 的時候 發現101 <= 100 返回False 循環體不執行,終止循環 sum = sum + i => sum = 0+1+2+3+ ..... + 100 '''
可以寫一個死循環,通過if判斷退出
i = 0 sum = 0 while True: sum = sum + i i+=1 if i == 101: print(sum) break
![]()
使用信號控制
sign = True i = 0 sum = 0 while sign: sum = sum + i i+=1 if i == 101: sign = False print(sum)
打印一行10個星星
直接打印
i = 1 while i < 10: print("*",end="") i+=1
![]()
用一個變量打印出一行十個小星星 (十個小星星塞在一個變量中,最后達因變量)
i = 0 strvar = '' while i<10: strvar += "*" i+=1 # strvar = strvar + "*" + "*" + "*" print(strvar)
打印一行十個小星星 奇數個打印★ 偶數個打印☆
i = 0 while i<10: # 余數為0 打印黑猩 if i % 2 == 0: print("★",end="") else: #否則打印白星 print("☆",end="") i+=1
![]()
用 一個循環 打印十行十列小星星
print() i = 0 while i<100: # 輸出小星星 print("*",end="") # i 從0開始到99結束 # 任意數n與10取余 范圍0 ~ 9 0代表第一個星星 9代表最后一個,正好10 , 如果是10個選擇換行 if i % 10 == 9: # 打印換行 print() i+=1

一個循環 打印十行十列隔列變色小星星(一個循環)
i = 0 while i<100: # 輸出小星星 if i % 2 == 0: print("★",end="") else: print("☆",end="") # 最后換行 if i % 10 == 9: print() i+=1

一個循環 打印十行十列隔行變色小星星(一個循環)
i = 0 while i<100: # 利用地板除與取余的規律 產生十個相同的數字,並且按10個相同的余數取花色 if i // 10 % 2 == 0: print("★",end="") else: print("☆",end="") # 控制換行 if i % 10 == 9: print() i+=1

字符串的操作
字符串的拼接 +
str1 = "生命" str2 = "是美麗的" res = str1 + str2 print(res) str1 += str2 # str1 = str1 + str2 print(str1)
字符串的重復 *
str1 = "重要的事情說三遍" res = str1 * 3 print(res)
![]()
字符串跨行拼接 \
strvar = "我的電腦丟了用英文說是my"\ " computer"\ "is lost" print(strvar)
![]()
字符串的索引
和列表類似
strvar = "梁山好漢108將" # -8-7-6-5-4-3-2-1 res = strvar[6] print(res) res = strvar[-2] print(res)

字符串的切片:
語法 => 字符串[::] 完整格式:[開始索引:結束索引:間隔值] (1)[開始索引:] 從開始索引截取到字符串的最后 (2)[:結束索引] 從開頭截取到結束索引之前(結束索引-1) (3)[開始索引:結束索引] 從開始索引截取到結束索引之前(結束索引-1) (4)[開始索引:結束索引:間隔值] 從開始索引截取到結束索引之前按照指定的間隔截取字符 (5)[:]或[::] 截取所有字符串
案例
strvar = "生命中曾經有過的所有燦爛,原來終究,都需要用寂寞來償還" # (1)[開始索引:] 從開始索引截取到字符串的最后 res = strvar[23:] #寞來償還 print(res) # (2)[:結束索引] 從開頭截取到結束索引之前(結束索引-1) # 注意:高位取不到 res = strvar[:4] #生命中曾
print(res) # (3)[開始索引:結束索引] 從開始索引截取到結束索引之前(結束索引-1) res = strvar[5:9] #有過的所 print(res) # (4)[開始索引:結束索引:間隔值] 從開始索引截取到結束索引之前按照指定的間隔截取字符 ''' 找出開始索引號3 然后依次加5 會變成 3 8 13 18 23 28 通過數字找索引對應的字符 ''' res = strvar[1::2] #命曾有的有爛原終,需用寞償 print(res) res = strvar[3::5] #曾所原都寞 print(res) res = strvar[:10:3] #生曾過有 print(res) res = strvar[::2] #生中經過所燦,來究都要寂來還 print(res) # 逆向索引 -1 -2 -3 -4 -5 ... res = strvar[-1::-1] # 還償來寞寂用要需都,究終來原,爛燦有所的過有經曾中命生 print(res) res = strvar[-1:-3:-1] # 方向從右向左 還償 print(res)
字符串的格式化 (%d %f %s 占位符 )
res = "我今天花了%d元買了一杯咖啡,在星巴克花%f小時學習python,感覺%s" %(30,3.5,"累爆了") print (res)
使用字符串類型的,必須使用引號,否則報錯
![]()
