Olá, bom dia, tudo bem? Em busca de colocar os conhecimentos adquiridos durante o curso em prática, realizei um exercício autonomo com uma proposta de realizar uma página de login e cadastro de usuários. Se possível, gostaria da opnião de vocês para me dar dicas de como eu poderia melhorar o meu código:
import os
usuarios_cadastrados = [{'nome':'Henri', 'email':'henri@email.com', 'senha':'123'}]
def exibir_logo_da_empresa():
print('''
█░█ █░█ █▄░█ ▀█▀ █▀▀ █▀█ █▀▀ █▀█ █▀▄▀█ █▀█ ▄▀█ █▄░█ █▄█
█▀█ █▄█ █░▀█ ░█░ ██▄ █▀▄ █▄▄ █▄█ █░▀░█ █▀▀ █▀█ █░▀█ ░█░
''')
def exibir_opcoes_de_entrada():
print('1. Login', '2. Cadastrar', '\n3. Sair', sep='\n')
def exibir_subtitulos(texto):
os.system('cls')
exibir_logo_da_empresa()
linha = '*' * len(texto)
print(texto)
print(linha)
def voltar_ao_menu_de_entrada():
input('\nTecle ENTER para retornar ao menu de entrada ')
os.system('cls')
main()
def logar():
exibir_subtitulos('Realize o Login')
email = input('\nEmail: ')
senha = input('Senha: ')
for usuario in usuarios_cadastrados:
if email == usuario['email'] and senha == usuario['senha']:
print(f'\nBem-vindo {usuario['nome']}')
input('\nPressione ENTER para seguir ')
print('EM MANUTENÇÃO...')
voltar_ao_menu_de_entrada()
break
else:
print('\nUsuário não escontrado...')
voltar_ao_menu_de_entrada()
def cadastrar():
exibir_subtitulos('Realize o seu cadastro')
nome = input('\nNome: ')
email = input('Email: ')
senha = input('Senha: ')
for usuario in usuarios_cadastrados:
if email == usuario['email']:
print(f'\nSinto muito {nome}, esse email já está cadastrado em nosso sistema...')
voltar_ao_menu_de_entrada()
break
else:
novo_usuario = {'nome':nome, 'email':email, 'senha':senha}
usuarios_cadastrados.append(novo_usuario)
print(f'\nUsuário {nome} cadastrado(a) com sucesso!')
voltar_ao_menu_de_entrada()
def finalizar_sessao():
os.system('cls')
exibir_logo_da_empresa()
print('Finalizando sessão...')
def opcao_invalida():
os.system('cls')
exibir_logo_da_empresa()
print('Opção inválida...')
voltar_ao_menu_de_entrada()
def escolher_opcao_de_entrada():
opcao_de_entrada = int(input('\nDigite a opção desejada: '))
try:
match opcao_de_entrada:
case 1:
logar()
case 2:
cadastrar()
case 3:
finalizar_sessao()
case _:
opcao_invalida()
except:
opcao_invalida()
def main():
exibir_logo_da_empresa()
exibir_opcoes_de_entrada()
escolher_opcao_de_entrada()
if __name__ == '__main__':
main()
Algo que me incomoda, é o tamanho do código, será que é possível eu separar em diferentes arquivos as funções do restante? Além disso, tenho interesse em talvez aprimorar esse projeto, alguma sugestão de qual forma eu poderia fazer isso?