用Python编写一个简单的超市收银系统,功能包括收银员登录、商品编号输入、数量输入、总价计算、打折(例如第2件9折、每月的8号、18号、28号商品8.5折)等。附带流程图

时间: 2023-07-04 21:15:18 浏览: 68
很高兴为您解答这个问题!以下是一个简单的超市收银系统的Python代码和流程图: ```python # 超市收银系统 # 商品信息 products = { '001': {'name': '可乐', 'price': 3}, '002': {'name': '薯片', 'price': 5}, '003': {'name': '巧克力', 'price': 8}, '004': {'name': '牛奶', 'price': 10}, } # 打折信息 discounts = { '2': 0.9, # 第2件9折 '8': 0.85, # 每月8号商品8.5折 '18': 0.85, '28': 0.85, } # 获取打折信息 def get_discount(): day = input('请输入今天的日期:') if day == '8' or day == '18' or day == '28': return discounts[day] else: return 1 # 登录 def login(): username = input('请输入用户名:') password = input('请输入密码:') if username == 'admin' and password == '123456': print('登录成功!') return True else: print('用户名或密码错误!') return False # 输入商品编号和数量 def input_product(): while True: code = input('请输入商品编号:') if code in products: break else: print('商品编号不存在,请重新输入!') while True: count = input('请输入商品数量:') if count.isdigit(): break else: print('商品数量必须为数字,请重新输入!') return code, int(count) # 计算总价 def calculate_price(code, count): price = products[code]['price'] * count discount = get_discount() if str(count) in discounts: discount *= discounts[str(count)] return price * discount # 主函数 def main(): if not login(): return total_price = 0 while True: code, count = input_product() price = calculate_price(code, count) total_price += price print('商品名称:{},单价:{},数量:{},总价:{}'.format(products[code]['name'], products[code]['price'], count, price)) is_continue = input('是否继续购买?(y/n)') if is_continue.lower() != 'y': break print('总价:{}'.format(total_price)) if __name__ == '__main__': main() ``` 流程图如下: ![超市收银系统流程图](https://img-blog.csdnimg.cn/img_convert/55b9e9c8c6d8e9e6aaf9ca9b2d8e7e05.png)

最新推荐

recommend-type

Python 实现输入任意多个数,并计算其平均值的例子

今天小编就为大家分享一篇Python 实现输入任意多个数,并计算其平均值的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

python实现超市商品销售管理系统

主要为大家详细介绍了python实现超市商品销售管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

Python实现的远程登录windows系统功能示例

主要介绍了Python实现的远程登录windows系统功能,结合实例形式分析了Python基于wmi模块的远程连接与进程操作相关实现技巧,需要的朋友可以参考下
recommend-type

python2练习题——编写函数,输入数字,判断是否是素数

一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。 性质 质数具有许多独特的性质: (1)质数p的约数只有两个:1和p。 (2)初等数学基本定理:任一大于1的自然数,要么本身是...
recommend-type

不到40行代码用Python实现一个简单的推荐系统

主要给大家介绍了如何利用不到40行python代码实现一个简单的推荐系统,文中通过示例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

优化MATLAB分段函数绘制:提升效率,绘制更快速

![优化MATLAB分段函数绘制:提升效率,绘制更快速](https://ucc.alicdn.com/pic/developer-ecology/666d2a4198c6409c9694db36397539c1.png?x-oss-process=image/resize,s_500,m_lfit) # 1. MATLAB分段函数绘制概述** 分段函数绘制是一种常用的技术,用于可视化不同区间内具有不同数学表达式的函数。在MATLAB中,分段函数可以通过使用if-else语句或switch-case语句来实现。 **绘制过程** MATLAB分段函数绘制的过程通常包括以下步骤: 1.
recommend-type

SDN如何实现简易防火墙

SDN可以通过控制器来实现简易防火墙。具体步骤如下: 1. 定义防火墙规则:在控制器上定义防火墙规则,例如禁止某些IP地址或端口访问,或者只允许来自特定IP地址或端口的流量通过。 2. 获取流量信息:SDN交换机会将流量信息发送给控制器。控制器可以根据防火墙规则对流量进行过滤。 3. 过滤流量:控制器根据防火墙规则对流量进行过滤,满足规则的流量可以通过,不满足规则的流量则被阻止。 4. 配置交换机:控制器根据防火墙规则配置交换机,只允许通过满足规则的流量,不满足规则的流量则被阻止。 需要注意的是,这种简易防火墙并不能完全保护网络安全,只能起到一定的防护作用,对于更严格的安全要求,需要
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。