编写登录接口

http://www.cnblogs.com/wupeiqi/articles/5433893.html

作业一:编写登录接口

输入用户名和秘密

认证成功后显示欢迎信息

输错三次后锁定用户名(在没解锁前,再次输入锁定的用户名则直接锁定)

---------------

练习列表的各种方法的应用

copy

reverse

sort

pop

extend

index

count

list[::2] 默认步长为1

 

len

del

声明一个列表,然后找出有多少个9,把它变成999

同时找出所有34,把它删除

------------------------

#!/usr/bin/env python3

# -*- coding:utf-8 -*-

# Author:woodman

'''

参考了博客,win下运行出错 getpass支持有问题

http://www.cnblogs.com/BIGMOM

'''

import getpass

importos

 

username = "woodman"

password = "tshare365"

os.system('touch black_user')

count = 0

 

#读取黑名单的内容

bf = open('black_user','r')

lock_file = bf.read()

bf.close()

 

print("Please input your username and password !")

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

#判断输入的用户名是否在黑名单内,如果在则不允许继续输入密码

#for i in range(1):

if lock_file == name:

print("对不起,您的用户名已锁定,暂时不允许使用!")

exit()

# else:

# continue

 

 

while count < 3:

# name = input('请输入用户名:')

passwd = getpass.getpass('请输入密码:')

if name == username and passwd == password :

print("欢迎登录找茬系统!")

break

else:

print("用户名或密码错误")

count +=1

if count == 3:

print("对不起,您输入的密码错误次数已达3次,将锁定您的账户!")

bf = open('black_user', 'w')

bf.write('%s' % name)

bf.close()

-----------------

作业二:多级菜单

三级菜单

可依次进入各级子菜单

所需知识:列表、字典.

 

 

provincial ={

'北京市':{

'朝阳区':['万达','腾讯','阿里巴巴'],

'东城区':['百度','Facebook','天猫'],

'海淀区':['海尔','饿了吗','阿里妈妈'],

},

'福建省':{

'福州市':['福清区','州山区','行政区'],

'龙岩市':['烟草区','岩区','龙区'],

'莆田市':['玉石区','瓷器区','金银区'],

},

'重庆市':{

'九龙坡区':['杨家平','毛线沟','白市驿'],

'渝中区':['大坪','两路口','文化宫'],

'江北区':['机场','红旗河沟','观音桥'],

},

}

 

welcome_msg = 'Welcom to China'.center(40,"=")

print(welcome_msg)

jump_flag = False #用于跳槽循环

count = 0

while jump_flag is not True:

#for flag in range(3):

count +=1

lan_count = 0

for i in provincial: # 遍历字典

print(i)

print("End".center(40, "-"))

greater_china = input("请输入你要查看的省市名称:")

if count > 3:

jump_flag = True

print("错误次数过多,再见")

if greater_china in provincial: # 检测输入的名称是否在字典中

gc_name = provincial[greater_china]

pro_name = gc_name.keys()

 

while jump_flag is not True:

lan_count += 1

if lan_count > 2:

jump_flag = True

print("错误次数过多,再见")

break

 

print("市级地区".center(40,"-"))

for i in pro_name:

print(i)

print("End".center(40,"-"))

 

back_or_quit = input("继续回车,输入【b|Back】是返回上级菜单;"

"输入【q|Quit】是退出系统")

if back_or_quit == "q" or back_or_quit == "Quit":

jump_flag = True # 用于跳槽循环

# exit("Bye") # 跳出当此循环

break

if back_or_quit == "b" or back_or_quit == "Back":

break # 跳出当此循环

 

city_name_input = input("请输入你要查找的城市名称:")

 

if city_name_input in pro_name: #判断是否存在pro_name

city_name = provincial[greater_china][city_name_input]

print("县级地区".center(40,"-"))

for i in city_name:

print(i)

print("End".center(40, "-"))

 

if city_name_input not in pro_name:

print("输入错误,请重新输入:")

continue #跳出当次迭代,开始下一次

 

back_or_quit = input("输入回车或【b|Back】返回上级菜单;"

"输入【q|Quit】是退出系统")

if back_or_quit == "q" or back_or_quit == "Quit":

jump_flag = True # 用于跳槽循环

#exit("Bye") # 跳出当此循环

break

elif back_or_quit == "b" or back_or_quit == "Back":

continue

else:

pass

 

posted @ 2020-05-27 10:09  山城木头人  阅读(113)  评论(0)    收藏  举报