python入门小练习_python基础-小练习

importos

product_list= [['Iphone7',5800],

['Coffee',30],

['疙瘩汤',10],

['Python Book',99],

['Bike',199],

['ViVo X9',2499],

]

shopping_cart={}

current_userinfo=[]

db_file=r'db.txt'

whileTrue:print('''登陆

注册

购物''')

choice=input('>>:').strip()if choice == '1':#1、登陆

tag=True

count=0whiletag:if count == 3:print('\033[45m尝试次数过多,退出。。。\033[0m')breakuname= input('用户名:').strip()

pwd= input('密码:').strip()

with open(db_file,'r',encoding='utf-8') as f:for line inf:

line=line.strip('\n')

user_info=line.split(',')

uname_of_db=user_info[0]

pwd_of_db=user_info[1]

balance_of_db=int(user_info[2])if uname == uname_of_db and pwd ==pwd_of_db:print('\033[48m登陆成功\033[0m')#登陆成功则将用户名和余额添加到列表

current_userinfo=[uname_of_db,balance_of_db]print('用户信息为:',current_userinfo)

tag=Falsebreak

else:print('\033[47m用户名或密码错误\033[0m')

count+=1

elif choice == '2':

uname=input('请输入用户名:').strip()whileTrue:

pwd1=input('请输入密码:').strip()

pwd2=input('再次确认密码:').strip()if pwd2 ==pwd1:break

else:print('\033[39m两次输入密码不一致,请重新输入!!!\033[0m')

balance=input('请输入充值金额:').strip()

with open(db_file,'a',encoding='utf-8') as f:

f.write('%s,%s,%s\n' %(uname,pwd1,balance))elif choice == '3':if len(current_userinfo) ==0:print('\033[49m请先登陆...\033[0m')else:#登陆成功后,开始购物

uname_of_db=current_userinfo[0]

balance_of_db=current_userinfo[1]print('尊敬的用户[%s] 您的余额为[%s],祝您购物愉快' %(

uname_of_db,

balance_of_db

))

tag=Truewhiletag:for index,product inenumerate(product_list):print(index,product)

choice=input('输入商品编号购物,输入q退出>>:').strip()ifchoice.isdigit():

choice=int(choice)if choice < 0 or choice >= len(product_list):continuepname=product_list[choice][0]

pprice=product_list[choice][1]if balance_of_db >pprice:if pname in shopping_cart: #原来已经购买过

shopping_cart[pname]['count']+=1

else:

shopping_cart[pname]={'pprice':pprice,'count':1}

balance_of_db-=pprice #扣钱

current_userinfo[1]=balance_of_db #更新用户余额

print("Added product" + pname + "into shopping cart,\033[42;1myour current\033[0m balance" +str(balance_of_db))else:print("买不起,穷逼! 产品价格是{price},你还差{lack_price}".format(

price=pprice,

lack_price=(pprice -balance_of_db)

))print(shopping_cart)elif choice == 'q':print("""---------------------------------已购买商品列表---------------------------------

id 商品 数量 单价 总价""")

total_cost=0for i,key inenumerate(shopping_cart):print('%22s%18s%18s%18s%18s' %(

i,

key,

shopping_cart[key]['count'],

shopping_cart[key]['pprice'],

shopping_cart[key]['pprice'] * shopping_cart[key]['count']

))

total_cost+=shopping_cart[key]['pprice'] * shopping_cart[key]['count']print("""您的总花费为: %s

您的余额为: %s

---------------------------------end---------------------------------""" %(total_cost,balance_of_db))whiletag:

inp=input('确认购买(yes/no?)>>:').strip()if inp not in ['Y','N','y','n','yes','no']:continue

if inp in ['Y','y','yes']:#将余额写入文件

src_file=db_file

dst_file=r'%s.swap' %db_file

with open(src_file,'r',encoding='utf-8') as read_f,\

open(dst_file,'w',encoding='utf-8') as write_f:for line inread_f:ifline.startswith(uname_of_db):

l=line.strip('\n').split(',')

l[-1]=str(balance_of_db)

line=','.join(l)+'\n'write_f.write(line)

os.remove(src_file)

os.rename(dst_file,src_file)print('购买成功,请耐心等待发货')

shopping_cart={}

current_userinfo=[]

tag=Falseelse:print('输入非法')else:print('\033[33m非法操作\033[0m')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值