练习:

  1. 要求用户输入总资产,例如:2000

  2. 显示商品列表,让用户根据序号选择商品,加入购物车

  3. 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。

goods = [{'name':'电脑', 'price':1999},{'name':'鼠标', 'price':10},{'name':'游艇', 'price':20},{'name':'玩具', 'price':998},]
p1 = int(input('enter your money:')) while True:
if not isinstance(p1, int):
raise TypeError('bad type.')
for i in goods:
print(goods.index(i), i)
p2 = int(input('enter your price:'))
if p2 == 0:
p1 = p1 - int(goods[p2]['price'])
if p1 < 0:
print('余额不足。')
break
else:
print('***********************')
print('当前余额:', p1)
print('***********************')
elif p2 == 1:
p1 = p1 - int(goods[p2]['price'])
# print(p3)
if p1 < 0:
print('余额不足。')
break
else:
print('***********************')
print('当前余额:', p1)
print('***********************')
elif p2 == 2:
p1 = p1 - int(goods[p2]['price'])
# print(p3)
if p1 < 0: print('余额不足。')
break
else:
print('***********************')
print('当前余额:', p1)
print('***********************')
elif p2 == 3:
p1= p1 - int(goods[p2]['price'])
# print(p3)
if p1 < 0:
print('余额不足。')
break
else:
print('***********************')
print('当前余额:', p1)
print('***********************')
else:
print('***********************')
print('商品序号错误,请重新输入。')
print('***********************')

主要练习点:

  1. 列表(list)、字典(dist) 类型灵活运用。

  2. 条件判断while 、 if  ... break

修改一版:

# -*- coding: utf-8 -*-
goods_list = [
['computer', 5000],
['apple', 500],
['pen', 50],
]
salary = float(input('enter your salary:'))
while True:
for index, item in enumerate(goods_list, 1):
print(index, item)
choice = input('enter your choice:')
if choice == 'q':
break
if choice.isdigit() == False:
print('\033[31;1m输入编号错误,请重新输入\033[1m')
elif int(choice) > len(goods_list) or int(choice) < 1:
print('\033[31;1m编号不在商品列表中\033[1m')
else:
choice_buy = int(choice) -1
if salary >= goods_list[choice_buy][1]:
print('\033[32;1m购买成功.\033[1m')
salary = salary - goods_list[choice_buy][1]
else:
print('\033[31;1m购买失败\033[1m')
break

[ Python -1 ] 简易购物车程序的更多相关文章

  1. Python编写简易木马程序(转载乌云)

    Python编写简易木马程序 light · 2015/01/26 10:07 0x00 准备 文章内容仅供学习研究.切勿用于非法用途! 这次我们使用Python编写一个具有键盘记录.截屏以及通信功能 ...

  2. python学习:购物车程序

    购物车程序 product_list = [ ('mac',9000), ('kindle',800), ('tesla',900000), ('python book',105), ('bike', ...

  3. python元组与购物车程序

    #Author:zww ''' 程序:购物车程序 需求: 1.启动程序后,让用户输入工资,然后打印呢商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否足够,够就直接扣款,不够 ...

  4. Python简易购物车程序

    2019年5月24日,是我离开北京回学校的日子.我退了组的房子,辞了工作,带着对小秋香不舍回家,这匆匆一别,不知何时才是归期. 这几天都疏于学习,因为每一天我都会和她找点有意思的事情来做,如果这一别就 ...

  5. 【转载】Python编写简易木马程序

    转载来自: http://drops.wooyun.org/papers/4751?utm_source=tuicool 使用Python编写一个具有键盘记录.截屏以及通信功能的简易木马. 首先准备好 ...

  6. python练习2 购物车程序

    # -*- coding: utf-8 -*-# @Time : 2018/10/18 16:06# @Author : Two Brother# @EMAIL : yeluyide@163.com# ...

  7. ~~小练习:python的简易购物车~~

    进击のpython 1,用户先给自己的账户充钱:比如先充3000元. 2,有如下的一个格式: goods = [{"name": "电脑", "pri ...

  8. Python初学时购物车程序练习实例

    不多说了,直接上代码: #Author:Lancy Wu product_list=[ ('Iphone',5800), ('Mac Pro',9800), ('Bike', 800), ('Watc ...

  9. python复习购物车程序

    个人学习总结: 无他,唯手熟尔!多敲多练才是王道 python 第三课 元组的灵活运用&字符串的诸多操作 Program01 '''时间 2018年2月12日12:15:28目的 购物车程序 ...

随机推荐

  1. 以太坊 生成助记词和infuru插件

    https://iancoleman.io/bip39/ https://infura.io google faucet : https://faucet.rinkeby.io/ 登录google账号 ...

  2. lintcode-108-分割回文串 II

    108-分割回文串 II 给定一个字符串s,将s分割成一些子串,使每个子串都是回文. 返回s符合要求的的最少分割次数. 样例 比如,给出字符串s = "aab", 返回 1, 因为 ...

  3. IDEA里面添加lombok插件,编写简略风格Java代码

    在 java平台上,lombok 提供了简单的注解的形式来帮助我们消除一些必须有但看起来很臃肿的代码, 比如属性的get/set,及对象的toString等方法,特别是相对于 POJO; 关于lomb ...

  4. PowerDesigner工具箱(palette)关了如何重新打开

    PowerDesigner的设计工具箱palette,palette的实际意思:颜料.调色板 工具箱关闭了 重新打开的方法其实很简单的,贴几张图片上来,帮助一下大家 方法一: 在工具栏的空白处点击鼠标 ...

  5. 基于bootstrap动态分页

    bootstrap本身的分页有分页组件 但是却是静态的,无法满足要求,分页必须根据当前的总页数来展示 使用插件bootstrap-paginator github下载地址 https://github ...

  6. CSS clear both清除浮动总结

    我们知道有时候使用了CSS float浮动,会产生CSS浮动,这个时候就需要清理浮动,我们就用clear样式属性即可实现. 接下来我们来认识与学习CSS clear知识与用法. clear清除浮动目录 ...

  7. ns统计使用资源的SNMP OID

    ns统计使用资源的SNMP OID > add snmp manager 192.168.195.1 > add snmp community public ALL > add sn ...

  8. [洛谷P1801]黑匣子_NOI导刊2010提高(06)

    题目大意:两个操作:向一个可重集中加入一个元素:询问第$k$大的数($k$为之前询问的个数加一) 题解:离散化,权值线段树直接查询 卡点:无 C++ Code: #include <cstdio ...

  9. Spring中Resource接口的前缀书写格式

    Resource template = ctx.getResource("classpath:some/resource/path/myTemplate.txt");   //这个 ...

  10. Step-By-Step: Setting up Active Directory in Windows Server 2016

    There are interesting new features now made available in Windows Server 2016 such as time based grou ...