#good文件夹内容
[
['Iphone7', 5800],
['Coffee', 30],
['疙瘩汤', 10],
['Python Book', 99],
['Bike', 199],
['ViVo X9', 2499],
]

user = {'username': None}
shopping_car_dict = dict()
money = [0] def get_goods():
with open('goods.txt','r',encoding='utf8') as fr:
goods_list = fr.read()
goods_list = eval(goods_list) return goods_list goods_list = get_goods() def register():
print('请注册') if not user['username']: username = input('username:')
pwd = input('pwd:') with open('user_info.txt','a',encoding='utf8') as fa:
fa.write(f'{username}:{pwd} |')
else:
print('已登录,无法再注册') def login():
print('欢迎登录') if not user['username']: username = input('username:')
pwd = input('pwd:') inp_user_info = f'{username}:{pwd}' with open('user_info.txt','r',encoding='utf8') as fr:
user_info = fr.read()
user_info_split = user_info.split('|') if inp_user_info in user_info_split:
print('登陆成功')
user['username'] = username
else:
print('账号或密码输入错误') else:
print('您已登陆') def shopping():
print('欢迎来到购物商场') while True: for ind, goods in enumerate(goods_list): print(f'商品编号:{ind}',goods) goods_choice = input('请输入您需要的商品,(输入q退出):') if goods_choice == 'q':
break goods_choice = int(goods_choice)
goods = goods_list[goods_choice]
print(f'购物成功:{goods}\n') goods_name = goods[0]
if goods_name in shopping_car_dict:
shopping_car_dict[goods_name] += 1
else:
shopping_car_dict[goods_name] = 1 money[0] += goods[1] print(f'购物车商品:{shopping_car_dict}, 总价:{money[0]}') def shopping_car():
print('购物车') while True:
print(f'购物车商品:{shopping_car_dict}, 总价:{money[0]}') goods_choice = input('请输入不需要的商品,若没有请按q退出') if goods_choice == 'q':
break shopping_car_dict[goods_choice] -= 1 for goods in goods_list: if goods_choice in goods: money[0] -= goods[1] def pay():
print('请支付') print(f'购物车商品:{shopping_car_dict}, 总价:{money[0]}') choice = input('是否支付(Y/y),若不支付(N/n),不支付会清空购物车:') if choice == 'Y' or choice == 'y':
print(f'支付{money[0]}成功,已购买{shopping_car_dict}')
elif choice == 'N' or choice == 'n':
shopping_car_dict.clear()
money[0] = 0
print('未支付,清空购物车成功') else:
print('输入不合法') func_msg = '''
1:注册
2:登录
3:购物
4:购物车
5:结账
q:结束
''' func_dict = {
'1': register,
'2': login,
'3': shopping,
'4': shopping_car,
'5': pay,
} while True:
print(func_msg)
func_choice = input('请选择您需要的功能')
if func_choice == 'q':
break
func_dict[func_choice]()

python编程基础之简单购物车的更多相关文章

  1. python 编程基础练习 第一天

    python 编程基础练习 第一天: 需求: 1.计算2的38次方,180*0.7输出(精度显示正常), x的y次方,数字倒序输出即345876输出678543,方法越多越好. 2.字符串处理: 1) ...

  2. 第2章 Python编程基础知识 第2.1节 简单的Python数据类型、变量赋值及输入输出

    第三节 简单的Python数据类型.变量赋值及输入输出 Python是一门解释性语言,它的执行依赖于Python提供的执行环境,前面一章介绍了Python环境安装.WINDOWS系列Python编辑和 ...

  3. Android 网络编程基础之简单聊天程序

    前一篇讲了Android的网络编程基础,今天写了一个简单的聊天程序分享一下 首先是服务端代码: package com.jiao.socketdemo; import java.io.Buffered ...

  4. Python编程基础[条件语句if 循环语句 for,while](二)

    ython条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: if 判断条件: 执行语句……else: 执行语句…… x= ...

  5. Python编程基础(一)

    1.Python中的变量赋值不需要类型声明 2.等号(=)用来给变量赋值 3.字符串拼接用  “+”  号 temp=‘123’ print('temp的值是%s'%temp) #整数和字符创的转换, ...

  6. python学习笔记--python编程基础

    一.一个隆重的仪式 我们在学习语言的时候,第一个写的程序肯定都是hello world.来写第一个程序吧,其实很简单,python的语法就是简单.优雅,一个print就搞定. 1 print('hel ...

  7. (Python基础)简单购物车代码

    以下是最简单,最基础的购物车代码,一起学习,一起参考.product_list = [ ('Iphone',5800), ('Mac Pro',15800), ('car',580000), ('co ...

  8. python 基础之简单购物车小程序实现

    购物车 all_list = [ ('mac',9000), ('kindle',900), ('tesla',800), ('python',105), ('bile',2000), ] savin ...

  9. 1.Python编程基础

    1. 其实,程序指的就是一系列指令,用来告诉计算机做什么,而编写程序的关键在于,我们需要用计算机可以理解的语言来提供这些指令. 虽然借助 Siri(Apple).Google Now(Android) ...

随机推荐

  1. linux 阿里云oss命令ossutil64 同步文件

    官方使用文档: https://help.aliyun.com/document_detail/120057.html?spm=a2c4g.11186623.4.2.1c35448ak8Ez8e [r ...

  2. 一本通&&洛谷——P1120 小木棍 [数据加强版]——题解

    题目传送 一道特别毒瘤能提醒人不要忘记剪枝的题. 首先不要忘了管理员的话.忘把长度大于50的木棍过滤掉真的坑了不少人(包括我). 显然是一道DFS题 .考虑剪枝. 找找搜索要面临的维度.状态:原始木棍 ...

  3. 【转】解决ajax跨域问题的5种解决方案

    转自: https://blog.csdn.net/itcats_cn/article/details/82318092   什么是跨域问题?跨域问题来源于JavaScript的"同源策略& ...

  4. 跨 C++ 和蓝图边界调用函数

    (主要内容来自官方文档,加入了一些自己的理解) 下面都假设C++中有个函数名称为SomeFunction. 蓝图中调用C++函数: 在C++函数声明前加入BlueprintImplementableE ...

  5. 利用域凭据:解密GPP中的管理员密码

    在利用域凭据过程中,除了通过Mimikatz和WCE从内存读取明文密码外,还可以通过域共享文件夹SYSVOL组策略文件获取哈希码. 组策略首选项(Group Policy Preference, GP ...

  6. [CSP-S模拟测试]:星际旅行(欧拉路)

    题目传送门(内部题4) 输入格式 第一行两个整数$n,m$,表示行星和虫洞的数量.接下来$m$行,每行两个整数$u,v$,表示存在一个双向虫洞直接连接$u$和$v$.每一个虫洞最多会被描述一次. 输出 ...

  7. SpringMVC开发中遇到的异常1:No primary or default constructor found for interface java.util.List

    Request processing failed; nested exception is java.lang.IllegalStateException: No primary or defaul ...

  8. 线性中继器 Linear Repeater

     线性中继器(Linear Repeater,缩写L-REP) 高速信号在传输介质上传递时,信号衰减和噪声会导致有效数据信号越来越弱.L-REP就是用来再生高速信号,通过使用同等化(Equalizat ...

  9. (转)SQLite部署-无法加载 DLL“SQLite.Interop.dll”: 找不到指定的模块

    本文转载自:http://www.cnblogs.com/muzhiye/p/4284070.html 近期刚使用SQLite,主要引用的是System.Data.SQLite.dll这个dll,在部 ...

  10. PHP密码和token

    密码 直接md5和sha1不安全!!! crypt()和hash_equals(): http://php.net/manual/zh/function.crypt.php <?php // c ...