python-购物车游戏-主要是练习for while if

复制代码
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:woshinidaye

#shopping
#启动程序输入自己的余额,然后打印所有商品列表;
#允许用户根据商品编号购买商品
#用户选择商品后,检测余额是否足够,够就直接扣款,不够就提醒余额不足;
#可随时退出,退出时,打印购买的商品信息,余额,花费

'''
money = int(input('how much do you have(元)??  '))
goods = [['鞋',80],['外套',200],['裤子',140],['帽子',47],['皮带',64],['墨镜',78],['袜子',32],['大保健',88]]
#print(goods,len(goods))
your_choose = []
while money >= 0 :
    print('你想要购买什么,请输入商品名称前面的序号哟!')
    for i in range(len(goods)):
        print(i+1,':','\t','商品名称:',goods[i][0],'\t','价格:',goods[i][1])
    print(len(goods)+1,':','\t','我不想买了,我要回家!!!')
    print(len(goods)+2, ':', '\t', '查看当前的购物车清单')
    choose = int(input('请输入你的选择:'))
    if choose == len(goods)+1:                  #选择退出选项
    #for i in your_choose:
    #    print(i)
        print('你购买了:',your_choose,'\t','你的余额还剩:',money)
        break
    elif choose == len(goods)+2:                #选择查看清单选项
        print('当前的购物车清单:',your_choose)
        continue
    elif choose <= len(goods):
        if  money-goods[choose-1][1] >= 0:
            your_choose.insert(0,[goods[choose-1][0],goods[choose-1][1]])
            #your_choose.append([goods[choose-1][0])
            money = money - goods[choose-1][1]
            print('已经将',goods[choose-1][0],'成功加入购物车了!!!')
            #print(your_choose,money)
    else:
        print('你没钱了,去搬砖吧~~,要不你重新选择')
        continue
else:
    print('你的输入有误,请重新输入!')
    #continue
'''

product_list = [['',80],['外套',200],['裤子',140],['帽子',47],['皮带',64],['墨镜',78],['袜子',32],['大保健',88]]
salary = input('输入你的工资:')
shopping_list = []
spend = 0
if  salary.isdigit():
    salary=int(salary)
    while True:
        #for item in product_list:
        #    print(product_list.index(item)+11,item)
        for index,item  in enumerate(product_list):
            print(index+1,item)
        print(len(product_list)+1,'查看当前购物车清单')
        print("\033[33;1m输入Q或者q即可退出\033[0m")
        user_choose = input('你需要购买啥??请输入商品编号:')
        if user_choose.isdigit():
            user_choose = int(user_choose)
            if user_choose <= len(product_list) and user_choose > 0 :
                p_item = product_list[user_choose-1]
                if p_item[1] <= salary:                     #钱够
                    shopping_list.append(p_item)
                    #salary = salary - p_item[1]
                    spend = spend +p_item[1]
                    salary -= p_item[1]
                    #print('已将%s加入到购物车,当前你的余额为%s'%(p_item,salary))
                    print('已将%s加入到购物车,当前你的余额为\033[31;1m%s\033[0m'%(p_item,salary))  #高亮显示
                else:
                    print('\033[51;1m你的余额不足,只剩[%s],买不了了!!\033[0m' % (salary))  # 高亮显示
            elif user_choose == len(product_list)+1:
                print('====当前购物车列表====')
                for i in shopping_list:
                    print(i)
                print('================')
                print('结账:y or Y','\n','继续购物:gogogo')
                go_on = input('请问你需要购买的东西是否都加到了购物车??')
                if go_on == 'y' or go_on == 'Y' or go_on == 'yes' or go_on == 'Yes':
                    print('======shopping list======')
                    for i in shopping_list:
                        print(i)
                    exit(print('\033[034;1m你花费%s元,余额为%s\033[0m' % (spend, salary)))
                else:
                    continue
            else:
                print('\033[052;1m你选择的商品不存在!!\033[0m')
        elif user_choose == 'q' or user_choose == 'Q':
            print('======shopping list======')
            for i in shopping_list:
                print(i)
            #print('\033[034;1m你花费%s元,余额为%s\033[0m'%(spend,salary))
            #break
            exit(print('\033[034;1m你花费%s元,余额为%s\033[0m'%(spend,salary)))
        else:
            print('你的输入有误!!')
            print('======shopping list======')
            for i in shopping_list:
                print(i)
            exit(print('\033[034;1m你花费%s元,余额为%s\033[0m' % (spend, salary)))
else:
    print('你的工资输入有误!bye~~~')
复制代码

 

posted @   woshinidaye  阅读(44)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· Qt个人项目总结 —— MySQL数据库查询与断言
点击右上角即可分享
微信分享提示