python第八天)——购物车作业优化完成

摘要:
所以我们重新设计了流程图:添加新功能:1。你可以注册!2.您可以查看当前购物的列表3,然后退出而不结算。详细代码如下:1#!usr/bin/envpython2#-*-coding:utf-8-*-3#Authorcalmyan4importtime,sys,os5user_File=open#使用openasuser打开用户列表文件6#File:7user_list=eval#转换用户文件中的字符串用户_list:registered user list 8lock_ Name=open#打开锁定的用户列表文件9lock_ list=eval#转换锁定的用户文件101112defregis():13whileTrue:14name=input15ifnamenotinuser_list:16print(“恭喜!˃˃”)17password=input18password2=input19ifpassword==password2:20:name_ Infor=''祝贺您成功注册用户!21用户名:{name}22密码:{Password}23请记住您的用户名和密码24''25print26user_List[name]=password2#将注册用户添加到dictionary_File中的27个用户。seek#调用前28个用户_文件。write#写入文件29user_文件。flush()#您可以保存3031#confirm()32break33else:34print(“用户名已注册!

发现之前的三级菜单代码有BUG现已经修改过来了

购物车程序:
启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表
允许用户根据商品编号购买商品
用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
可随时退出,退出时,打印已购买商品和余额
在用户使用过程中, 关键输出,如余额,商品已加入购物车等消息,需高亮显示
用户下一次登录后,输入用户名密码,直接回到上次的状态,即上次消费的余额什么的还是那些,再次登录可继续购买
允许查询之前的消费记录

对于昨天的作业自己不太满意!所以重新设计了流程图:

增加新的功能:

1,可以注册!

2,可以查看当前购物的清单

3,可以不结算退出

python第八天)——购物车作业优化完成第1张

详细代码如下:

  1 #!usr/bin/env python
  2 #-*-coding:utf-8-*-
  3 # Author calmyan
  4 import time,sys,os
  5 user_file=open("user_file.txt",'r+',encoding='utf-8')#打开用户列表文件
  6 #with open('user_file.txt','r+',encoding='utf-8') as user_file:
  7 user_list=eval(user_file.readline())#转换用户文件中的字符串  user_list:注册用户列表
  8 lock_name=open('lock_name.txt','r+',encoding='utf-8')#打开锁定用户列表文件
  9 lock_list=eval(lock_name.readline())#转换锁定用户文件中的字符串
 10 
 11 
 12 def regis():
 13     while True:
 14         name=input("请输入您要注册的用户名:")
 15         if name not in user_list:
 16             print("恭喜!该用户名可以被注册!>>>")
 17             password=input('请输入密码:')
 18             password2=input('请再次确认密码:')
 19             if password==password2:
 20                 name_infor='''恭喜您用户注册成功!
 21                     用户名:{name}
 22                     密  码:{password}
 23                     请牢记您的用户名与密码
 24                 '''
 25                 print(name_infor.format(name=name,password=password2))
 26                 user_list[name]=password2#增加注册用户到字典中
 27                 user_file.seek(0)#称到最前
 28                 user_file.write(str(user_list))#写入文件
 29                 user_file.flush()#即可保存
 30 
 31                 #confirm()
 32                 break
 33         else:
 34             print("该用户名已经被注册啦!请重新来过<<<")
 35             confirm()#是否退出
 36             continue
 37 
 38 
 39 
 40 def userchar(_user_name):#检测用户名的函数
 41     while True:
 42         if _user_name in user_list and _user_name not in lock_list:#判断用户是否存在并正常
 43             return True#存在返回真
 44         elif _user_name in user_list and _user_name  in lock_list:#判断用户是否被锁定
 45             print('您的用户已经被锁定,请联系商家解锁!')
 46             break
 47         else:
 48             reg=input('您输入用户不存在,请先注册!按

免责声明:内容来源于网络,仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【JUnit】JUnit 父类和子类执行顺序jdk1.8.0_40 +maven+tomcat7.0+mysql8.0详细安装教程下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Protobuf 语法指南

英文: Proto Buffers Language Guide 本指南描述了怎样使用protocol buffer 语法来构造你的protocol buffer数据,包括.proto文件语法以及怎样生成.proto文件的数据访问类。(本文只针对proto2的语法) 本文是一个参考指南——如果要查看如何使用本文中描述的多个特性的循序渐进的例子,请在http...

【转】用Python实现各种排序算法

以下代码均为python3版本的代码 # 冒泡排序 # 比较相邻的元素大小,将小的前移,大的后移,就像水中的气泡一样,最小的元素经过几次移动,会最终浮到水面上。 def bubbleSort(list): if list != None: if len(list) ==1: pass...

python之SQLAlchemy

ORM介绍 orm英文全称object relational mapping,就是对象映射关系程序,简单来说我们类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型的,为了保证一致的使用习惯,通过orm将编程语言的对象模型和数据库的关系模型建立映射关系,这样我们在使用编程语言对数据库进行操作的时候可以直接使用编程语言的对象模型...

python学习-[小甲鱼]零基础入门教学

《零基础入门学习Python》(小甲鱼)学习记录 3月1日 P46魔法方法:属性访问 getattr setattr delattr property >>> class C: def __init__(self, size=10): self.size = size def getSize(self): return se...

如何利用 Python 爬虫实现给微信群发新闻早报?(详细)

1. 场景 经常有小伙伴在交流群问我,每天的早报新闻是怎么获取的? 其实,早期使用的方案,是利用爬虫获取到一些新闻网站的标题,然后做了一些简单的数据清洗,最后利用 itchat 发送到指定的社群中。 由于爬虫面对 网站改版的不稳定性及 itchat 不安全性,所以放弃了这种方案 后期更改了一种方案,通过修改爬虫方案,创建 API 服务,编写 App 去获...

python与c#的交互模块pythonnet

 今天总结一下python与c#的交互模块pythonnet,其实微软也是有相应的解释器的,就是Ironpython,可是毕竟Ironpython还有很多东西没有从python那边继承过来,所以有时候用起来并不是那么爽。但是好在强大的社区总会给我们惊喜,pythonnet就是其中一个让我惊喜的模块,它可以平滑的和C#进行交互。但是网上这方面的资料还是太少了...