Я новичок, только дошел до изучения словарей. Возможно, эта конструкция совсем не удачная, но, хотелось бы понять, как все-таки получить прямой доступ к словарю в словаре? Проблема в конце данного кода.
users = {
'kuzya': {
'name': 'alexander kuznetsov',
'age': 33,
'city': 'chelyabinsk',
},
'peter': {
'name': 'peter wolberg',
'age': 31,
'city': 'vienna'
},
'edward': {
'name': 'edward snowden',
'age': 28,
'city': 'new york',
},
'admin': {
'name': 'classified',
'age': 33,
'city': 'classified',
},
'mary': {
'name': 'mariya shevtsova',
'age': 22,
'city': 'salzburg'
},
'alice': {
'name': 'alice wonder',
'age': 28,
'city': 'moscow',
},
}
banned_users = {'peter': 'wallhack cheater', 'alice': 'criminal element'}
stop = ''
while stop.lower() != 'yes':
user_login = input("\nWhat is your nickname: ")
# Проверка на бан
if user_login.lower() in banned_users.keys():
print("\nYour account has been disabled. Reason:",
banned_users[user_login].title())
stop = input('\nDo you want to quit the program? Yes/No\n')
# Если такого юзера в базе нет, предлагаем зарегистрироваться
elif user_login.lower() not in users:
question = input("\nThere is no such user here. \nDo you want to "
"register to continue? (Yes/No): ")
# Если согласие на регистрацию получено, то регистрация нового
# пользователя с проверкой возраста
if question.lower() == 'yes':
age = int(input('\nWhat is your age: '))
# если больше 18 - добавляем в базу пользователей новый ник
if age < 18:
print('\nSorry. Your age is too low. Come back here at age 18')
stop = input('\nDo you want to quit the program? Yes/No\n')
else:
full_name = input("Type your full name here: ")
city = input("Type here your city of location: ")
# Создаем в словаре users словарь с введенным именем и
# заданными ключами
users[str(user_login.lower())] = {'name': full_name.lower(),
'age': age,
'city': city.lower(),
}
print('\nNickname "' + user_login.title() + '" was successfully'
' added!')
stop = input('\nDo you want to quit the program? Yes/No\n')
else:
stop = input('\nDo you want to quit the program? Yes/No\n')
elif user_login.lower() == 'admin':
print("\nHello master! Would you like to see a status report?")
stop = input('\n\n\nDo you want to quit the program? Yes/No\n')
# Если юзер уже в базе - выводим приветствие и все данные на него из базы
else:
print("\nWelcome back " + user_login.title() + "! Take a look at your "
"profile:")
print("\nUsername: " + user_login.title())
# Вот тут загвоздка с выводом данных из вложенного словаря
# через for? или напрямую?
print("Full name: ", users[user_login.lower()].values())
stop = input('\nDo you want to quit the program? Yes/No\n')
input('\n\nPress "Enter" to quit the program.')