需求:

1.用户输入工资收入

2.打印商品列表

3.用户选择商品,不断的加入购物车

4.检测用户余额,直接捐款,不足提示余额不足

5.允许主动退出,退出时,打印已购商品列表

重点方法:

打印列表下标的方法:

a=['alex','sys','root','admin']

>>> for index,i in enumerate(a):
...     print(index,i)

0 alex
1 sys
2 root
3 admin

 #!/usr/bin/env python3
# -*-conding:utf-8-**
# __Author__:'liudong'
salary=input("Input your salary:")
if salary.isdigit():
salary=int(salary)
else:
exit("Invalid data type...")
welcom_msg='Welcome to Shopping mall'.center(50,'-')
print(welcom_msg)
exit_flag=False
product_list = [
('Iphone',5000),
('Mac Air',8000),
('Mac Pro',9000),
('XiaoMi',20),
('Coffe',30),
('Bike',800),
('Cloth',200)
]
shop_car = []
while not exit_flag:
#for product_item in product_list:
# p_name,p_price = product_item #可选的写法
print("Products list".center(50,'-'))
# for p_name,p_price in product_list:
# print(p_name,p_price) #由于此方法后面打印下标时,会变成2个无组,所以用下面的方法打印
for item in enumerate(product_list):
index=item[0]
p_name=item[1][0]
p_price=item[1][1]
print(index,'.',p_name,p_price)
user_choice = input('[q=quit,c=check]What do you want to buy?:')
if user_choice.isdigit(): #肯定是选商品
user_choice = int(user_choice)
if user_choice < len(product_list):
p_item = product_list[user_choice]
if p_item[1] <= salary: #买的起
shop_car.append(p_item) #放入购物车
salary -= p_item[1] #扣钱
print('Added [%s] into your shop car,your current balance is \033[31;1m[%s]\033[0m' %
(p_item,salary)) #字体加颜色
else:
print('Your balance is [%s],cannot afford this product..' %salary)
else:
if user_choice == 'q' or user_choice == 'quit':
print('purchased products as blew:'.center(40,'*'))
for item in shop_car:
print(item)
print('END'.center(40,'*'))
print('Your balance is [%s]' %salary)
print('bye.')
exit_flag = True
elif user_choice == 'c' or user_choice == 'check':
print('purchased products as blew:'.center(40, '*'))
for item in shop_car:
print(item)
print('Your balance is \033[41;1m[%s]\033[0m' % salary) #背景加颜色

编程的思维还要加强。。。。。

Python购物车的实现课程的更多相关文章

  1. Day1 老男孩python自动化运维课程学习笔记

    2017年1月7日老男孩python自动化运维课程正式开课 第一天学习内容: 上午 1.python语言的基本介绍 python语言是一门解释型的语言,与1989年的圣诞节期间,吉多·范罗苏姆为了在阿 ...

  2. 简单的python购物车

                 这几天,一直在学python,跟着视频老师做了一个比较简单的python购物车,感觉不错,分享一下 products = [['Iphone8',6888],['MacPro ...

  3. python 购物车小程序

    python 购物车小程序 功能要求:1.启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表2.允许用户根据商品编号购买商品3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒4. ...

  4. python购物车小案例

    python购物车小案例# 案列描述:有一个小型水果店里面有水果(苹果:¥8/kg,香蕉:¥5/kg,芒果:¥15/kg,葡萄:¥12/kg),客户带了100元钱进店选购水果.# 1.客户输入相应序号 ...

  5. 2019第一期《python测试开发》课程,10月13号开学

    2019第一期<python测试开发>课程,10月13号开学! 主讲老师:上海-悠悠 上课方式:QQ群视频在线教学,方便交流 本期上课时间:10月13号-12月8号,每周六.周日晚上20: ...

  6. Django入门到进阶-更适合Python小白的系统课程

    Django入门到进阶-更适合Python小白的系统课程 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身 ...

  7. python 购物车和三级菜单

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

  8. 5th,Python购物车模拟

    1.启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4.可随时退出,退 ...

  9. Python购物车

    product_list = [ ['Iphone',5888], ['Mac Air',8000], ['XiaoMi',19.9], ['coffee',30], ['Tesla',820000] ...

随机推荐

  1. oracle where与having

    where与having可以过滤,一般来说尽量使用where ,但是如果过滤条件中有组函数,只能使用having SQL> select deptno,avg(sal) from emp gro ...

  2. centos 安装 vsftp

    vsftp是一款在Linux发行版中最受推崇的FTP服务器程序.特点是小巧轻快,安全易用.下面介绍CentOS下安装和简单配置 vsftp 这个服务软件. 在Linux下可以搭建本地YUM库来进行系统 ...

  3. jQuery get/post区别及contentType取值

    1.GET访问 浏览器 认为 是等幂的 就是 一个相同的URL 只有一个结果[相同是指 整个URL字符串完全匹配]所以 第二次访问的时候 如果 URL字符串没变化浏览器是直接拿出了第一次访问的结果,表 ...

  4. MemCached高级缓存

    MemCached高级缓存配置 Memcache相关介绍: memcache 是一个高性能的分布式的内存对象缓存系统,它能够存储各种各样的的数据,包括图片,视频,文件等等.缓存功能. DB.数据源-- ...

  5. Apache Cloudstack Development 101 -- Data Access Layer

    刚接触CloudStack,也是第一次翻译英文文档,限于水平有限,不当之处欢迎拍砖! 原文地址:https://cwiki.apache.org/confluence/display/CloudSta ...

  6. wifi钓鱼教程

    关于 <原创>想钓鱼必须还要有好竿wifi学习教程+软件下载地址修正 因为最近网盘维护 导致资源无法下载 今天早上开通下载服务了大家可以放心下载. 蹭网要低调不要炫耀 软件介绍:Wires ...

  7. Linux下根据进程的名字杀死进程

    以前是写了一个bash,通过ps,grep 和awk配合搜索PID再kill掉进程.果然以前傻,不知道解决问题之前先google,原来直接就有相关的pkill -f "process_nam ...

  8. #pragma execution_character_set的意义

    就是设置执行字符集,指示char的执行字符集是UTF-8编码.如果源文件中出现中文,必须要设置为 #if _MSC_VER >= 1600        #pragma execution_ch ...

  9. MyBatis insert后返回自增字段的值

    如下情况适用支持自增的DB,如MySQL.其他情况参见:MyBatis魔法堂:Insert操作详解(返回主键.批量插入) 1.model public class UserInfo { private ...

  10. COJ 0801 非传统题(一)

    非传统题(一) 难度级别:A: 运行时间限制:1000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 大家好!我是COJ第一道非传统题,是不是感觉非常的excite ...