python实现购物简单流程

需求:

  1.启动程序后,让用户输入工资,然后打印商品列表
  2.允许用户根据商品编号购买商品
  3.用户选择商品后,检测余额时候够,够就直接扣款,不够就提醒
  4.可随时退出,退出时,打印已购买商品和余额

python环境:3.6.5

知识点:if-else,for,while

代码:

 

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# Author:coding2018

'''
需求:
    1.启动程序后,让用户输入工资,然后打印商品列表
    2.允许用户根据商品编号购买商品
    3.用户选择商品后,检测余额时候够,够就直接扣款,不够就提醒
    3.可随时退出,退出时,打印已购买商品和余额
'''

#商品列表
product_list = [
    ('iPhone',5800),
    ('Mac Pro',9800),
    ('Bike',800),
    ('Watch',10600),
    ('Coffee',31),
    ('Ales Python',120)
]
#购物车
shopping_list = []
#输入工资
salary = input("Input your salary:")
#isdigit() 方法检测字符串是否只由数字组成。
if salary.isdigit():
    #salary转换成int型
    salary = int(salary)
    #循环
    while True:
        #取product_list中商品下标和商品
        #enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)
        # 组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中
        for index,item in enumerate(product_list):
            print(index,item)
        print("q 退出")
        # for item in product_list:
        #     print(product_list.index(item),item)
        #输入表购买商品的标号
        user_choice = input("选择要买的商品编号>>>:")
        if user_choice.isdigit():
            user_choice = int(user_choice)
            #判断输入编号
            if user_choice < len(product_list) and user_choice >= 0:
                p_item = product_list[user_choice]
                #判断商品价格是否小于余额
                if p_item[1] <= salary:  #买的起
                    #商品加入购物车
                    shopping_list.append(p_item)
                    #余额减少
                    salary -= p_item[1]
                    print("Added %s into shopping cart, your current balance is \033[31;1m%s\033[0m" %(p_item,salary))
                else:
                    print("\033[41;1m你的余额只有[%s],无法购买\033[0m" % salary)
            else:
                print("product code [%s] is not exist!" % user_choice)
        elif user_choice == 'q':
            print('--------------shopping list---------------')
            for p in shopping_list:
                print(p)
            print("Your current balance:",salary)
            exit()
        else:
            print("invalid option")


else:
    print("该输入不是只由数字组成")

 

转载于:https://www.cnblogs.com/coding2018/p/8961916.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值