if就是一個(gè)條件判斷的,當(dāng)滿足不同樣的條件的時(shí)候執(zhí)行不同的操作,如法如下:
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" > if <條件一>: <條件一代碼塊> elif <條件二>: <條件二代碼塊> else : <上面兩個(gè)或者多個(gè)條件都不滿足則只需這里的代碼塊><br>< /span > |
來(lái)一個(gè)小栗子:
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" > #!/use/bin/env python# _*_ coding:utf-8 _*_# 只需腳本是讓用戶輸入一個(gè)數(shù)字,并把值賦值給變量nn = int(input("Pless Numbers: "))# 如果n大于10if n > 10: # 輸出n > 10 print("n > 10")# 如果n等于10elif n == 10: # 輸出n == 10 print("n == 10")# 否則else: # 輸出n < 10 print("n < 10")<br></span> |
如果條件成立,那么就把值1賦值給var,如果條件不成立,就把值2賦值給var
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" >var = 值1 if 條件 else 值2<br>< /span > |
例子
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" >>>> var = "True" if 1==1 else "False" >>> var 'True' <br>< /span > |
for語(yǔ)句是python中的循環(huán)控制語(yǔ)句,可用來(lái)遍歷某一對(duì)象,還具有一個(gè)附帶的可選的else塊,主要用于處理for語(yǔ)句中包含的break語(yǔ)句。
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" >>>> li = [ 'ansheng' , 'eirc' ]>>> for n in range(len(li)):... print(li[n])...anshengeirc<br>< /span > |
enumerate
函數(shù)用于遍歷序列中的元素以及它們的下標(biāo)
例如定義一個(gè)列表,內(nèi)容有電腦,筆記本,手機(jī),組裝機(jī),執(zhí)行腳本的時(shí)候讓用戶選擇商品,并且給商品加上序列:
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" >>>> li = [ "電腦" , "筆記本" , "手機(jī)" , "組裝機(jī)" ]>>> for key,value in enumerate(li):... print(key,value)...0 電腦1 筆記本2 手機(jī)3 組裝機(jī)<br>< /span > |
為了給用戶良好的體驗(yàn),需要要從1開(kāi)始,然后用戶如果輸出相對(duì)應(yīng)的序列那么就打印出序列對(duì)應(yīng)的值:
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" > #!/usr/bin/env python# _*_ coding:utf-8 _*_# 定義一個(gè)列表li = ["電腦","筆記本","手機(jī)","組裝機(jī)"]# enumerate默認(rèn)從0開(kāi)始自增,我們可以改為從1開(kāi)始自增for key,value in enumerate(li,1): print(key,value)# 讓用戶選擇商品的序列l(wèi)i_num = input("請(qǐng)選擇商品:")# print輸出的時(shí)候讓序列減1print(li[int(li_num)-1])<br></span> |
執(zhí)行結(jié)果如下
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" >1 電腦2 筆記本3 手機(jī)4 組裝機(jī)請(qǐng)選擇商品:1電腦<br>< /span > |
range()函數(shù)返回在特定區(qū)間的數(shù)字序列,range()函數(shù)的用法類似切片:range(start,stop,setup),start的默認(rèn)值為0,即從0開(kāi)始,stop的參數(shù)是必須輸入的,輸出的最后一個(gè)數(shù)值是stop的前一個(gè),step的默認(rèn)值是1,setup是步長(zhǎng)
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" >>>> for n in range(5):... print(n)...01234<br>< /span > |
反向輸出
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" >>>> for n in range(5,-1,-1):... print(n)...543210<br>< /span > |
python 2.7.11
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" >>>> range(0,100)[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]<br>< /span > |
range在Python2.7中,會(huì)把所有的序列都輸出出來(lái),沒(méi)一個(gè)序列都在內(nèi)存中占用一點(diǎn)空間
xrange
xrang不會(huì)一次性把序列全部都存放在內(nèi)存中,而是用到for循環(huán)進(jìn)行迭代的時(shí)候才會(huì)一個(gè)一個(gè)的存到內(nèi)存中,相當(dāng)于Python3.5中的range。
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" >>>> for i in xrange(1,10):... print(i)...123456789<br>< /span > |
python 3.5.1
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" >>>> range(1,100)range(1, 100)<br>< /span > |
range在python3.5中就不會(huì)一次性的占用那么多空間,他會(huì)我需要用到這個(gè)序列的時(shí)候然后再內(nèi)存中開(kāi)辟一塊空間給這個(gè)序列,不是一次性分完,相當(dāng)于Python2.7.11中的xrange.
while
循環(huán)不同于for
循環(huán),while
循環(huán)是只要條件滿足,那么就會(huì)一直運(yùn)行代碼塊,否則就運(yùn)行else
代碼塊,語(yǔ)法如下:
while <條件>: <代碼塊>else: <如果條件不成立執(zhí)行這里的代碼塊>
小栗子
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" > #!/use/bin/env python# _*_ coding:utf-8 _*_flag = Truewhile flag: print(flag) flag = Falseelse: print('else', flag)<br></span> |
有如下值集合 [11,22,33,44,55,66,77,88,99,90],將所有大于 66 的值保存至字典的第一個(gè)key中,將小于 66 的值保存至第二個(gè)key的值中。
即: {‘k1’: 大于66的所有值, ‘k2’: 小于66的所有值}
圖解流程:
解答:
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" > #_*_coding:utf-8_*_num = [11,22,33,44,55,66,77,88,99,90]dict = { 'k1':[], 'k2':[]}for n in range(len(num)): if num[n] <= 66: dict['k1'].append(num[n]) else: dict['k2'].append(num[n])print(dict.get("k1"))print(dict.get("k2"))<br></span> |
輸出結(jié)果
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" >[11, 22, 33, 44, 55, 66][77, 88, 99, 90]<br>< /span > |
查找列表中元素,移動(dòng)空格,并查找以 a或A開(kāi)頭 并且以c結(jié)尾的所有元素。
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" >li = [ "alec" , " aric" , "Alex" , "Tony" , "rain" ]tu = ( "alec" , " aric" , "Alex" , "Tony" , "rain" ) dic = { 'k1' : "alex" , 'k2' : ' aric' , "k3" : "Alex" , "k4" : "Tony" }<br>< /span > |
列表的方式
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" > #!/usr/bin/env python# _*_ coding:utf-8 _*_li = ["alec", " aric", "Alex", "Tony", "rain"]for n in range(len(li)): # 去掉左右兩邊的空格然后輸出內(nèi)容并且把首字母換成大寫 # string = str(li[n]).strip().capitalize() # 把字符串中的空格替換掉,然后首字母轉(zhuǎn)換成大寫 string = str(li[n]).replace(" ","").capitalize() # 判斷如果字符串的開(kāi)頭是大寫字母"A"并且小寫字母是"c"就print輸出 if string.find("A") == 0 and string.rfind("c") == len(string) - 1: print(li[n],"--->",string)<br></span> |
輸出的結(jié)果:
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" >alec ---> Alec aric ---> Aric<br>< /span > |
元組的方式
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" > #!/usr/bin/env python# _*_ coding:utf-8 _*_tu = ("alec", " aric", "Alex", "Tony", "rain")for n in range(len(tu)): # 去掉左右兩邊的空格然后輸出內(nèi)容并且把首字母換成大寫 # string = str(li[n]).strip().capitalize() # 把字符串中的空格替換掉,然后首字母轉(zhuǎn)換成大寫 string = str(tu[n]).replace(" ","").capitalize() # 判斷如果字符串的開(kāi)頭是大寫字母"A"并且小寫字母是"c"就print輸出 if string.find("A") == 0 and string.rfind("c") == len(string) - 1: print(tu[n],"--->",string)<br></span> |
輸出的結(jié)果
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" >alec ---> Alec aric ---> Aric<br>< /span > |
字典的方式
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" > #!/usr/bin/env python# _*_ coding:utf-8 _*_dic = { 'k1': "alex", 'k2': ' aric', "k3": "Alex", "k4": "Tony"}for key,val in dic.items(): string = str(val).replace(" ","").capitalize() if string.find("A") == 0 and string.rfind("c") == len(string) - 1: print(key,val,"---",string)<br></span> |
輸出的結(jié)果
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" >k2 aric --- Aric<br>< /span > |
用戶輸入序號(hào),顯示用戶選中的商品
商品
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" >li = [ "手機(jī)" , "電腦" , '鼠標(biāo)墊' , '游艇' ]<br>< /span > |
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" > #!/usr/bin/env python# _*_ coding:utf-8 _*_li = ["手機(jī)", "電腦", '鼠標(biāo)墊', '游艇']for key,value in enumerate(li,1): print(key,".",value)li_num = input("請(qǐng)選擇商品:")print(li[int(li_num)-1])<br></span> |
執(zhí)行結(jié)果
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" >1 . 手機(jī)2 . 電腦3 . 鼠標(biāo)墊4 . 游艇請(qǐng)選擇商品:1手機(jī)<br>< /span > |
功能要求:
要求用戶輸入總資產(chǎn),例如:2000
顯示商品列表,讓用戶根據(jù)序號(hào)選擇商品,加入購(gòu)物車
購(gòu)買,如果商品總額大于總資產(chǎn),提示賬戶余額不足,否則,購(gòu)買成功。
附加:可充值、某商品移除購(gòu)物車
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" >goods = [ { "name" : "電腦" , "price" : 1999}, { "name" : "鼠標(biāo)" , "price" : 10}, { "name" : "游艇" , "price" : 20}, { "name" : "美女" , "price" : 998},]<br>< /span > |
邏輯圖
代碼部分
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" > #!/usr/bin/env python# _*_ coding:utf-8 _*_<br># 擁有的商品及價(jià)格<br>goods = [ {"name": "電腦", "price": 1999}, {"name": "鼠標(biāo)", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998},]<br># 控制while循環(huán)開(kāi)關(guān)switch = "on"<br># 購(gòu)物車存放的商品及單價(jià)gouwuche = { # 商品列表 "wuping":[], <br># 單價(jià)列表 "jiage":[]}<br># 用戶輸入會(huì)員卡內(nèi)余額while True: try: <br># 讓用戶輸入會(huì)員卡內(nèi)擁有的余額 money = int(input("請(qǐng)輸入你會(huì)員卡內(nèi)的余額:")) # 異常判斷,如果類型不是整型則執(zhí)行except內(nèi)的代碼 except ValueError: <br># 提示用戶輸入的格式錯(cuò)誤,讓其重新輸入 print("error,余額格式輸入錯(cuò)誤,請(qǐng)重新輸入!\n例如:5000") <br># 終端當(dāng)前循環(huán)讓循環(huán)重新執(zhí)行 continue break# 進(jìn)入購(gòu)買商品的流程while switch == "on": <br># 打印出所有的商品 print("\n","序列","商品","單價(jià)") <br># 以序列的方式輸出現(xiàn)擁有的商品及商品單價(jià) for num,val in enumerate(goods,1): for n in range(len(goods)): if num-1 == n: print(" ",num,goods[n]["name"],goods[n]["price"]) <br># 判斷用戶輸入的序列是否規(guī)范 while True: try: <br># 輸入產(chǎn)品序列,類型轉(zhuǎn)換為整型 x = int(input("請(qǐng)選擇商品序列:")) <br># 如果用戶輸入的非整型,提示用戶重新輸入 except ValueError: print("error,請(qǐng)選擇商品的序列") continue <br># 如果用戶輸入的序列不再產(chǎn)品序列當(dāng)中讓用戶重新輸入 if x > num: print("error,請(qǐng)選擇商品的序列") continue break # 輸出購(gòu)買物品的信息 print("你已經(jīng)把商品",goods[x-1]["name"],"加入購(gòu)物車","物品單價(jià)是:",goods[x-1]["price"],"\n") <br># 把物品名稱放入gouwuche的wuping列表中 gouwuche["wuping"].append(goods[x-1]["name"]) <br># 把物品單價(jià)放入gouwuche的jiage列表中 gouwuche["jiage"].append(goods[x-1]["price"]) <br># 用戶輸入選項(xiàng) while switch == "on": <br># 輸出現(xiàn)有選項(xiàng) print("查看購(gòu)物車:p 結(jié)算:w 刪除商品:d 繼續(xù)購(gòu)買:n 充值:i 顯示余額:m 退出:q") <br># 把用戶輸入的選項(xiàng)轉(zhuǎn)換為字符串 xx = str(input("請(qǐng)輸入你的選擇:")) <br># 如果用戶輸入的是p則列出當(dāng)前購(gòu)物車內(nèi)的商品名稱 if xx == "p": <br># 以序列的方式輸出字典gouwuche內(nèi)的wuping列表 for wp_num,val in enumerate(gouwuche["wuping"], 1): print(wp_num, val) <br># 如果用戶輸入的是w則結(jié)算 elif xx == "w": <br># 定義一個(gè)默認(rèn)的變量為用戶商品的總金額 zje = 0 <br># 把gouwuche中的jiage列表內(nèi)的整數(shù)進(jìn)行相加并復(fù)制給zje for n in range(len(gouwuche["jiage"])): zje = zje + gouwuche["jiage"][n] <br># 如果商品的總金額大于用戶會(huì)員卡內(nèi)的余額,則提示用戶錢不夠 if zje > money: print("sorry, 錢不夠哦~~\n") <br># 否則就退出程序,并且輸出用戶本次消費(fèi)的情況 else: switch = "off" print("購(gòu)物愉快,您本次消費(fèi)",zje,"RMB","還剩余",money-zje,"RMB") <br># 如果用戶輸入的是d則進(jìn)入刪除購(gòu)物車內(nèi)的商品界面 elif xx == "d": <br># 首先輸出用戶購(gòu)物車內(nèi)的商品列表 for wp_num, val in enumerate(gouwuche["wuping"], 1): print(wp_num, val) <br># 選擇所刪除商品的序列 while True: try: deltet = int(input("請(qǐng)選擇要?jiǎng)h除的商品序列:")) except ValueError: print("error,請(qǐng)輸出正確的序列!") continue if deltet > wp_num: print("error,請(qǐng)選擇商品的序列") continue <br># 提示用戶購(gòu)物車內(nèi)被刪除的商品信息 print("你已經(jīng)刪除產(chǎn)品", gouwuche["wuping"][deltet - 1], "單價(jià)為;", gouwuche["jiage"][deltet - 1]) <br># 刪除商品 gouwuche["wuping"].pop(deltet - 1) <br># 刪除金額 gouwuche["jiage"].pop(deltet - 1) break <br># 如果用戶輸入的是i則進(jìn)入用戶會(huì)員卡充值頁(yè)面 elif xx == "i": <br># 判斷用戶輸入的銀行卡號(hào)格式是否正確 while True: try: user = int(input("請(qǐng)輸入你的銀行卡賬號(hào):")) except ValueError: print("error,卡號(hào)格式輸入錯(cuò)誤,請(qǐng)重新輸入..") continue break # 判斷用戶輸入的銀行卡密碼格式是否正確 while True: try: pwd = int(input("請(qǐng)輸入銀行卡的密碼:")) except ValueError: print("error,密碼格式輸入錯(cuò)誤,請(qǐng)重新輸入..") continue break # 判斷用戶輸入的賬號(hào)和密碼是否正確,默認(rèn)的賬號(hào)和密碼都是123 if user == 123 and pwd == 123: <br># 如果正確就讓用戶輸入要充值的金額 while True: try: newmoney = int(input("請(qǐng)輸入充值的金額:")) except ValueError: print("error,金額格式輸入錯(cuò)誤,請(qǐng)重新輸入..") continue break <br># 余額加上充值的金額 money = money + newmoney <br># 輸出本次充值的信息 print("你已成功充值",newmoney,"RMB,現(xiàn)在賬戶余額為:",money,"RMB\n") <br># 如果用戶銀行卡賬號(hào)或密碼錯(cuò)誤,就提示用戶輸入錯(cuò)誤,讓后讓用戶重新選擇 else: print("銀行卡賬號(hào)或密碼錯(cuò)誤.\n") <br># 如果用戶輸入的是m則顯示用戶會(huì)員卡內(nèi)的余額 elif xx == "m": print("賬戶余額:",money,"\n") <br># 如果用戶輸入的是q則退出程序 elif xx == "q": <br># 把變量switch的值改為off switch = "off" # 如果用戶輸入的是n則繼續(xù)購(gòu)買商品 elif xx == "n": break <br># 如果用戶沒(méi)有輸入以上的任意一個(gè)選項(xiàng)則讓用戶重新輸入 else: print("請(qǐng)輸出正確的選項(xiàng)!")<br></span> |
執(zhí)行結(jié)果
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" >請(qǐng)輸入你會(huì)員卡內(nèi)的余額:1000 <br>序列 商品 單價(jià) <br>1 電腦 1999 2 鼠標(biāo) 10 3 游艇 20 4 美女 998<br>請(qǐng)選擇商品序列:1<br>你已經(jīng)把商品 電腦 加入購(gòu)物車 物品單價(jià)是: 1999 <br>查看購(gòu)物車:p 結(jié)算:w 刪除商品:d 繼續(xù)購(gòu)買:n 充值:i 顯示余額:m 退出:q請(qǐng)輸入你的選擇:i<br>請(qǐng)輸入你的銀行卡賬號(hào):123<br>請(qǐng)輸入銀行卡的密碼:123<br>請(qǐng)輸入充值的金額:2000你已成功充值 2000 RMB,現(xiàn)在賬戶余額為: 3000 RMB<br>查看購(gòu)物車:p 結(jié)算:w 刪除商品:d 繼續(xù)購(gòu)買:n 充值:i 顯示余額:m 退出:q<br>請(qǐng)輸入你的選擇:m<br>賬戶余額: 3000 <br>查看購(gòu)物車:p 結(jié)算:w 刪除商品:d 繼續(xù)購(gòu)買:n 充值:i 顯示余額:m 退出:q<br>請(qǐng)輸入你的選擇:p<br>1 電腦<br>查看購(gòu)物車:p 結(jié)算:w 刪除商品:d 繼續(xù)購(gòu)買:n 充值:i 顯示余額:m 退出:q請(qǐng)輸入你的選擇:d<br>1 電腦<br>請(qǐng)選擇要?jiǎng)h除的商品序列:1你已經(jīng)刪除產(chǎn)品 電腦 單價(jià)為; 1999<br>查看購(gòu)物車:p 結(jié)算:w 刪除商品:d 繼續(xù)購(gòu)買:n 充值:i 顯示余額:m 退出:q請(qǐng)輸入你的選擇:p<br>查看購(gòu)物車:p 結(jié)算:w 刪除商品:d 繼續(xù)購(gòu)買:n 充值:i 顯示余額:m 退出:q<br>請(qǐng)輸入你的選擇:n<br> 序列 商品 單價(jià) <br> 1 電腦 1999 2 鼠標(biāo) 10 3 游艇 20 4 美女 998<br> 請(qǐng)選擇商品序列:4<br> 你已經(jīng)把商品 美女 加入購(gòu)物車 物品單價(jià)是: 998 查看購(gòu)物車:p 結(jié)算:w 刪除商品:d 繼續(xù)購(gòu)買:n 充值:i 顯示余額:m 退出:q<br> 請(qǐng)輸入你的選擇:w<br> 購(gòu)物愉快,您本次消費(fèi) 998 RMB 還剩余 2002 RMB<br>< /span > |
用戶交互,顯示省市縣的選擇
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" >dic = { "河北" : { "石家莊" : [ "鹿泉" , "藁城" , "元氏" ], "邯鄲" : [ "永年" , "涉縣" , "磁縣" ], }, "河南" : { ... }, "山西" : { ... }}<br>< /span > |
流程圖解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 代碼如下 #!/usr/bin/env python# _*_ coding:utf-8 _*_ # 定義一個(gè)擁有省市縣的字典dic = { "河北": { "石家莊": ["鹿泉", "藁城", "元氏"], "邯鄲": ["永年", "涉縣", "磁縣"], }, "河南": { "鄭州市":["中原區(qū)","二七區(qū)","金水區(qū)"], "洛陽(yáng)市":["澗西區(qū)","西工區(qū)","老城區(qū)"] }, "山西": { "太原市":["迎澤區(qū)","杏花嶺區(qū)","萬(wàn)柏林區(qū)"], "大同市":["大同縣","天鎮(zhèn)縣","渾源縣"] }} # 控制while循環(huán)的開(kāi)關(guān)switch = "on"# 執(zhí)行腳本就顯示已經(jīng)進(jìn)入中國(guó)print("\n你已進(jìn)入中國(guó)\n") # 開(kāi)始執(zhí)行while循環(huán)while switch == "on": # 省得列表 sheng = [] # 市的列表 shi = [] # 鎮(zhèn)的列表 zhen = [] # 讓用戶選擇進(jìn)入的生 while switch == "on": # 輸出省得列表 for sheng_n, sheng_v in enumerate(dic, 1): print(sheng_n, sheng_v) sheng.append(sheng_v) # 用戶輸出選擇進(jìn)入的省 try: # 用戶輸入的必須為整數(shù) sheng_inp = int(input("請(qǐng)選擇你要進(jìn)入的城市序列:")) except ValueError: # 如果不是整數(shù)就報(bào)錯(cuò)然后讓用戶重新輸入 print("序列輸入錯(cuò)誤,請(qǐng)重新輸入") continue # 如果用戶輸入的證書是0或者大于列表的序列就讓用戶重新輸入 if sheng_inp > sheng_n or sheng_inp == 0: print("序列輸入錯(cuò)誤,請(qǐng)重新輸入") continue # 輸入正確之后輸出用戶當(dāng)前在哪里 print("\n你已進(jìn)入中國(guó)--->", sheng[sheng_inp - 1], "\n") # 選項(xiàng) while True: # 輸出選項(xiàng) ify = input("b 返回上一級(jí)\nn 繼續(xù)\nq 退出\n請(qǐng)輸入你的選擇:") # 如果用戶輸入的是指定的字母就退出當(dāng)前循環(huán) if ify == "q" or ify == "b" or ify == "n": break # 如果不是指定字母就讓用戶重新輸入 else: print("輸入錯(cuò)誤,請(qǐng)重新輸入!") continue # 如果用戶輸入的是b就返回上一級(jí) if ify == "b": continue # 如果用戶輸入的是q那么就把變量switch值改為off elif ify == "q": switch = "off" continue # 如果用戶輸入的是n就繼續(xù)讓用戶選擇市,注釋就寫到這兒把,下面的代碼就相當(dāng)于讓用戶重新選擇省,只不過(guò)省改為市了 while switch == "on": for shi_n, shi_v in enumerate(dic[sheng[sheng_inp - 1]], 1): print(shi_n, shi_v) shi.append(shi_v) try: shi_inp = int(input("請(qǐng)選擇你要進(jìn)入的城市序列:")) except ValueError: print("序列輸入錯(cuò)誤,請(qǐng)重新輸入") continue if shi_n < shi_inp or shi_inp == 0: print("序列輸入錯(cuò)誤,請(qǐng)重新輸入") continue print("\n你已進(jìn)入中國(guó)--->", sheng[sheng_inp - 1], "--->",shi[shi_inp - 1]) while True: ify = input("b 返回上一級(jí)\nn 繼續(xù)\nq 退出\n請(qǐng)輸入你的選擇:") if ify == "q" or ify == "b" or ify == "n": break else: print("輸入錯(cuò)誤,請(qǐng)重新輸入!") continue if ify == "b": continue elif ify == "q": switch = "off" continue while switch == "on": for zhen_n, zhen_v in enumerate(dic[sheng[sheng_inp - 1]][shi[shi_inp - 1]], 1): print(zhen_n, zhen_v) zhen.append(zhen_v) try: zhen_inp = int(input("請(qǐng)選擇你要進(jìn)入的城市序列:")) except ValueError: print("序列輸入錯(cuò)誤,請(qǐng)重新輸入") continue if zhen_n < zhen_inp or zhen_inp == 0: print("序列輸入錯(cuò)誤,請(qǐng)重新輸入") continue print("\n你已進(jìn)入中國(guó)--->", sheng[sheng_inp - 1], "--->", shi[shi_inp - 1],"--->",zhen[zhen_inp - 1]) while True: ify = input("b 返回上一級(jí)\nn 繼續(xù)\nq 退出\n請(qǐng)輸入你的選擇:") if ify == "q" or ify == "b" or ify == "n": break else: print("輸入錯(cuò)誤,請(qǐng)重新輸入!") continue if ify == "b": continue elif ify == "q": switch = "off" continue |
哎,代碼寫的low又沒(méi)注釋,笨人笨方法吧,誰(shuí)讓咱是新人,將就著看吧,注意這是在Python3.5.x系列執(zhí)行的哦
執(zhí)行結(jié)果
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" >你已進(jìn)入中國(guó)<br>1 山西2 河南3 河北<br>請(qǐng)選擇你要進(jìn)入的城市序列:2<br>你已進(jìn)入中國(guó)---> 河南<br> b 返回上一級(jí)<br> n繼續(xù)<br> q 退出<br> 請(qǐng)輸入你的選擇:n<br> 1 鄭州市<br> 2 洛陽(yáng)市<br> 請(qǐng)選擇你要進(jìn)入的城市序列:1<br> 你已進(jìn)入中國(guó)---> 河南 ---> 鄭州市<br> b 返回上一級(jí)<br> n 繼續(xù)<br> q 退出<br> 請(qǐng)輸入你的選擇:b<br> 1 鄭州市<br> 2 洛陽(yáng)市<br> 請(qǐng)選擇你要進(jìn)入的城市序列:2<br> 你已進(jìn)入中國(guó)---> 河南 ---> 洛陽(yáng)市<br> b 返回上一級(jí)<br> n 繼續(xù)<br> q 退出<br> 請(qǐng)輸入你的選擇:n<br> 1 澗西區(qū)<br> 2 西工區(qū)<br> 3 老城區(qū)<br> 請(qǐng)選擇你要進(jìn)入的城市序列:1<br> 你已進(jìn)入中國(guó)---> 河南 ---> 洛陽(yáng)市 ---> 澗西區(qū)<br> b 返回上一級(jí)<br> n 繼續(xù)<br> q 退出請(qǐng)輸入你的選擇:q<br>< /span > |
本文出自 “一盞燭光” 博客,謝絕轉(zhuǎn)載!
更多建議: