一、Python函数基础实战之购物车系统

  1. 用户管理:注册(简单追加方式写入文件)、登录(限制3次尝试机会)、注销
  2. 购物功能:浏览商品、添加商品到购物车、查看购物车
  3. 数据存储:用户信息存储在文本文件中
username_list = []   # 存储当前登录用户
prize_dict = {
'0': "芭比娃娃",
'1': "变形金刚",
'2': "psp游戏机",
'3': "奥特曼",
'4': "遥控飞机",
'5': "chongqiwawa",
}
shopping_cart_dict = {} # 购物车 # 用户交互输入信息
def inp_username_pwd():
username_inp = input("请输入用户名:")
pwd_inp = input("请输入你的密码:")
return username_inp, pwd_inp def login():
print('欢迎来到登录功能!')
if username_list:
print('已经登录,请勿重复登录!')
return # 提前退出,不执行后续登录逻辑
count = 0
while count < 3:
username_inp, pwd_inp = inp_username_pwd()
with open('D:\\user_info.txt', 'r', encoding='utf8') as f:
for user_info in f:
user_info = user_info.strip()
username, pwd = user_info.split(':')
if username == username_inp and pwd == pwd_inp:
print('登录成功')
username_list.append(username_inp)
return
else:
print('账号密码错误!')
count += 1 def register():
print('欢迎来到注册功能!')
username_inp, pwd_inp = inp_username_pwd()
with open('D:\\user_info.txt', 'a', encoding='utf8') as fa:
fa.write(f'{username_inp}:{pwd_inp}\n') def logout():
print('欢迎来到注销功能!')
if not username_list:
print('请登录之后注销!')
return
username_list.clear() def shopping():
print('欢迎来到消费功能!')
if not username_list:
print('请登录后使用该功能')
return
print('''
0 芭比娃娃
1 变形金刚
2 psp游戏机
3 奥特曼
4 遥控飞机
5 chongqiwawa
''')
while True:
prize_choice = input('请输入需要购买商品编号:')
# 验证:检查是否为数字,且数字是否在有效范围
if not prize_choice.isdigit() or prize_choice not in prize_dict:
print("请输入有效的数字编号!")
continue
break # 所有验证通过,退出循环
prize_name = prize_dict[prize_choice]
if prize_name in shopping_cart_dict:
shopping_cart_dict[prize_name] += 1
else:
shopping_cart_dict[prize_name] = 1
print(f'消费成功{prize_name},当前购物车情况为{shopping_cart_dict}') def shopping_cart():
print('恭喜剁手成功!')
if not username_list:
print('请登录后使用该功能')
return
print(f'恭喜购物成功:{shopping_cart_dict}')
shopping_cart_dict.clear() func_dict = {
'1': login,
'2': register,
'3': logout,
'4': shopping,
'5': shopping_cart,
} while True:
print('''
1 登录
2 注册
3 注销
4 购物
5 购物车
q 退出
''')
func_choice = input('请选择你要选择的功能(输入q退出):')
if func_choice == 'q':
break
if func_choice not in func_dict:
print('长眼睛没,看不懂数字?')
continue
func_dict[func_choice]()

Python函数基础实战之购物车系统的更多相关文章

  1. 《转》Python学习(17)-python函数基础部分

    http://www.cnblogs.com/BeginMan/p/3171977.html 一.什么是函数.方法.过程 推荐阅读:http://www.cnblogs.com/snandy/arch ...

  2. 10分钟学会Python函数基础知识

    看完本文大概需要8分钟,看完后,仔细看下代码,认真回一下,函数基本知识就OK了.最好还是把代码敲一下. 一.函数基础 简单地说,一个函数就是一组Python语句的组合,它们可以在程序中运行一次或多次运 ...

  3. Python 函数基础、有序集合、文件操作(三)

    一.set 特点: set是一个无序且不重复的元素集合访问速度快:天生解决元素重复问题 方法: 初始化 >>> s1 = set()>>> print(type(s ...

  4. python函数基础学习

    函数的定义与调用: def 函数名(参数1,参数2): ‘’’函数注释’’’ print(‘函数体’) return 返回值 定  义:def关键字开关,空格之后接函数名和圆括号,最后冒号结尾 def ...

  5. Python函数基础和函数参数

    函数的定义和函数的调用 return的作用 三种参数的定义 常用的内置函数 len() 函数基础 函数的定义 def 函数名(参数): pass return 表达式 pass在这里表示什么都没有,不 ...

  6. 函数基础实战之ATM和购物车系统

    username_list = [] prize_dict = { '0': "芭比娃娃", '1': "变形金刚", '2': "psp游戏机&qu ...

  7. python函数基础

    一.基础 函数的定义 def 函数名(参数): ... 函数体 ... 返回值 #如果函数执行完毕也没有return语句时,自动return None. 空函数 如果想定义一个什么事也不做的空函数,可 ...

  8. python 函数基础介绍

    函数是对程序逻辑进行结构化或过程化的一种编程方法.能将整块代码巧妙地隔离成易于管理的小块,把重复代码放在函数中而不是进行大量的拷贝. 一.函数创建 def 函数创建格式如下: def function ...

  9. 4.python函数基础

    一.函数 1.函数简介 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但 ...

  10. python函数基础(3)

    第1章 编码补充 1.1 字符编码对照表 1.2 编码特性 1.4 encode/decode第2章 集合 2.1 特点 2.2 [重点]作用:去重 2.3 常用操作 2.3.1 删除 2.3.2 交 ...

随机推荐

  1. 一定要看到花开-M1下的环境噩梦

    一定要看到花开-M1下的环境噩梦 人有时候就是喜欢犯贱. 关注我这快小一年的扯闲天的都知道,自己也算是经历了一劫吧.虽然,这劫难还不能说结束,但也算是走出来了. 一切,似乎正在朝着好的方向发展. 但是 ...

  2. HarmonyOS NEXT从图库选择资源上传到服务器或者把网络资源下载到图库

    用户需要分享文件.保存图片.视频等用户文件时,开发者可以通过系统预置的文件选择器(FilePicker),实现该能力.通过Picker访问相关文件,将拉起对应的应用,引导用户完成界面操作,接口本身无需 ...

  3. P8842 [传智杯 #4 初赛] 小卡与质数2

    传送门 变态数学题(主考位运算与素数筛). 读完题看起来有点难做,因为质数的出现是根本没有可以使用的规律.暴力的话也很好想,枚举 $y$.但是肯定会超时.我们也可以换个方向枚举.对,筛出素数,再返过去 ...

  4. DeepSeek + Mermaid:零代码玩转专业流程图

    一.工具组合超能力解析 黄金组合优势: 语言到图表的直接转换 - 用中文描述即可生成专业图表 动态修正能力 - 实时调整描述立即更新图表 企业级复杂度支持 - 轻松处理多层级流程 零安装成本 - 纯W ...

  5. 使用ajax来进行登录验证

    servlet: 1 @WebServlet("/login.do") 2 public class AjaxLoginServlet extends HttpServlet { ...

  6. 优化PHP开发流程:精选工具与配置指南,提升代码质量与效率

    本文由 ChatMoney团队出品 在PHP开发领域,选择正确的工具可以极大地提升开发效率和代码质量. 集成开发环境(IDE) PHPStorm 是一个强大的IDE,专为PHP开发设计.它提供了丰富的 ...

  7. 现代Web安全实践:基于Token与Refresh Token的单点登录(SSO)实现

    ​ 在数字化转型加速的今天,单点登录(SSO)已成为企业身份管理的核心基础设施.袋鼠云UED团队在过去几年中,为金融.政务.医疗等领域的大型系统构建SSO解决方案.本文将分享基于Token的标准SSO ...

  8. @全体开发者们,ChunJun 有奖征文,精美奖品,快来参加!

    2022年4月,在 FlinkX 进行初版开源的整整四年后,技术团队决定对FlinkX进行整体升级,并更名为 ChunJun.到目前为止,ChunJun 正式更名上线已经过了一年多了.作为一款稳定.易 ...

  9. 激活数据价值,探究DataOps下的数据架构及其实践丨DTVision开发治理篇

    据中国信通院发布,2012年到2021年10年间,我国数字经济规模由12万亿元增长到45.5万亿元,在整个GDP中的比重由21.6%提升至39.8%.顺应时代发展新趋势,"数据"成 ...

  10. Spring Boot 自动配置原理深度解析

    在 Spring 生态系统中,Spring Boot 自动配置是实现 "零配置" 开发的核心特性,通过约定大于配置的理念,自动为应用注入所需的基础设施配置.本文从核心注解.底层机制 ...