案例一:test.txt文件中与输入的用户进行认证,超过3次用户被锁定,且把用户加入锁定的lock.txt文件中。 # 需求点: # 1.输入用户名、密码 # 2.认证成功后显示欢迎信息 # 3.输错三次后锁定,且写入lock.txt文件;存放用户名、密码的test.txt文件. # 实现思路: # 1.判断用户是否锁定 # 2.判断用户是否存在 # 3.判断账号、密码是否正确,如果正确,显示登陆进去,如果不正确三次输入密码机会,三次错误,账号锁定
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#获取被锁住的文件 with open("lock.txt",'r') as f: lock_user = f.readlines() #获取用户名、密码 with open('test.txt','r') as f: user =f.readlines() #定义列表用于存放被锁住的用户和已存在的用户 name_pass=[] user_name=[] #列表包含被锁住的值 for i in range(lock_user.__len__()): name_pass.append(lock_user[i].strip(' ').split(',')) #列表包含用户名,用于判断用户名是否存在 for i in range(user.__len__()): user_name.append(user[i].strip(' ').split(',')) #判断输入的用户是否存在锁住的用户中 _username = input("请输入您的用户名:") count = 0 if _username in name_pass[0]: print("%s已经被锁定"%_username) else: if _username in user_name[0]: while count < 3: _password = input("请输入您的密码:") if user_name[count][1]==_password and user_name[count][0] == _username: print("欢迎%s登录成功"%user_name[count][0]) break else: print("密码错误,请重新输入") count += 1 else: print("您输入的内容已经被锁定") with open('lock.txt','a+') as f2: f2.write(_username)
PS:文件读取出来的值类型都是list(列表),用户input输入的值都是str(字符串)
案例二:购物车程序 #1.启动程序后,让用户输入工资,然后打印商品列表 #2.允许用户根据商品编号购买商品 #3.用户选择商品后,检测余额是否足够,够就直接扣款,不够就提醒 #4.可随时退出,退出时,打印已购买商品和余额
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
product_list =[ ("Bike", 800), ("apple", 5000), ("watch", 2000), ("Mac apple", 12000), ("iphone", 8000) ] shopping_list =[] salary =input("请输入工资:") if salary.isdigit(): salary =int(salary) while True: for index, item in enumerate(product_list): print(index, item) user_choice = input("请输入商品编号:") if user_choice.isdigit(): user_choice =int(user_choice) if user_choice <len(product_list) and user_choice >=0: p_item =product_list[user_choice] if salary >= p_item[1]: shopping_list.append(p_item) salary-=p_item[1] print("你买到的商品为%s,余额为%s"%(shopping_list,salary)) else: print("余额不足") exit() else: print("商品列表不存在这个编号") elif user_choice == 'q': for i in shopping_list: print(i) print("您当前还剩余的余额为%s"%salary) exit() else: print("无效的输入") exit() else: print("输入的商品编号无效")
案例三:多级菜单
# 三级菜单
# # 可一次选择进入各子菜单
# # 所需知识点:列表、字典
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
data={ '广东省':{ "广州":{ "越秀区":["越秀公园","五羊花灯"], "白云区":["白云山","白云机场"], "海珠区":["海珠名校","海珠学区房"] }, "佛山":{ "顺德区":["美的","海尔"], "千灯湖区":["景点","开发区"] } }, '四川省':{ "成都":{ "城区一区":["锦里","宽窄巷子"], "城区二 区":{"熊猫基地","武侯祠"}, "城区三区":["博物馆","金沙图书馆"], }, "绵阳":{ "绵阳一区":["绵阳房子","绵阳学校"], "绵阳二 区":["绵阳1","绵阳2"], } } } exit_flag = False while not exit_flag: for i in data: print(i) choice = input("请输入第一级菜单:") if choice in data: while not exit_flag: for i2 in data[choice]: print(i2) choice1 = input("请输入第二级菜单:") if choice1 in data[choice]: while not exit_flag: for i3 in data[choice][choice1]: print(i3) choice2 = input("请输入第三级菜单:") if choice2 in data[choice][choice1]: for i4 in data[choice][choice1][choice2]: print(i4) choice3 = input("请输入退出菜单:") if choice2 =='q': break if choice1 == 'q': break if choice == 'q': break