Python全棧之單項(xiàng)循環(huán)
1. 多項(xiàng)_巢狀分支
多項(xiàng)分支 (多選一)
"""
if 條件表達(dá)式1:
code1
elif 條件表達(dá)式2:
code2
elif 條件表達(dá)式3:
code3
else:
`code4
如果條件表達(dá)式1成立,執(zhí)行對(duì)應(yīng)的分支code1,反之判斷條件表達(dá)式2是否成立
如果條件表達(dá)式2成立,執(zhí)行對(duì)應(yīng)的分支code2,反之判斷條件表達(dá)式3是否成立
如果條件表達(dá)式3成立,執(zhí)行對(duì)應(yīng)的分支code3,如果不成立,直接走else分支,到此程序執(zhí)行完畢
elif 可以是0個(gè) 或者 多個(gè)
else 可以是0個(gè) 或者 一個(gè)
"""
youqian = False
youfang = False
youche = False
if youqian == True:
print("說(shuō)明這個(gè)人很有實(shí)力")
elif youfang == True:
print("能交給朋友么")
elif youche == True:
print("開(kāi)了雅迪艾瑪調(diào)動(dòng)車,我們碰一碰吧")
else:
print("你還是去做美團(tuán)騎手吧")
print("<=======================>")
# ### 巢狀分支
"""單項(xiàng)分支,雙向分支,多項(xiàng)分支的互相嵌套組合"""
youqian = True
youfang = True
youche = True
youyanzhi = True
youtili = False
if youqian == True:
if youfang == True:
if youche == True:
if youyanzhi == True:
if youtili == True:
print("我要嫁給你~")
else:
print("你去吃點(diǎn)大腰子再來(lái)~")
else:
print("你去一下泰國(guó)+韓國(guó),整整容")
else:
print("你是個(gè)好人吶~")
print("<=======================>")
#出題 height
#女生找對(duì)象
# 男生在1米~1.5米之間 小強(qiáng) 你在哪里?
# 男生在1.5~1.7米之間 沒(méi)有安全感~
# 男生 1.7~ 1.8米之間 帥哥 留個(gè)電話
# 男生 1.8~2米之間 帥哥 你建議多一個(gè)女朋友嗎
# python特有(注意:因?yàn)閕nput接受的數(shù)都是字符串,又因?yàn)槲覀儠?huì)輸入小數(shù),所以這里只能用float)
"""
height = float(input("請(qǐng)輸入您的身高:"))
if 1 <= height < 1.5:
print("小強(qiáng) 你在哪里?")
elif 1.5 <= height < 1.7:
print("沒(méi)有安全感~")
elif 1.7 <= height < 1.8:
print("帥哥 留個(gè)電話")
elif 1.8 <= height < 2:
print("你建議多一個(gè)女朋友嗎")
else:
print("抱歉,沒(méi)有合適的選項(xiàng)")
"""
# 通用寫(xiě)法
height = float(input("請(qǐng)輸入您的身高:"))
if 1 <= height and height < 1.5:
print("小強(qiáng) 你在哪里?")
elif 1.5 <= height and height < 1.7:
print("沒(méi)有安全感~")
elif 1.7 <= height and height < 1.8:
print("帥哥 留個(gè)電話")
elif 1.8 <= height and height < 2:
print("你建議多一個(gè)女朋友嗎")
else:
print("抱歉,沒(méi)有合適的選項(xiàng)")
"""
tab 向右縮進(jìn)
shift + tab 向左縮進(jìn)
"""
2. 循環(huán)結(jié)構(gòu)
2.1 循環(huán)結(jié)構(gòu)
"""特點(diǎn):減少冗余代碼,提升執(zhí)行效率""" """ 語(yǔ)法: while 條件表達(dá)式: code1 (1) 初始化一個(gè)變量 (2) 寫(xiě)上循環(huán)的條件 (3) 自增自減的值 """ # ### 打印1 ~ 100 # (1) 初始化一個(gè)變量 i = 1 # (2) 寫(xiě)上循環(huán)的條件 while i <= 100: # (4) 寫(xiě)上循環(huán)的邏輯 print(i) # (3) 自增自減的值 i += 1 # i = i + 1 """ 代碼解析: 第一次循環(huán) i = 1 i<=100 判斷為真,執(zhí)行循環(huán)體 print(1) i += 1 i => 2 第二次循環(huán) 代碼回到17行,重新進(jìn)行條件判定 i = 2 i<=100 判斷為真,執(zhí)行循環(huán)體 print(2) i += 1 i => 3 第三次循環(huán) 代碼回到17行,重新進(jìn)行條件判定 i = 3 i<=100 判斷為真,執(zhí)行循環(huán)體 print(3) i += 1 i => 4 .... 以此類推 直到i = 101 i <= 100 判斷為假,不執(zhí)行循環(huán)體,到此循環(huán)結(jié)束... 1 ~ 100 """ # ### 1 ~ 100的累加和 # (1) 初始化一個(gè)變量 i = 1 total = 0 # (2) 寫(xiě)上循環(huán)的條件 while i <= 100 : # (4) 寫(xiě)上自定義的邏輯 total += i # (3) 自增自減的值 i += 1 print(total) """ 代碼解析: 第一次循環(huán) i = 1 i <= 100 判定為真True 執(zhí)行循環(huán)體 total += i => total = total + i => 0 + 1 i += 1 => i = 2 第二次循環(huán) i = 2 i <= 100 判定為真True 執(zhí)行循環(huán)體 total += i => total = total + i => 0 + 1 + 2 i += 1 => i = 3 第三次循環(huán) i = 3 i <= 100 判定為真True 執(zhí)行循環(huán)體 total += i => total = total + i => 0 + 1 + 2 + 3 i += 1 => i = 4 ... 依次類推 當(dāng)i = 101 101 <= 100 判定為假False 不執(zhí)行循環(huán)體,到此,循環(huán)結(jié)束.. total += i => total + i => 0 + 1 + 2 + 3 + 4 + .... + 100 => 5050 """ # 死循環(huán) """ while True: print(1) """ # ### 用死循環(huán)的方法實(shí)現(xiàn) 1 ~ 100累加和 i = 1 total = 0 sign = True while sign: total += i i+=1 # 判斷i是否加到了101 , 不參與循環(huán) if i == 101: # 終止循環(huán) sign = False print(total) #1 ~ 100 = 5050
2.2 單項(xiàng)循環(huán)的練習(xí)
# (1)打印 一行十個(gè)小星星* help(print)
# help 查看某個(gè)方法的文檔
help(print)
"""
# print("*",end='')
# print("*",end='')
# print("*",end='')
# print("*",end='')
# print("*",end='')
# print("*",end='')
# print("*",end='')
# print("*",end='')
# print("*",end='')
# print("*",end='')
"""
i = 0
while i<10:
# end='' 打印時(shí),尾部默認(rèn)不加換行
print("*",end='')
i += 1
# 默認(rèn)換行
# print()
# (2)通過(guò)打印一個(gè)變量的形式,展現(xiàn)一行十個(gè)小星星
print("<======>")
i = 0
strvar = ""
while i < 10:
# 寫(xiě)上循環(huán)的邏輯
strvar += "*" # strvar = strvar + "*"
i +=1
print(strvar)
"""
strvar += "*" => strvar = "*"
strvar += "*" => strvar = "*" + "*" = "**"
strvar += "*" => strvar = "**" + "*" = "***"
...
strvar += "*" => strvar = "********" + "*" = "*********"
"""
# (3)一行十個(gè)換色的星星 ★☆★☆★☆★☆★☆
"""
# 方法一
i = 0
while i < 5:
print("★☆",end="")
i+=1
"""
# 方法二
i = 0
while i < 10:
if i % 2 == 0 :
print("★",end="")
else:
print("☆",end="")
i+=1
print("<=============>")
# 方法三
i = 0
strvar = ""
while i < 10:
if i % 2 == 0 :
strvar += "★"
else:
strvar += "☆"
i+=1
print(strvar)
"""
***公式: 任意數(shù) 和 n 進(jìn)行取余,余數(shù)的范圍: 0 ~ (n-1)***
0 % 2 = 0
1 % 2 = 1
2 % 2 = 0
3 % 2 = 1
被除數(shù) % 2 => 0 或者 1
0 % 5 = 0
1 % 5 = 1
2 % 5 = 2
3 % 5 = 3
4 % 5 = 4
5 % 5 = 0
6 % 5 = 1
7 % 5 = 2
被除數(shù) % 5 => 0 或者 1,2,3,4
"""
# (4)用一個(gè)循環(huán),打印十行十列小星星
"""
★★★★★★★★★★
★★★★★★★★★★
★★★★★★★★★★
★★★★★★★★★★
★★★★★★★★★★
★★★★★★★★★★
★★★★★★★★★★
★★★★★★★★★★
★★★★★★★★★★
★★★★★★★★★★
"""
# 方法一
i = 0
while i < 100:
# 邏輯寫(xiě)在這里
print("*" , end="")
# 打印換行 (在9 19 29 .. 99 )
if i % 10 == 9:
print()
i += 1
"""
0123456789
**********
10111213141516171819
**********
20212223242526272829
**********
...
90919293949596979899
**********
9 19 29 39 49 59 69 79 89 99
9 % 10 = 9
19 % 10 = 9
29 % 10 = 9
...
99 % 10 = 9
"""
print("<======>")
# 方法二
i = 1
while i <= 100:
# 邏輯寫(xiě)在這里
print("*" , end="")
# 打印換行 (在9 19 29 .. 99 )
if i % 10 == 0:
print()
i += 1
"""
12345678910
**********
11121314151617181920
**********
21222324252627282930
**********
...
919293949596979899100
**********
10 20 30 ... 100
"""
# (5) 一個(gè)循環(huán)實(shí)現(xiàn)十行十列,格列換色的小星星
"""
★☆★☆★☆★☆★☆
★☆★☆★☆★☆★☆
★☆★☆★☆★☆★☆
★☆★☆★☆★☆★☆
★☆★☆★☆★☆★☆
★☆★☆★☆★☆★☆
★☆★☆★☆★☆★☆
★☆★☆★☆★☆★☆
★☆★☆★☆★☆★☆
★☆★☆★☆★☆★☆
"""
i = 0
while i < 100:
# (1)打印星星
if i % 2 == 0 :
print("★",end="")
else:
print("☆",end="")
# (2)打印換行 (在9 19 29 .. 99 )
if i % 10 == 9:
print()
i += 1
# (6)一個(gè)循環(huán)實(shí)現(xiàn)十行十列,隔行換色的小星星
"""
★★★★★★★★★★
☆☆☆☆☆☆☆☆☆☆
★★★★★★★★★★
☆☆☆☆☆☆☆☆☆☆
★★★★★★★★★★
☆☆☆☆☆☆☆☆☆☆
★★★★★★★★★★
☆☆☆☆☆☆☆☆☆☆
★★★★★★★★★★
☆☆☆☆☆☆☆☆☆☆
*** 公式:任意數(shù)和n進(jìn)行地板除,會(huì)出現(xiàn)n個(gè)相同的數(shù)
0 // 10 = 0
1 // 10 = 0
2 // 10 = 0
..
9 // 10 = 0
0 ~ 9 // 10 => 0 (10個(gè)相同的0)
10 // 10 = 1
11 // 10 = 1
12 // 10 = 1
...
19 // 10 = 1
10 ~ 19 // 10 => 1 (10個(gè)相同的1)
.... 以此類推
20 ~ 29 // 10 => 2 (10個(gè)相同的2)
30 ~ 39 // 10 => 3 (10個(gè)相同的3)
40 ~ 49 // 10 => 4 (10個(gè)相同的4)
...
90 ~ 99 // 10 => 9 (10個(gè)相同的9)
0~ 100 會(huì)出現(xiàn)10個(gè)相同的0,1,2 , 3 ... 9
0 // 3 0
1 // 3 0
2 // 3 0
3 // 3 1
4 // 3 1
5 // 3 1
"""
""""""
# 方法一
i = 0
while i < 100:
# (1)打印星星
if i // 10 % 2 == 0:
print("★",end="")
else:
print("☆",end="")
# (2)打印換行 (在9 19 29 .. 99 )
if i % 10 == 9:
print()
i += 1
# 方法二
print("<=================>")
i = 10
while i < 110:
# 打印星星
num = int(str(i)[-2])
if num % 2 == 0 :
print("★",end="")
else:
print("☆",end="")
# 打印換行
if i % 10 == 9:
print()
i+=1
"""
10 ~ 100 101 102 103 110...
10 ~ 19 => 1
20 ~ 29 => 2
30 ~ 39 => 3
90 ~ 99 => 9
100 ~ 109 => 0
"""
3. 字符串的切片
字符串相關(guān)操作
# (1)字符串的拼接 +
str1 = "趙沈陽(yáng),"
str2 = "so strong"
res = str1 + str2
res = "趙沈陽(yáng)," + "so strong"
print(res)
# res = res + ",旁邊的同學(xué)很喜歡他~"
res += ",旁邊的同學(xué)很喜歡他~"
print(res)
# (2)字符串的重復(fù) *
strvar = "重要的事情說(shuō)三遍~"
res = strvar * 3
print(res)
# (3)字符串跨行拼接 \
str1 = "kskfjskjfklsjfklasdjklfjaskldjfaskljfklasjdfklasjdklfjaskldfjaskldjflasjfsf" \
"1122334"
print(str1)
# (4)字符串的索引
# 0 1 2 3 4 5
strvar = "趙世超真帥呀"
# -6-5-4-3-2-1
print(strvar[1])
# (5)字符串的切片: (截取)
"""
語(yǔ)法 => 字符串[::] 完整格式:[開(kāi)始索引:結(jié)束索引:間隔值]
(1)[開(kāi)始索引:] 從開(kāi)始索引截取到字符串的最后
(2)[:結(jié)束索引] 從開(kāi)頭截取到結(jié)束索引之前(結(jié)束索引-1)
(3)[開(kāi)始索引:結(jié)束索引] 從開(kāi)始索引截取到結(jié)束索引之前(結(jié)束索引-1)
(4)[開(kāi)始索引:結(jié)束索引:間隔值] 從開(kāi)始索引截取到結(jié)束索引之前按照指定的間隔截取字符
(5)[:]或[::] 截取所有字符串
"""
strvar = "王文是這個(gè)宇宙當(dāng)中,最完美,無(wú)暇,善良,漂亮,英俊,帥氣,瀟灑,風(fēng)流倜儻的神秘男孩"
# (1)[開(kāi)始索引:] 從開(kāi)始索引截取到字符串的最后
res = strvar[3:]
print(res)
# (2)[:結(jié)束索引] 從開(kāi)頭截取到結(jié)束索引之前(結(jié)束索引-1)
"""4這個(gè)最大值本身獲取不到,要獲取到4之前的那一個(gè)數(shù)據(jù) : 取頭舍尾"""
res = strvar[:5]
print(res)
# (3)[開(kāi)始索引:結(jié)束索引] 從開(kāi)始索引截取到結(jié)束索引之前(結(jié)束索引-1)
res = strvar[10:16]
print(res)
# (4)[開(kāi)始索引:結(jié)束索引:間隔值] 從開(kāi)始索引截取到結(jié)束索引之前按照指定的間隔截取字符
# 從左向右截取
res = strvar[::3]
# 0 3 6 9 12 15 ...
print(res)
# 從右向左截取
res = strvar[::-1]
# -1 -2 -3 -4 -5 -6 ....
print(res)
res = strvar[-3:-10:-2]
# -3 -5 -7 -9 秘的倜風(fēng)
print(res)
print("<====>")
"""從左到右截,間隔值為正值,反過(guò)來(lái),間隔值是負(fù)值,才能保證截取到數(shù)據(jù)"""
"""
res = strvar[-3:-10:10] # 錯(cuò)誤的邏輯
print(res)
res = strvar[1:10]
print(res)
"""
4. 小練習(xí)
問(wèn)題:
1.猜大小的游戲: 設(shè)定一個(gè)理想數(shù)字比如:66,讓用戶輸入數(shù)字,如果比66大,則顯示猜測(cè)的結(jié)果大了;如果比66小,則顯示猜測(cè)的結(jié)果小了;只有等于66,顯示猜測(cè)結(jié)果正確。 2.輸出 1-100 內(nèi)的所有奇數(shù) 3.輸出 1-100 內(nèi)的所有偶數(shù) 4.用戶登陸(有三次輸錯(cuò)機(jī)會(huì))且每次輸錯(cuò)誤時(shí)顯示剩余錯(cuò)誤次數(shù)(提示:使用字符串格式化) 5.寫(xiě)代碼,有如下字符串利用切片實(shí)現(xiàn)每一個(gè)功能 strvar = "132a4b5c" 1)對(duì)字符串進(jìn)行切片形成新的字符串 "132" 2)對(duì)字符串進(jìn)行切片形成新的字符串 "a4b" 3)對(duì)字符串進(jìn)行切片形成新的字符串 "1245" 4)對(duì)字符串進(jìn)行切片形成新的字符串 "3ab" 5)對(duì)字符串進(jìn)行切片形成新的字符串 "c" 6)對(duì)字符串進(jìn)行切片形成新的字符串 "ba3" 6.國(guó)際棋盤(pán)效果
答案:
# 1.猜大小的游戲:
# 設(shè)定一個(gè)理想數(shù)字比如:66,讓用戶輸入數(shù)字,如果比66大,則顯示猜測(cè)的結(jié)果大了;如果比66小,則顯示猜測(cè)的結(jié)果小了;只有等于66,顯示猜測(cè)結(jié)果正確。
"""
num = 66
str_num = input("請(qǐng)輸入理想的數(shù)字")
num_new = int(str_num)
if num_new > num:
print("猜測(cè)的結(jié)果大了")
elif num_new == num:
print("顯示猜測(cè)結(jié)果正確")
elif num_new < 66:
print("則顯示猜測(cè)的結(jié)果小了")
"""
# 2.輸出 1-100 內(nèi)的所有奇數(shù)
"""
i = 1
while i <= 100:
if i % 2 == 1:
print(i)
i +=1
"""
# 3.輸出 1-100 內(nèi)的所有偶數(shù)
"""
i = 1
while i <= 100:
if i % 2 == 0:
print(i)
i +=1
"""
# 4.用戶登陸(有三次輸錯(cuò)機(jī)會(huì))且每次輸錯(cuò)誤時(shí)顯示剩余錯(cuò)誤次數(shù)(提示:使用字符串格式化)
"""
times = 1
while times <= 3:
pwd = input("請(qǐng)輸入您的密碼:")
if pwd == "111":
print("恭喜你登錄成功~")
break
# 剩余次數(shù) = 總次數(shù) - 已經(jīng)使用的次數(shù)
print("你剩余的輸入次數(shù)是%d" % (3 - times))
times +=1
"""
"""
sign = True
times = 1
while sign:
pwd = input("請(qǐng)輸入您的密碼:")
if pwd == "111":
print("恭喜你登錄成功~")
sign = False
else:
# 剩余次數(shù) = 總次數(shù) - 已經(jīng)使用的次數(shù)
print("你剩余的輸入次數(shù)是%d" % (3 - times))
# 如果次數(shù)已經(jīng)是3次了,強(qiáng)制終止循環(huán);
if times == 3:
print("你已經(jīng)沒(méi)有機(jī)會(huì)了... ")
sign = False
times +=1
"""
# 5.寫(xiě)代碼,有如下字符串利用切片實(shí)現(xiàn)每一個(gè)功能
strvar = "132a4b5c"
# 1)對(duì)字符串進(jìn)行切片形成新的字符串 "132"
print(strvar[0:3])
# 2)對(duì)字符串進(jìn)行切片形成新的字符串 "a4b"
print(strvar[3:6])
# 3)對(duì)字符串進(jìn)行切片形成新的字符串 "1245"
print(strvar[::2])
# 4)對(duì)字符串進(jìn)行切片形成新的字符串 "3ab"
print(strvar[1:6:2])
# 5)對(duì)字符串進(jìn)行切片形成新的字符串 "c"
print(strvar[-1:])
# 6)對(duì)字符串進(jìn)行切片形成新的字符串 "ba3"
print(strvar[-3::-2]) # -3 -5 -7
# 6.國(guó)際棋盤(pán)效果
# 方法一
j = 0
while j < 8:
# □■□■□■□■
if j % 2 == 0:
print("□■□■□■□■",end="")
# ■□■□■□■□
else:
print("■□■□■□■□",end="")
print()
j +=1
"""
# □■□■□■□■
i = 0
while i < 8:
if i % 2 == 0:
print("□",end="")
else:
print("■",end="")
i +=1
# ■□■□■□■□
i = 0
while i < 8:
if i % 2 == 0:
print("■",end="")
else:
print("□",end="")
i +=1
"""
print("<=====>")
j = 0
while j < 8:
# □■□■□■□■
if j % 2 == 0:
i = 0
while i < 8:
if i % 2 == 0:
print("□",end="")
else:
print("■",end="")
i +=1
# ■□■□■□■□
else:
i = 0
while i < 8:
if i % 2 == 0:
print("■",end="")
else:
print("□",end="")
i +=1
print()
j +=1
# 方法二
"""
□■□■□■□■
■□■□■□■□
□■□■□■□■
■□■□■□■□
□■□■□■□■
■□■□■□■□
□■□■□■□■
■□■□■□■□
"""
print("<=====>")
i = 0
while i < 64:
# 判斷當(dāng)前是奇數(shù)行還是偶數(shù)行
if i // 8 % 2 == 0:
# □■□■□■□■
if i % 2 == 0:
print("□",end="")
else:
print("■",end="")
else:
# ■□■□■□■□
if i % 2 == 0:
print("■",end="")
else:
print("□",end="")
# 第八個(gè)方塊換行
if i % 8 == 7:
print()
i +=1
print("<=====>")
# 方法三
i = 0
while i < 4:
strvar = ""
j = 0
# 打印黑白相間的小方塊
while j < 8:
if j % 2 == 0:
strvar += "□"
else:
strvar += "■"
j +=1
# 正向打印
print(strvar)
# 逆向打印
print(strvar[::-1])
i +=1
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Python?range函數(shù)生成一系列連續(xù)整數(shù)的內(nèi)部機(jī)制解析
這篇文章主要為大家介紹了Python?range函數(shù)生成一系列連續(xù)整數(shù)的內(nèi)部機(jī)制解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
pandas中遍歷dataframe的每一個(gè)元素的實(shí)現(xiàn)
這篇文章主要介紹了pandas中遍歷dataframe的每一個(gè)元素的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
python3 property裝飾器實(shí)現(xiàn)原理與用法示例
這篇文章主要介紹了python3 property裝飾器實(shí)現(xiàn)原理與用法,結(jié)合實(shí)例形式分析了Python3 property裝飾器功能、原理及實(shí)現(xiàn)方法,需要的朋友可以參考下2019-05-05
Python實(shí)現(xiàn)將內(nèi)容寫(xiě)入文件的五種方法總結(jié)
本篇帶你詳細(xì)看一下python將內(nèi)容寫(xiě)入文件的方法以及細(xì)節(jié),主要包括write()方法、writelines()?方法、print()?函數(shù)、使用?csv?模塊、使用?json?模塊,需要的可以參考一下2023-04-04
Python xlwt設(shè)置excel單元格字體及格式
這篇文章主要為大家詳細(xì)介紹了Python xlwt設(shè)置excel單元格字體及格式的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
Python刪除Java源文件中全部注釋的實(shí)現(xiàn)方法
這篇文章主要介紹了Python刪除Java源文件中全部注釋的實(shí)現(xiàn)方法,涉及Python讀取文件、正則匹配、字符串查找、替換等相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
Python臨時(shí)文件創(chuàng)建之tempfile模塊介紹
這篇文章主要介紹了Python臨時(shí)文件創(chuàng)建之tempfile模塊,Python的tempfile模塊是用來(lái)創(chuàng)建臨時(shí)文件或者文件夾的跨平臺(tái)工具,下面關(guān)于模塊簡(jiǎn)單介紹需要的小伙伴可以參考一下2022-03-03

