要求:
1、三个页面:主页面(home)、书店(book)、金融页面(finance)
2、有两种登陆方式:主页面和书店页面使用京东账户登陆,金融页面使用微信账户登录
2、输入:1 ,进入主页面,以此类推;输入:2 ,进入书店页面;输入:3 ,进入金融页面
3、进入页面时检测有没有登陆,如果没有调用登陆接口,使用账号密码登陆,在任何界面,只需登陆一次即可
4、账户信息保存在文件里
5、在任意界面,输入:Q ,退出程序
源代码:
login_status = False # 登录状态 with open('账户信息', 'r') as f_read_self:
jingdong = f_read_self.readline().strip()
jingdong = eval(jingdong) # 内置函数eval()的作用是把一个字符串转换为字典
for n, m in jingdong.items():
JD_name = n
JD_pwd = m with open('账户信息(微信)', 'r') as f_read_wechat:
wechat = f_read_wechat.readline().strip()
wechat = eval(wechat)
for n, m in wechat.items():
wechat_name = n
wechat_pwd = m def login(auth_type="jingdong"): # 判断页面类型,默认进去是京东登录页面 def page(dis_play):
global login_status # 声明全局变量 def login_type():
global login_status # 声明全局变量
if not login_status: # 如果是未登陆状态
if auth_type == "jingdong":
username = input("Username:")
passwd = input("Passwd:")
if JD_name == username and JD_pwd == passwd:
print("welcome ....")
dis_play() # 登陆成功执行页面函数,显示内容
login_status = True # 改登陆状态为 True
else:
print("账户或密码错误,请重新输入")
elif auth_type == "wechat":
username = input("Username:")
passwd = input("Passwd:")
if wechat_name == username and wechat_pwd == passwd:
print("welcome ....")
dis_play() # 登陆成功执行页面函数,显示内容
login_status = True # 改登陆状态为 True
else:
print("账户或密码错误")
else:
print("已登陆")
return login_type # 返回login_type 的内存地址,用于指向函数对象
return page @login()
def home(): # 主页面
print("welcome to home page") @login()
def book(): # 书店
print("welcome to home page") @login(auth_type="wechat")
def finance(): # 金融
print("welcome to home page") while True:
user_input = input('请输入:\n1: [主页] \n2: [书店] \n3: [金融] \nQ:退出')
if user_input == '1':
home()
elif user_input == '2':
book()
elif user_input == '3':
finance()
elif user_input == 'Q':
break
注:文件里的账户信息格式如下,以字典的形式保存
账户信息: {'Tom':'qwe123',}
账户信息(微信): {'Toms':'qwe123',}