python模拟购物车流程_python实现购物车小程序

#需求:

用户名和密码存放于文件中,格式为:egon|egon123

启动程序后,先登录,登录成功则让用户输入工资,然后打印商品列表,失败则重新登录,超过三次则退出程序

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

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

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

#!/usr/bin/python

#_*_coding:utf-8_*_

prod_info = {

'Apple':10,

'Tesla':700000,

'Mac_Pro':2000,

'Lenovo':4500,

'Chicken':15,

'Women':10000000000

}

# 初始化账号锁定次数为0次

count_lock = 0

while True:

username=input('请输入用户名>>: ')

if username == '':

continue

with open('user_info','r') as f:

user_data = f.readlines()

# print(user_data)

for user in user_data:

user_list = user.strip().split('|')

if username == user_list[0]:

# continue

while True:

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

if passwd == '':

continue

with open('user_info', 'r') as f:

user_data = f.readlines()

for password in user_data:

user_list = password.strip().split('|')

# print(user_list[1])

if username == user_list[0] and passwd == user_list[1].strip():

print('用户%s登录成功!' %username)

while True:

# 用户登录成功之后,输入工资

salary_str = input('请输入您的工资 >>: ').strip()

salary = int(salary_str)

if salary == '':

continue

# 打印商品名称和价格列表

prod_list = list(prod_info.items())

# 打印商品名称列表

prod_name_list = list(prod_info.keys())

# 定义一个空的购物列表

shopping_list = []

shop_car = []

while True:

print('Product List'.center(40,'-'))

for prod_name in prod_list:

print(prod_list.index(prod_name) + 1, prod_name)

# for index, item in enumerate(prod_info, 1):

# print(index, item)

choice_id = input('请输入商品名对应的编号,输入q退出程序!>>: ').strip()

# 退出后打印已购商品信息和剩余金额

if choice_id == 'q':

print('购物车清单'.center(37, '-'))

print('已购商品:', shop_car)

print('您当前的余额为:', salary)

print('结束'.center(40,'-'))

exit()

if choice_id.isdigit():

choice_id = int(choice_id)

# 判断输入的商品编号条件

if choice_id > 0 and choice_id <= len(prod_list):

# 通过商品ID,等到商品名称

choice_prod_name = prod_name_list[choice_id - 1]

# print(choice_prod_name)

print('您选择的商品是%s!' % choice_prod_name)

while True:

prod_num = input('请输入购买商品个数,输入q退出程序!>>: ').strip()

total_price = int(prod_info[choice_prod_name]) * int(prod_num)

# 判断是否金额足够购买商品

if total_price <= salary:

# 计算剩余金额

salary -= total_price

# 将已购买商品追加到列表中

shop_car.append((choice_prod_name,int(prod_num)))

print('您已购买商品%s' %choice_prod_name)

print('您当前的余额为:', salary)

else:

# 购买商品余额不足处理

print('您的余额不足')

# 退出打印已购商品清单,并打印余额

if prod_num == 'q':

print('购物车清单'.center(37,'-'))

print('已购商品:',shop_car)

print('您当前的余额为:', salary)

print('结束'.center(40, '-'))

exit()

# 判断输入商品数量是否为纯数字

if prod_num.isdigit():

break

# 打印添加到购物车的商品

shopping_list.append((choice_prod_name, prod_info[choice_prod_name], int(prod_num)))

print('购物车', shopping_list)

else:

print('您输入的商品编号%s不存在,请重新选择商品!' %choice_id)

else:

count_lock += 1

# 判断用户登陆次数剩余次数

if (3 - count_lock):

print('账号或密码错误,还有 %s 次机会尝试登陆!' % (3 - count_lock))

# 超出尝试登录次数,直接退出程序

# 密码输入三次错误后,锁定账号

if count_lock == 3:

print('您的账号 %s 已被锁定!' % username)

exit()

else:

# 账号不存在,告知

print('用户不存在!')

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值