• python之购物车的编写(熬夜撸代码中。。。)


    购物车的编写对于我这种不是很精通函数的小白来说,简直太难了。各种坑,各种无奈啊!不过总算也是写出来了!

    不多说,直接上代码!

    #!/usr/bin/env python
    #用户名 sanjiang
    #密码 sanjiang123
    import sys
    import collections
    #定义一个计数器
    A = 0
    first = True
    while first:
    login_user = input('请输入你的用户名: ').strip()
    #读取用户文件user.txt,用来判断输入的用户是否存在
    f_user = open('user.txt','r+')
    user_list=f_user.read().split()
    #读取锁定文件local_file,用来判断输入的用户是否锁定
    lock = open('local_file','a+')
    lock_file = lock.read().split()
    #判断用户是否锁定
    if login_user in lock_file:
    print('------------------------------------------------ '
    '对不起,你输入的账号已被锁定,请用其他账号登录 ')
    continue
    #判断用户是否存在
    elif login_user not in user_list:
    print('------------------------------------------------ '
    '对不起,你输入的用户不存在,请重新输入。 ')
    continue
    while True:
    login_pwd = input('请输入你的密码: ').strip()
    #判断密码是否正确
    if login_pwd == user_list[ user_list.index(login_user) + 1]:
    print('------------------------------------------------ '
    '亲爱的%s, '%login_user)
    first = False
    break
    else:
    A +=1
    a = 3 - A
    if A ==3:
    print('------------------------------------------------ '
    '对不起,你输入的次数已经超过三次,账号已被锁定 ')
    #往锁定文件中添加输入的用户
    lock.write('%s '%login_user)
    #关闭两个文件
    lock.close()
    f_user.close()
    first = True #定义一个变量用来跳出二层循环
    break
    print('------------------------------------------------ '
    '对不起,你输入的密码错误,请重新输入。您还有%s次机会 '%a)
    #如果跳出第一层循环定义了跳出二层循环变量,那么就跳出第二层循环
    print('''
    __________________________________________________
    | |
    | 欢迎登陆三江水果购物商城 |
    |_________________________________________________|
    ''')

    # 定义一个本地字典
    dic = {}
    #!定义一个跳出循环的变量
    flag1 = True
    while flag1:
    #!请求输入一个购物预算
    num1 = input('请输入您的购物预算: ')
    #!判断输入的是否为空或者是否为字符串
    if len(num1)==0 or num1 =='0' or num1.isdigit() is False:
    print('33[36;1m对不起,你输入的有误,请重新输入33[0m')
    continue
    else:
    pass
    #!定义一个跳出循环的变量
    flag2 = True
    while flag2:
    #!交互式询问要做什么选项
    num = input('''三江,你想要做什么呢? 你的预算为%s元
    1:购买水果
    2:购物车
    3:修改购物预算
    4:老板个人简历
    5.退出程序
    :'''%num1)
    #!定义退出程序
    if num =='5':
    sys.exit()
    #!显示老板简历信息
    if num == '4':
    print('''
    notice:
    吴三江是一个非常的帅的一个小伙子,很有潜力的孩子,虽然现在有点穷,但是请莫欺少年穷。

    ''')
    #!返回上一个循环
    if num =='3':
    flag2 = False
    #!进入购买水果的界面
    if num == '1':
    #!定义一个字典并把字典转换成列表
    local_dic= {'芒果':'7','桃李':'8','龙眼':'9','苹果':'9','香蕉':'5','葡萄':'8','蓝莓':'7','凤梨':'7','柚子':'3','橘子':'6',
    }
    list1 =list(local_dic)
    list2 = list(local_dic.values())
    print('编号 ','种类 ','单价 ')
    flag3 = True
    while flag3:
    #!展示水果的商品列表
    for i in range(len(list1)):
    print( 'num.%s %s %s元/斤' %(i,list1[i],list2[i]))
    num2 = input('33[36;1m请输入你要购买的商品序号(返回上一层请按q): ')
    #!定义退出这个循环
    if num2 =='q':
    break
    #!判断是否输入的是字符串
    if num2.isdigit() is False:
    print('33[36;1m你输入的有误,请重新输入:33[0m ')
    continue
    if len(num2)!=0 and int(num2)<len(list1):
    #!交互式显示购买水果的过程
    num3 = input('您要购买的商品是%s,单价为%s元/斤,确定要购买么(y/n?): '%(list1[int(num2)],list2[int(num2)]))
    if num3 =='n':
    continue
    elif num3 =='y':
    num4 = input('33[36;1m请输入你要购买的商品数量:33[0m')
    if num4.isdigit()is False:
    print('33[36;1m对不起,你输入的有误,请重新输入。33[0m')
    continue
    num5 = input('您要购买的商品是%s,单价为%s元/斤,数量为%s,总价为%s,确定加入购物车么(y/n?):'%(list1[int(num2)],list2[int(num2)],int(num4),int(num4)*int(list2[int(num2)])))
    if num5 =='y':
    dic_list = list(dic)
    dic_list2 = list(dic.values())
    #!如果购买的商品不在购物车中,那么购买数量就是指定的数量
    if list1[int(num2)] not in dic_list:
    dic[list1[int(num2)]]=int(num4)
    break
    #!如果购买的商品在购物车中,那么购买的数量就是之前的商品数量加上这次的商品数量
    else:
    dic[list1[int(num2)]]=int(num4)+dic_list2[int(dic_list.index(list1[int(num2)]))]

    elif num5=='n':
    continue
    else:
    print('33[36;1m你输入的有误,请重新输入: 33[0m')
    continue
    else:
    print('33[36;1m你输入的有误,请重新输入: 33[0m')
    continue
    else:
    print('33[36;1m你输入的有误,请重新输入: 33[0m')
    #!进入购物车
    if num == '2':
    print('''购物车
    编号 商品 单价 数量 总价 ''')
    #!再次重复定义一个字典,和列表,用来调用
    local_dic= {'芒果':'7','桃李':'8','龙眼':'9','苹果':'9','香蕉':'5','葡萄':'8','蓝莓':'7','凤梨':'7','柚子':'3','橘子':'6',
    }
    dic_list1 = list(dic)
    dic_list2 = list(dic.values())
    #!显示出购物车里面的商品列表
    for i in range(len(dic_list1)):
    print('''
    %s %s %s %s %s '''%(i,dic_list1[i],local_dic[dic_list1[i]],dic_list2[i],int(dic_list2[i])*int(local_dic[dic_list1[i]])))
    #!求所有商品的总金额
    a = 0
    for i in range(len(dic_list1)):
    a = a + int(dic_list2[i])*int(local_dic[dic_list1[i]])
    b = a
    flag4 = True
    while flag4:
    num6 = input('结算:t | 退出:q | 删除订单 :d | 修改订单 :z 请输入你的操作指令:')
    if num6 =='q':
    flag4 =False
    elif num6 =='t':
    num7= input('你购买水果的总金额为%s,确定要结算么?(y/n)'%b,)
    if num7 =='y':
    #!如果预算小于结算的总金额,那么提示重新购买
    if int(num1)<int(b):
    print('对不起,超出了你的预算,请重新购买。')
    flag4 = False
    #!如果预算大于结算的总金额,那么会提示距离预算还有多少钱可以用
    elif int(num1)>int(b):
    c = int(num1)-int(b)
    #!结算完可以继续购物,也可以选择离开
    num8 = input('距离你的预算还有%s元,你还可以去买些水果哦,要离开还是继续购物?q:离开,购物:g'%c)
    if num8 =='q':
    flag4=False
    elif num8 =='g':
    continue
    else:
    print('对不起。你输入的有误')
    elif num6 =='d':
    print('学艺不精,暂时不支持此功能,')
    elif num6 =='z':
    print('学艺不精,暂时不支持此功能,')
    else:
    print('对不起。你输入的有误')
    continue
    效果展示。



  • 相关阅读:
    日常巡检
    mysql 主从
    tomcat +apache 动静分离
    ELK安装
    LVS-NAT模式
    shell 三剑客
    shell $传参
    zabbix安装
    lvs-DR 负载均衡
    解决ubuntu中pycharm的图标没有问题
  • 原文地址:https://www.cnblogs.com/sanjiang/p/5132195.html
Copyright © 2020-2023  润新知