Lesson 76 用python完成用户登录和栈的实现
1. 用户登录
users = ['root','redhat']
passwd = ['123','456']
1.用户名是否存在
2.如果存在:1)判断密码是否正确(如果正确,登录成功并退出循环)
2)错误(重新登录,只有3次机会)
3.用户不存在(重新登录,只有3次机会)
#####
1.后台管理员用户:admin,密码:westos
2.管理员登录后,可管理用户信息
3.用户信息包括:1添加用户信息,2删除用户信息,3查看用户信息,4退出
print('管理员登录'.center(50,'*'))
aduser = input('Username: ')
adpasswd = input('Password: ')
#系统用户信息
users = ['root','redhat']
passwd = ['123','456']
if aduser == 'admin' and adpasswd == 'westos':
print('管理员登录成功!')
print('用户登录'.center(50, '*'))
while True:
print("""
菜单
1.添加用户信息
2.删除用户信息
3.查看用户信息
4.退出
""")
choice = input('请输入你的选择: ')
if choice == '1':
print('添加用户信息'.center(50,'*'))
adduser = input('添加用户名: ')
if adduser in users:
# print('用户%s已经存在' %adduser)
print(f"用户{adduser}已经存在")
else:
addpasswd = input('密码: ')
users.append(adduser)
passwd.append(addpasswd)
print(f"用户{adduser}添加成功")
elif choice == '2':
print('删除用户信息'.center(50, '*'))
deluser = input('删除用户名: ')
if deluser in users:
delindex = users.index(deluser)
users.remove(deluser)
passwd.pop(delindex)
print(f"删除用户{deluser}成功")
else:
print(f"用户{deluser}不存在")
elif choice == '3':
print('查看用户信息'.center(50, '*'))
print('\t用户名\t密码')
userlenth = len(users)
for i in range(userlenth):
print('\t%s\t%s' %(users[i],passwd[i]))
elif choice == '4':
exit()
else:
print('请输入正确的选择!')
else:
print('管理员登录失败!')
接下来进行测试:当输入正确的用户名和密码(admin和westos),可以看到,显示管理员登陆成功,显示菜单供管理员选择
当输入3,可以查看当前系统的存在用户名和密码
当输入1,显示请添加用户名,输入的用户名若系统已经存在,则会报错,若系统中不存在要添加的用户,则请输入密码,然后添加
输入3,查看添加的用户是否已经存在在系统中
当输入2,则要删除用户,当用户名不在系统中时,显示用户不存在
当输入2, 删除redhat用户,则能够成功删除用户
再次输入3查看,redhat用户已经被成功删除
输入4,退出程序
2. 栈的实现
stack = []
info = """
栈操作:
1.入栈
2.出栈
3.栈顶元素
4.栈的长度
5.栈是否为空
exit.退出
"""
while True:
print(info)
choice = input("Please input your option:")
if choice == '1':
item = input('入栈元素:')
stack.append(item)
print('%s元素入栈成功~' % item)
elif choice == '2':
if not stack:
print('栈为空,不能出栈')
else:
item = stack.pop()
print('%s元素出栈成功~' % item)
elif choice == '3':
if len(stack) == 0:
print('栈为空,无法查看栈顶元素')
else:
print('栈顶元素为%s' % (stack[-1]))
elif choice == '4':
print('栈的长度为%s' % (len(stack)))
elif choice == '5':
if len(stack) == 0:
print('栈为空')
else:
print('栈不为空')
elif choice == 'exit':
print('Bye~')
break
else:
print('选项错误,请输入正确的操作!')
测试:
运行程序,可以看到,在控制台显示菜单,用户输入选项
用户输入1,可以看到,请用户输入入栈元素,当用户输入入栈元素回车,可以看到用户输入的元素入栈成功
再次显示菜单,用户再添加一个入栈元素,当用户输入的选项不是菜单里的,输出选项错误,请用户重新输入选项
当用户输入3可以查看栈顶元素
当用户输入4,可以查看栈的长度
当用户输入5,可以显示栈是否为空
当用户输入2,可以看到,栈顶元素出栈成功
当用户输入exit,可以看到,显示Bye~ 并且退出程序