三次登录验证以及购物车
1. 三次登录验证
完成⽤户登录验证
要求:
1. 系统⾃动⽣成4位随机数. 作为登录验证码. 直接⽤就好. 这里不用纠结
from random import randint
num = 0
verify_code = ""
while num < 4:
verify_code += chr(randint(65, 90))
num += 1
print(verify_code) # 四位随机验证码
2. ⽤户输入⽤用户名和密码还有验证码.
3. 用户可以有三次登录的机会. 但是验证码如果输入错误. 不计算在内
""" 1. 三次登录验证 完成⽤户登录验证 要求: 1. 系统⾃动⽣成4位随机数. 作为登录验证码. 直接⽤就好. 这里不用纠结 from random import randint num = 0 verify_code = "" while num < 4: verify_code += chr(randint(65, 90)) num += 1 print(verify_code) # 四位随机验证码 2. ⽤户输入⽤用户名和密码还有验证码. 3. 用户可以有三次登录的机会. 但是验证码如果输入错误. 不计算在内 程序实现:验证码和用户名,密码一起输入,但是首先判断验证码,在验证码正确的前提下,用户名或密码的错误才算在三次之内,否则归咎于验证码错误. """ from random import randint uname = 'alex' upsw = 'abc' count = 0 while 1: # 用户登录 while count < 3: # 生成验证码,每次重新输入都要更新验证码 num = 0 verify_code = "" while num < 4: verify_code += chr(randint(65, 90)) # 大写字母的 ASCII 码 num += 1 print('验证码:' + verify_code) # 四位随机验证码 code = input('请输入验证码:').strip().upper() name = input('请输入用户名:').strip() password = input('请输入密码:').strip() if code == verify_code: if name == uname and password == upsw: print('登录成功') exit() # 退出整个程序 else: print('用户名或密码错误') count += 1 continue # 继续3次以内的循环 else: print('验证码错误,请重新输入') break # 跳出内层的 while循环 else: # 输错三次 print('输错三次,无法登录') break # 跳出外层的 while 循环
2, 购物车作业
# 商品信息:
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998},
......
]
# 用户信息:
user = {"username":"alex", "password": "123456"}
功能要求:
1、启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表
2、用户根据商品编号购买商品
3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
4、退出时,打印已购买商品和余额
# _*_ coding:utf-8 _*_ """ 2, 购物车作业 # 商品信息: goods = [ {"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998}, ...... ] # 用户信息: user = {"username":"alex", "password": "123456"} 功能要求: 1、启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表 2、用户根据商品编号购买商品 3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4、退出时,打印已购买商品和余额 """ goods = [ {"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998} ] user = {"username": "alex", "password": "123456"} shopping_cart = {} # 内部存储格式为 {"电脑":[1999, 2],"美女":[998, 2]}, 商品名/单价/数量 # 用户登录 while 1: name = input('请输入用户名:').strip() psw = input('请输入密码:').strip() if name == user['username'] and psw == user['password']: print('登录成功') break else: print('用户名或密码错误,请重新输入') # 工资 while 1: salary = input('请输入工资:').strip() if salary.isdigit(): salary = int(salary) break else: print('不是数字,请重新输入') # 购买 while 1: # 商品列表 print('商品列表'.center(24, '-')) for i in range(len(goods)): print('%s %s %s' % (i, goods[i]['name'], goods[i]['price'])) choice = input('请输入商品编号(Q退出):').strip() if choice.isdigit(): choice = int(choice) if choice < len(goods): # 在索引范围内 p = goods[choice] # 取出商品 if p['price'] <= salary: if p['name'] not in shopping_cart: # 购物车没有该商品 shopping_cart[p['name']] = [p['price'], 1] # 设置默认值 else: # 数量加1就可以 shopping_cart[p['name']][1] += 1 salary -= p['price'] continue else: print('余额不足') else: print('商品不存在,请重新输入') elif choice.upper() == 'Q': if len(shopping_cart) > 0: print('购物列表'.center(24, '-')) carts_show = ['%s %s %s %s\n' % ('商品', '单价', '数量', '总价')] for k, v in shopping_cart.items(): carts_show.append('%s %s %s %s\n' % (k, v[0], v[1], v[0]*v[1])) print(''.join(carts_show)) print('余额:', salary) break else: print('不是数字,请重新输入') 参考代码