1. 程式人生 > >Python day2_17-9-11

Python day2_17-9-11

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