Исправьте ошибку программе на языке python. - Компьютерные вопросы

Вопрос Исправьте ошибку программе на языке python.

Регистрация
2 Авг 2013
Сообщения
84
Репутация
0
Спасибо
0
Монет
0
ошибка File "/tmp/sessions/5d8b38825a31ecde/main.py", line 17

access_matrix[user] = {}

^

IndentationError: expected an indented block after 'for' statement on line 16

программа

import random



# Создаем список пользователей: конкретные имена + автоматически сгенерированные пользователи

specific_users = ['Ivan', 'Sergey', 'Boris', 'Grigory']

generated_users = [f'User{i + 1}' for i in range(4)] # 4 автоматически сгенерированных пользователей

users = specific_users + generated_users

#Количество объектов (4 объекта)

objects = [f'Object{i + 1}' for i in range(4)]

#Возможные права доступа

operations = ['read', 'write', 'grant', 'record']



#Матрица доступа

access_matrix = {}



#Генерация прав доступа

for user in users:

access_matrix[user] = {}

for obj in objects:

if user == 'Sergey': # "Sergey" - администратор, имеет все права

access_matrix[user][obj] = ['read', 'write', 'grant']

else: # Случайные права для остальных пользователей

access_matrix[user][obj] = random.sample(operations, random.randint(0, 4))



#Функция идентификации пользователя

def identify_user():

user = input("Введите идентификатор пользователя: ")

if user in users:

print(f"Добро пожаловать, {user}!")

return user

else:

print("Идентификация не удалась.")

return None



#Функция отображения прав доступа в табличном виде

def show_access_rights(user):

print(f"\nПрава доступа для пользователя {user}:")

print(f"{'Объект':<10} | {'Права доступа'}")

print("-" * 30)

for obj, rights in access_matrix[user].items():

rights_str = ', '.join(rights) if rights else 'Нет доступа'

print(f"{obj:<10} | {rights_str}")

print("-" * 30)



#Главный цикл программы

while True:

user = None

while not user:

user = identify_user()

show_access_rights(user)

# Предложение продолжить или выйти

action = input("Введите 'back' для повторной идентификации или 'quit' для выхода: ").strip().lower()



if action == 'quit':

print("Сессия завершена.")

break

elif action == 'back':

print("Возвращаемся к идентификации...\n")
 
Регистрация
14 Дек 2013
Сообщения
90
Репутация
0
Спасибо
0
Монет
0
import random

# Создаем список пользователей: конкретные имена + автоматически сгенерированные пользователи
specific_users = ['Ivan', 'Sergey', 'Boris', 'Grigory']
generated_users = [f'User{i + 1}' for i in range(4)] # 4 автоматически сгенерированных пользователей
users = specific_users + generated_users

# Количество объектов (4 объекта)
objects = [f'Object{i + 1}' for i in range(4)]

# Возможные права доступа
operations = ['read', 'write', 'grant', 'record']

# Матрица доступа
access_matrix = {}

# Генерация прав доступа
for user in users:
access_matrix[user] = {}
for obj in objects:
if user == 'Sergey': # "Sergey" - администратор, имеет все права
access_matrix[user][obj] = ['read', 'write', 'grant']
else: # Случайные права для остальных пользователей
access_matrix[user][obj] = random.sample(operations, random.randint(0, 4))

# Функция идентификации пользователя
def identify_user():
user = input("Введите идентификатор пользователя: ")
if user in users:
print(f"Добро пожаловать, {user}!")
return user
else:
print("Идентификация не удалась.")
return None

# Функция отображения прав доступа в табличном виде
def show_access_rights(user):
print(f"\nПрава доступа для пользователя {user}:")
print(f"{'Объект':
 
Регистрация
12 Окт 2013
Сообщения
66
Репутация
0
Спасибо
0
Монет
0
после строк с for, while, if, def, else, elif и других команд с использованием двоеточий должен быть отступ в четыре пробела (нажатие tab). Ты что, удалял их?
Вот пофикшенный код: import random

# Создаем список пользователей: конкретные имена + автоматически сгенерированные пользователи
specific_users = ['Ivan', 'Sergey', 'Boris', 'Grigory']
generated_users = [f'User{i + 1}' for i in range(4)] # 4 автоматически сгенерированных пользователей
users = specific_users + generated_users
#Количество объектов (4 объекта)
objects = [f'Object{i + 1}' for i in range(4)]
#Возможные права доступа
operations = ['read', 'write', 'grant', 'record']

#Матрица доступа
access_matrix = {}

#Генерация прав доступа
for user in users:
access_matrix[user] = {}
for obj in objects:
if user == 'Sergey': # "Sergey" - администратор, имеет все права
access_matrix[user][obj] = ['read', 'write', 'grant']
else: # Случайные права для остальных пользователей
access_matrix[user][obj] = random.sample(operations, random.randint(0, 4))

#Функция идентификации пользователя
def identify_user():
user = input("Введите идентификатор пользователя: ")
if user in users:
print(f"Добро пожаловать, {user}!")
return user
else:
print("Идентификация не удалась.")
return None

#Функция отображения прав доступа в табличном виде
def show_access_rights(user):
print(f"\nПрава доступа для пользователя {user}:")
print(f"{'Объект':
 
Регистрация
16 Ноя 2012
Сообщения
76
Репутация
0
Спасибо
0
Монет
0
Пожалуйста имейте ввиду, что этот пользователь забанен
а сам?
 
Сверху Снизу