失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python如何编写购物车程序的示例代码分享

python如何编写购物车程序的示例代码分享

时间:2022-03-10 01:16:25

相关推荐

python如何编写购物车程序的示例代码分享

后端开发|Python教程

Day2,购物车,编写

后端开发-Python教程

要求

phpcms v9 整站源码,vscode标签手册,ubuntu中tree的安装,tomcat 7 jsp,ruby sqlite3,js 编辑器插件,如何搭建vue前端框架,jsoup爬虫 付费文章,重复提交 php,黑帽seo团队,网站背景的动态线条怎么制作,易语言 与网页交互,信息版模板,jquery 页面载入,织梦内容管理系统文章编辑表格不见了边框线,微擎微信小程序怎么安装lzw

1、启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表

小程序下拉框源码,mac端vscode怎么卸载,ubuntu窗口管理,tomcat配404报错,新闻爬虫版权,php回车符,seo培训哪里最好运营,教育行业网站模板,小米模板lzw

2、允许用户根据商品编号购买商品

相册 源码 下载,ubuntu文件不可读,tomcat 最大连接时间,地上爬虫图片,支持php8.0的博客,seo站长域名lzw

3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒

4、可随时退出,退出时,打印已购买商品和余额

5、在用户使用过程中, 关键输出,如余额,商品已加入购物车等消息,需高亮显示

6、用户下一次登录后,输入用户名密码,直接回到上次的状态,即上次消费的余额什么的还是那些,再次登录可继续购买

7、允许查询之前的消费记录

1)编写思路

编写思路参考下面GitHub链接中的流程图

2)具体实现

# -*- coding:utf-8 -*-# Author:Chuixin Zeng# 导入JSON模块import json# 导入日期时间模块import datetime# 导入系统OS模块import os# 自定义欢迎信息info = \1. 按"A"注册2. 按"B"登录3. 按"Q"退出\# 自定义错误提示信息_error_info = 输入有误,请检查后重新输入!# 定义一个_save_account函数# 用于将购物相关信息保存到JSON文件,比如购物时间,购物历史,购物列表,账户余额,创建的新用户和现有已存在用户信息def _save_account(database, filename=DataBase.json): # 打开并可写文件,若文件已存在,则以前的内容将被清除 # 使用with as语句的效率更高,不需要单独设置如何读文件之后再如何关闭文件,一个with as搞定所有读写关闭操作 with open(filename,w) as f: # f相当于一个变量,把打开并修改文件的操作赋予f json.dump(database,f) # json.dump是将一个Python数据类型列表进行json格式的编码解析# 定义一个_load_database函数,用于从json文件中读取信息,默认加载的数据库是database.json文件def _load_database(filename=DataBase.json): with open(filename) as f: database = json.load(f) # 解码JSON数据,将一个JSON编码的字符串转换回一个Python数据结构 return database # 返回解码后的数据# 定义一个函数_set_shopping_time,设置并记录购物的时间,函数里面定义了一个参数account,用于保存账户信息def _set_shopping_time(account): database = _load_database() # 设定要记录到哪个数据库,这里使用的是前面定义好的函数_load_database定义的database.json d1 = datetime.datetime.now() # 设置购物时间为当前时间 d2 = d1.strftime(\%Y-%m-%d %H:%M:%S) # 将当前时间进行格式转换 database[account][shopping_time] = d2 # 将转换好的时间记录到字典里面的shopping_time键上 _save_account(database) # 保存购物时间到数据库中,这里的数据库是指database.json文件# 定义一个函数,用于获取已经保存过的购物时间def _get_datetime(account): database = _load_database() data = database[account][shopping_time] # 返回变量data的值,变量data保存的就是account键对应的购物时间值,这个值是从json里面解码出来后到字典里 # 由json到Python可识别的字典数据的解码过程由_load_database函数完成 return data# 定义一个函数_get_shopping_history,用于查询购物历史记录def _get_shopping_history(account): database = _load_database() history = database[account][shopping_list] # 增加一个空列表,配合下边for循环将购物清单中的重复项合并 aa = [] for i in history: # 将购物车里面的shopping list和aa空列表进行对比,如果列表里面没有,就添加到列表 # 也就意味着,如果列表已经有了就不添加了,达到了购物车去重的功能 if i not in aa: aa.append(i) # 然后循环遍历aa列表里面的购物清单 for j in aa: # 统计购买的每件商品的数量,也就是aa列表里面每件商品的数量,数量从history原始列表里面取(未去重的列表) count = history.count(j) # 统计购买商品的日期,日期就是account字典对应的商品的日期 date = _get_datetime(account) # 打印购买的商品的数量、日期和商品名称 print(您于%s购买了%s件%s %(date,count,j))# 定义一个函数login,用于登录系统def _login(): database = _load_database() # 加载数据库,使用的是前面定义好的加载数据库的函数 blacklist = _load_database(BlackList.json) # 设置用户的黑名单列表,在列表中的用户将不允许登录到购物系统 print(欢迎登录购物系统!) # 打印欢迎信息 # 第一个死循环 while True: account = input("请输入您的账号登录系统(按q退出):") if account in blacklist: # 如果账户在黑名单里面,则退出登录 print("您的账号已经被锁定,请联系管理员处理!") _logout() # 直接调用下面定义好的_logout()函数 # 判断如果用户输入的是q,就退出购物系统 elif account == q: _logout() # 判断如果用户在数据库里面,则继续判断用户输入的密码是否正确 # 这里使用while循环和count计数器,如果输入错误密码大于3次,则锁定账户 elif account in database: count = 0 while count = price: # 调用_set_balance函数,计算购买后的账户余额是多少 # #计算方法在_set_balance函数里面 _set_balance(account,price) # 提示用户已经成功购买商品 print(您成功购买%d件商品:%s!\% (num,p_name)) # 调用_set_shopping_list函数,将购买的商品列表保存到json文件中 _set_shopping_list(account,p_name,num) # 定义account_balance变量,通过使用_get_balance函数重新获取账户的余额信息 account_balance = _get_balance(account) # 打印告诉用户,购买完商品之后剩下多少钱 print(您目前的账户余额为\033[31m%d\033[0m元 % account_balance) # 调用_set_shopping_time函数,将购物时间写入到json文件 _set_shopping_time(account) # 退出当前的循环,到上一级循环,用户可以选择是否继续购物 break # 如果用户的账户余额小于商品的金额,则告诉用户余额不足,无法购买 else: print(您的账户余额不足,请您及时充值!) g = input("充值输入t,返回上一级输入b,退出输入q:") if g == q: _logout() if g == : break if g == : # 这里我增加了一个调用_top_up函数,账户余额不住的时候,马上提示用户充值 _top_up(account)# 如果用户购买商品时输入的数量不是纯数字类型,则调用_error_info函数,输出错误信息else: print(_error_info) # 如果用户输入的购买的商品名称不正确,则调用_error_info函数,输出错误信息 else: print(_error_info)# # 如果用户输入的购买的商品分类信息不正确,则调用_error_info函数,输出错误信息else: print(输入错误,请重新输入!) # 如果用户输入的不是商品分类,而是q,则调用_logout函数退出登录 elif choose == q: _logout(account) # 如果用户输入的信息既不在商品分类中,也不是q,则告诉用户重新输入 else: print(输入错误,请重新输入!)#def _add_user(): # 首先调用_load_database函数,将json文件解码出来,放到database变量 database = _load_database(DataBase.json) # 执行while循环 while True: # 提供交互式界面,让用户输入要创建的用户名称 username = input(请输入您的账户名称:).strip() # 判断是否存在重名的用户,如果有,则告诉用户,继续执行while循环,让用户输入 if username in database: print(用户名已经存在,不需要重复创建!) # 如果没有,则用户输入信息有效,中断while循环 else: break # 执行while循环 while True: # 让用户输入两次密码 pwd1 = input(请输入您的账户密码:).strip() pwd2 = input(请再次输入您的账户密码:).strip() # 对两次输入的密码信息进行比对 # 如果面膜不正确,则继续执行while循环让用户重新输入 if pwd1 != pwd2: print(2次输入的密码不通,请重新输入) # 如果输入的密码是正确的,则告诉用户创建账户成功 else: print(创建用户成功,开始购物吧!) # 把用户创建的账户和密码信息保存到database字典中 # username为用户账号,pwd1为用户密码,balance为账户余额,shopping_list为购物清单,shopping_time为购物时间 database[username] = {pwd:pwd1,alance:0,shopping_list:[],shopping_time:None} # 调用_save_account函数,将创建好的账户信息和账户的初始余额、初始购物时间信息保存到json文件 _save_account(database) # 退出while循环 break# 设置默认变量account = None来判定账号是否已经登录,如果没有登录就退出,则不打印购物信息# 如果已经登录过,则打印购物历史信息def _logout(account=None): if account != None: _get_shopping_history(account) exit(感谢您来购物!)# 定义一个main函数,用于初始登录界面的判断def main(): # 执行while循环 while True: # 打印登录提示信息,info信息定义在程序的开头,是一个字符串类型 print(info) # 提供交互式界面,让用户输入指令信息 command = input(请输入指令:).strip() # 如果用户输入的是大写的A,则调用_add_user函数,创建新用户 if command.upper() == A: _add_user() # 如果用户输入的是大写的B,则调用_login函数,进行登录 elif command.upper() == B: _login() # 如果用户输入的是Q,则调用_logout函数,退出登录 elif command.upper() == Q: _logout() # 如果用户没有按照提示信息进行输入,则告诉用户重新输入,会重新执行while循环 else: print(输入错误,请重新输入)# 执行main函数if __name__ == \__main__: main()

如果觉得《python如何编写购物车程序的示例代码分享》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。