函数定义(每个功能模块定义1个函数,同时需编写一个主程序) 包括添加用户、权限设置、权限回收等功能,主函数具备交互性, 尽量能包含异常处理。 二、权限表示和存储 1. 要求采用2个字典分别存储权限和用户信息。 2. 5种权限分别用0b00001、0b00010、0b00100、0b01000、0b10000表示,用位运算进行权限操作。,写程序
时间: 2024-03-27 14:36:32 浏览: 143
好的,我理解您的要求了。下面是一个简单的 Python 程序,实现添加用户、权限设置、权限回收等功能,并使用两个字典分别存储权限和用户信息。主程序具备交互性,并包含异常处理。
```
# 定义权限常量
PERMISSIONS = {
'read': 0b00001,
'write': 0b00010,
'execute': 0b00100,
'delete': 0b01000,
'admin': 0b10000
}
# 初始化用户和权限字典
users = {}
user_permissions = {}
# 添加用户函数
def add_user():
username = input('请输入用户名:')
if username in users:
print('该用户已存在!')
return
users[username] = input('请输入用户密码:')
user_permissions[username] = 0
print('用户添加成功!')
# 权限设置函数
def set_permission():
username = input('请输入用户名:')
if username not in users:
print('该用户不存在!')
return
permission = input('请输入权限(read, write, execute, delete, admin):')
if permission not in PERMISSIONS:
print('无效的权限!')
return
user_permissions[username] |= PERMISSIONS[permission]
print('权限设置成功!')
# 权限回收函数
def revoke_permission():
username = input('请输入用户名:')
if username not in users:
print('该用户不存在!')
return
permission = input('请输入权限(read, write, execute, delete, admin):')
if permission not in PERMISSIONS:
print('无效的权限!')
return
user_permissions[username] &= ~PERMISSIONS[permission]
print('权限回收成功!')
# 主程序
while True:
print('请选择操作:')
print('1. 添加用户')
print('2. 设置权限')
print('3. 回收权限')
print('4. 退出程序')
try:
choice = int(input())
if choice == 1:
add_user()
elif choice == 2:
set_permission()
elif choice == 3:
revoke_permission()
elif choice == 4:
break
else:
print('无效的选择!')
except ValueError:
print('无效的输入!')
```
这个程序中,我们首先定义了一个权限常量字典 PERMISSIONS,其中包含了 5 种权限分别用二进制数表示。然后,我们初始化了两个空字典 users 和 user_permissions,用于存储用户信息和权限信息。
接下来,我们实现了三个函数,分别用于添加用户、设置权限、回收权限。在添加用户时,我们首先检查该用户是否已存在,如果不存在,则要求用户输入密码,并将用户信息和权限信息添加到字典中。在设置权限和回收权限时,我们首先检查该用户是否存在,然后检查输入的权限是否有效,最后使用位运算进行权限的设置或回收。
最后,我们实现一个交互式的主程序,通过循环不断接收用户的选择,并调用相应的函数。在用户输入无效数据时,程序能够进行异常处理,避免崩溃。
阅读全文
相关推荐

















