Python 购物车

三级菜单

要求:

打印省、市、县三级菜单

可返回上一级

可随时退出程序

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('请正确输入金额!')
            ze = user_money
            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('\n输入购买商品的序号,"q"退出 > ').strip()
                if not user_in:continue
                if len(trade_list)==0 and user_in=='q':
                    print('为购买任何商品,欢迎下次光临!!!')
                    exit()
                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")  数量 > ').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[0],user_trade[1],u_trade_num,user_money])
                                    print('\n购买商品\t:\t{c} \n购买数量\t:\t{n} \n剩余余额\t:\t{m}\n'\
                                          .format(c=user_trade[0],n=u_trade_num,m=user_money))
                                    count=False
                                    continue
                                else:
                                    print('\n余额%s!不够消费此商品!\n'%user_money)
                                    count=False
                                    continue
                        elif u_trade_num == 'r':break
                        else:
                            print('\n请正确输入您购买的数量!\n')
                elif user_in in 'q':
                    t_num=len(trade_list)-1
                    for i in trade_list[::1]:
                        print('以购商品:{c}\n购买单价:{m}\n购买数量:{n}\n'\
                              .format(c=i[0],m=i[1],n=i[2]))
                    total=ze - trade_list[t_num][3]
                    print('共计消费:%s'%total)
                    print('剩余金额:%s'%trade_list[t_num][3])
                    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()
代码

 

 流程图:

图片链接

 

转载于:https://www.cnblogs.com/tiancc/p/7507944.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值