Python day2_17-9-11
阿新 • • 發佈:2017-09-15
count 啟動程序 河北省 三次 ice lose += 存在 append
三級菜單
要求:
打印省、市、縣三級菜單
可返回上一級
可隨時退出程序
data={‘黑龍江省‘:{‘哈爾濱‘:[‘尚誌縣‘,‘南山縣‘,‘北山縣‘,‘東山縣‘,‘西山縣‘], ‘大慶‘:[‘薩爾圖區‘,‘東西縣‘,‘南北先‘], ‘齊齊哈爾‘:[‘通州縣‘,‘朝陽縣‘,‘西城縣‘,‘昌平縣‘]}, ‘山西省‘:{‘太原‘:[‘到‘,‘此‘,‘結‘,‘束‘], ‘大同‘:[‘某縣‘,‘豐臺縣‘,‘漳州縣‘,‘靈境縣‘,‘莘莊縣‘]}, ‘河北省‘:{‘邯鄲市‘:[‘廣平縣‘,‘魏縣‘,‘代碼衢州縣‘,‘成安縣‘,‘大明縣‘], ‘石家莊‘:[‘天真縣‘,‘浪漫縣‘,‘前列縣‘,‘侄女縣‘,‘樂吧縣‘]} } while True: count = True for i in data.keys(): print(i) user_info = input(‘\n"q"退出程序\n輸入省 >> ‘).strip() if user_info==‘q‘:exit() if user_info in data.keys(): abc=data[user_info].keys()while count: print(list(abc)) users_info = input("\n‘q‘退出程序,‘r‘返回上一級\n輸入需要查詢的市 >> ").strip() if users_info==‘q‘:exit() if users_info in data[user_info]: print(data[user_info][users_info]) sur=input(‘\n返回上一級"y",任意鍵退出 #‘) if sur == ‘y‘:continue else:exit() elif users_info == ‘r‘: count=False continue else:print(‘請輸入正確的城市名 \n‘) else: print(‘請輸入正確的城省名\n‘)
垃圾版購物車
用戶名和密碼存放於文件中,格式為:XXX|XXX;
啟動程序後,先登錄;失敗則重新登錄,超過三次則鎖定此用戶;
登錄成功則讓用戶輸入工資,然後打印商品列表;
用戶根據商品編號購買商品,選擇購買數量;
用戶選擇商品後,檢測余額是否夠,夠就直接扣款,不夠就提醒;
可隨時退出,退出時,打印已購買商品和余額。
#!/usr/bin/env python #coding:utf-8 #需在腳本同目錄下創建pass文件,用於存放登陸的用戶名密碼 例: tcc|cc123 #再在同目錄下創建user空文件,用於存放鎖定用戶 login_record={} #用戶信息表 with open(‘pass‘,‘r‘) as f: for line in f: u,p=line.strip().split(‘|‘) login_record[u]=({‘p‘:p,‘count‘:0}) # 打開存放用戶名密碼的文件,並倒入用戶信息表 us1=open(‘user‘,‘r‘) balck_name=us1.read() us1.close() #打開並紀錄黑名單用 trade_name=[ [‘iphone X ‘, 8358], [‘mac bookpro‘, 13588], [‘huiwei X‘ , 4300], [‘audi‘ , 1340000], [‘LV‘ , 35000], [‘fgj A‘ , 880], [‘LinuxBook‘ , 99], ] trade_list=[] while True: user_name=input(‘用戶名 > ‘).strip() if not user_name:continue #輸入為空則繼續輸入 if user_name in balck_name: print(‘The account!‘) break #檢查該用戶是否在很名單中,在則退出 elif not user_name in login_record: print(‘Without this user\n‘) continue #檢查用戶名是否存在 if user_name in login_record : user_pass = input(‘密碼 > ‘) if user_pass == login_record[user_name][‘p‘]: while True: user_money=input(‘您的本金 > ‘).strip() if user_money.isdigit(): user_money=int(user_money) break else:print(‘請正確輸入金額!‘) while user_money > 0: count=True print(‘歡迎來到CC商場‘.center(30,‘~‘)) for key,vl in enumerate(trade_name,1): print (key,‘{0}\t:\t{1}‘.format(vl[0],vl[1])) print(‘出售中的商品‘.center(30, ‘~‘)) user_in=input(‘輸入購買商品的序號,"q"退出 > ‘).strip() if user_in.isdigit() and len(user_in)==1 and int(user_in)<=len(trade_name): user_in=int(user_in)-1 user_trade = trade_name[user_in] #獲取商品 while count: u_trade_num = input(‘\n(返回請按"r",退出請按"q") 數量 > ‘).strip() if u_trade_num.isdigit(): trade_price = trade_name[user_in][1] * int(u_trade_num) while count: if user_money >= trade_price: user_money = user_money - trade_price trade_list.append(user_trade) print(‘購物車{c},余額{y}‘.format(y=user_money, c=trade_list)) count=False continue else: print(‘余額不足!‘) else: print(‘\n請正確輸入您購買的數量!\n‘) elif user_in in ‘q‘:print(‘歡迎下次光臨!‘),exit() else: print(‘\n請輸入正確的序號!\n‘) else: print(‘別玩了,沒錢了!‘) else: login_record[user_name][‘count‘]+=1#打開並紀錄黑名單用 print(‘用戶名或密碼錯誤‘) # 密碼每一次輸入錯誤都紀錄 if login_record[user_name][‘count‘] > 3: print(‘超過最大次數,請聯系管理員‘) record = open(‘user‘, ‘a‘) record.write(‘%s\t‘ %user_name) record.close() exit() #密碼錯誤大於三次後退出程序並鎖定該用戶代碼
Python day2_17-9-11