Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Validar um valor de uma função

Olá pessoal, podem me ajuda?

Criei uma função de cadastro e uma função de login.

Gostaria de saber se há um modo de validar as informações que o usuario colocará na função login, baseado no que ele preencheu em cadastro.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Olá, Eduardo! Tudo bom? Espero que sim!

Você pode criar uma lista com os valores de cadastro, e-mail e senha, ou então um arquivo de texto (.txt, .csv) com as informações que foram registradas no cadastro, e após isso, pedir para que o software leia esse arquivo compare a entrada de Login e Password no seu "banco de dados".

Vamos trabalhar a segunda ideia.

Construindo o arquivo para armazenar os dados

Vamos utilizar o padrão login; senha, um CSV separado por ponto e vírgula, e com quebra de linha separando as informações. Exemplo:

login1@example.com; senha1
login2@example.com; senha2
login3@example.com; senha3

Para fazer a abertura de um arquivo e escrever novos dados nele, usamos o seguinte código dentro da função de cadastro:

with open('login_database.txt', 'a') as arquivo:
    arquivo.write(email";"password)

Então o código de castro fica:

def cadastro():
    email = input("Digite o e-mail: ")
    password = input("Digite uma senha: ")

    with open('login_database.txt', 'a') as arquivo:
        arquivo.write(email + ";" + password + "\n")

E para fazer a verificação, você agora utiliza uma função de login que recebe parâmetros os parâmetros email e password, uma login(email, password). E essa função deve ler o mesmo arquivo de texto e comparar a estrutura de email e senha.

def login(email, password):

  registro = email + ";" + password

  with open('login_database.txt', 'r') as arquivo:
    for login_txt in arquivo.readlines():
      if (registro == login_txt.strip()): 
        print("O login foi um sucesso!")

O código acima lê todas as linhas do arquivo txt com o método readlines(), e analisa o elemento lido sem contar o caractere de quebra de linha ("\n").

Nos cursos Python: começando com a linguagem e [Python: avançando na linguagem](Python: avançando na linguagem), você vai trabalhar com os métodos de lista e strings, utilizadas nos códigos acima.


Dica: Sempre adicione fragmentos de código aqui no Fórum utilizando a função de inserção de código. Isso ajuda na hora de revisar e comentar os blocos. No artigo Fórum da Alura: como inserir imagens nas perguntas, você aprende algumas dicas de como utilizar o fórum.

Se ainda tiver alguma dúvida, estou por aqui. Ótimos estudos e grande abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!