热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

用python编写购物程序(2)的实现步骤和代码示例

本文介绍了使用Python编写购物程序的实现步骤和代码示例。程序启动后,用户需要输入工资,并打印商品列表。用户可以根据商品编号选择购买商品,程序会检测余额是否充足,如果充足则直接扣款,否则提醒用户。用户可以随时退出程序,在退出时打印已购买商品的数量和余额。附带了完整的代码示例。

要求:

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

代码:

1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3 # Author:James Tao
4
5 list_of_goods=[
6 ['iphone',5800],
7 ['Mac Pro',12000],
8 ['Bike',800],
9 ['Watch',2000],
10 ['Coffee',31],
11 ['Book',120]
12 ]
13 list_of_bought=[]
14 dict_of_bought={}
15 salary=input('请输入您的工资:')
16 if salary.isdigit():#判断是否是整数
17 salary=int(salary)
18 while True:
19
20 #输出商品及其编号
21 for index,item in enumerate(list_of_goods):#enumerate取出下标
22 print(index,item)
23 #print(list_of_goods.index(item),item)
24 choice_of_user=input('选择购买商品编号:')
25
26 #判断输入是否合法
27 if choice_of_user.isdigit():
28 choice_of_user=int(choice_of_user)
29
30 #判断编号是否有对应商品
31 if 0<&#61;choice_of_user<len(list_of_goods):
32
33 #判断余额是否足够买此商品
34 if list_of_goods[choice_of_user][1]<&#61;salary:
35
36 #加入购物清单
37 list_of_bought.append(list_of_goods[choice_of_user][0])
38
39 #计算余额&#96;
40 salary-&#61;list_of_goods[choice_of_user][1]
41
42 print(&#39;&#39;&#39;添加{boughtgood}到您的购物车,此刻您的余额为{balance}.
43 &#39;&#39;&#39;.format(boughtgood&#61;list_of_goods[choice_of_user][0],balance&#61;salary))
44 else:
45 print(&#39;您的余额不足,此实余额为%s,不够购买此商品&#39;,salary)
46 else:
47 print(&#39;商品不存在&#39;)
48
49 elif choice_of_user&#61;&#61;&#39;q&#39;:
50
51 #统计购买的商品及数量
52 category_of_bought&#61;set(list_of_bought)
53 for item in category_of_bought:
54 dict_of_bought[item]&#61;list_of_bought.count(item)
55 print(&#39;您购买的商品及数量分别为&#39;,dict_of_bought)
56
57 print(&#39;您的余额为:&#39;,salary)
58 exit()
59 else:
60 print(&#39;输入不合法&#39;)
61 else:
62 print(&#39;输入不合法&#39;)

 

转:https://www.cnblogs.com/BIT-taozhen/p/9735865.html



推荐阅读
  • python的交互模式怎么输出名文汉字[python常见问题]
    在命令行模式下敲命令python,就看到类似如下的一堆文本输出,然后就进入到Python交互模式,它的提示符是>>>,此时我们可以使用print() ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文基于刘洪波老师的《英文词根词缀精讲》,深入探讨了多个重要词根词缀的起源及其相关词汇,帮助读者更好地理解和记忆英语单词。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 深入理解Java中的volatile、内存屏障与CPU指令
    本文详细探讨了Java中volatile关键字的作用机制,以及其与内存屏障和CPU指令之间的关系。通过具体示例和专业解析,帮助读者更好地理解多线程编程中的同步问题。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 深入解析:手把手教你构建决策树算法
    本文详细介绍了机器学习中广泛应用的决策树算法,通过天气数据集的实例演示了ID3和CART算法的手动推导过程。文章长度约2000字,建议阅读时间5分钟。 ... [详细]
  • XNA 3.0 游戏编程:从 XML 文件加载数据
    本文介绍如何在 XNA 3.0 游戏项目中从 XML 文件加载数据。我们将探讨如何将 XML 数据序列化为二进制文件,并通过内容管道加载到游戏中。此外,还会涉及自定义类型读取器和写入器的实现。 ... [详细]
  • 本文详细探讨了HTTP 500内部服务器错误的成因、解决方案及其在Web开发中的影响。通过对具体案例的分析,帮助读者理解并解决此类问题。 ... [详细]
author-avatar
裴潇艳
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有