'''用户登录验证要求:1. 系统⾃动⽣成4位随机数. 作为登录验证码. 直接用就好. 这里不用纠结提示. 生成随机数的办法. from random import randintnum = 0verify_code = ""while num < 4: verify_code += chr(randint(65, 90)) num += 1print(verify_code) # 四位随机验证码2. 用户输入⽤用户名和密码还有验证码.3. 用户可以有三次登录的机会. 但是验证码如果输入错误. 不计算在内'''
from random import randint
#正确的用户名和密码 username = "alex" password = "123" count = 3 while count > 0: #用户输入用户名和密码 uname = input("请输入用户名:") pwd = input("请输入密码:") #生成验证码,每次生成的都是随机的(此处是题上提供的代码) num=0 verify_code"" while num < 4: verify_code += chr(randint(65, 90)) num += 1 # 用户输入验证码 yzm = input("请输入验证码(%s)" % verify_code) #判断验证码是否正确 if yzm.upper()!=verify_code: print("验证码错误!") #验证码错误,重新输入,并没有改变循环的次数限制,这样验证码错误就不会计算一次登录错误
else: if uname == username and pwd == password: print("登陆成功!") break #退出程序 else: print("对不起,用户名或密码错误") count -= 1 #用户登录失败,次数减一 print("还有%s次机会" % count)
'''数据结构:goods = [{"name": "电脑", "price": 1999},{"name": "鼠标", "price": 10},{"name": "游艇", "price": 20},{"name": "美女", "price": 998},......]功能要求: 基础要求: 1、启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表 2、允许用户根据商品编号购买商品 3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4、可随时退出,退出时,打印已购买商品和余额 5、在用户使用过程中, 关键输出,如余额,商品已加入购物车等消息,需高亮显示扩展需求: 1、用户下一次登录后,输入用户名密码,直接回到上次的状态,即上次消费的余额什么的还是那些,再次登录可继续购买 2、允许查询之前的消费记录
goods = [ {"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998} ]
#用户名密码 username = "alex" password = "123" f = open("shopping_cart.txt",mode="r",encoding="utf-8") #从文件中读取到上次的余额,创建了一个文件"shopping_cart.txt" money = int(f.readline().strip().split(":")[1]) #账户内的钱
# 购物车 # [{'id': 0, 'name':'电脑', 'price': 1999, 'totle': 10}] # [{'id': 编号, 'name':'商品', 'price': 价格, 'totle': 数量}] # 从文件中读取到购物车内的数据 shoppingcart = eval(f.readline().strip()) f.close() # 登录. while 1: uname = input("请输入你的用户名, 输入Q退出系统:") if uname.upper() == 'Q': print("系统退出") break pwd = input("请输入你的密码:") if uname == username and pwd == password: print("恭喜你. 登录成功") _money = int(input("您当前的余额是:%s, 输入任意数字进行充值, 输入0不充值: " % money)) money += _money while 1: # 商品列表 for i in range(len(goods)): print("%s, 商品: %s, 价格: %s" % (i+1, goods[i]['name'], goods[i]['price'])) # 用户输入要购买的商品编号 num = int(input("请输入您想要购买的商品编号:")) # 获取到用户购买的商品 good = goods[num - 1] # 校验是否可以购买 if money < good['price']: # 商品价格 print("对不起, 余额不足! 您当前的余额是%s 请购买其他商品!" % money) continue # 重新显示商品列表 else: for g in shoppingcart: if g['id'] == num - 1: # 查看购物车中是否已经拥有已经够买了的商品 g['totle'] += 1 # 已经有了. 数量加1就可以了 break # 结束购物车的添加 else: # 购物车里没有该商品. # 将第一次购买的商品添加到购物车 shoppingcart.append({'id': num-1, 'name': good['name'], 'price': good['price'], 'totle': 1}) money = money - good['price'] # 扣款 # 提示用户购买成功 print("购买%s商品成功, 花费%s元, 您的余额是: %s" % (good['name'], good['price'], money)) # 判断是否继续购物 isContinue = input("请问是否继续购物. 输入任意内容继续, 输入N结束购物(N)") if isContinue.upper() == 'N': print("结束购物") # 购物流程结束. 打印购物已经购买的商品和余额. 此处可以写在"结束购物"位置 print("您的余额是%s" % money) print("商品编号\t商品名称\t商品单价\t购买数量\t花费金额") for good in shoppingcart: print("%s\t%s\t%s\t%s\t%s" % ( good['id'], good['name'], good['price'], good['totle'], (good['price'] * good['totle']))) # 将购物车中的内容和余额写入到文件中 f = open("shopping_cart.txt", mode="w", encoding="utf-8") f.write("money:%s\n" % money) f.write(str(shoppingcart)) f.flush() f.close() print("程序退出. 欢迎下次光临!") exit() # 结束购物 else: print("对不起, 登录失败")