Ir para conteúdo
  • 0

Loop While True


leodainez

Pergunta

  • Alunos
Comecei a apreder Python recentemente, e estou com uma dúvida em relação ao uso do "if flag" (mais especificamente na parte em verde) do código abaixo. Alguém por gentileza poderia me explicar o funcionamento dessa condicional ?
 
Pelo meu entendimento ele basicamente esta dizendo que caso o username seja inserido corretamente ele iniciará a próxima etapa que é a validação do password, contudo não entendi exatamente qua a lógica que o programa está seguindo. Agradeço desde já ! 
 
attempt = 3
flag = True
 
while True:
 
    if flag:
      username = input("Enter your username: ")
 
    if username == 'abc':
 
      if flag:
        attempt = 3
      flag = False
 
      password = input("Enter your password: ")
     
      if password == '123':
        print("Login complete")
        break
      else:
        print("Incorrect password")
    else:
      print("Incorrect username")
 
    attempt -= 1
 
    print(f"Attempts left {attempt}")
 
    if attempt == 0:
      break
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos

flag é uma variável booleana (True ou False).

No seu código, ela começa como True, mas depois deveria ser alterada para False para sair. Mas ela me parece desnecessária, pois dá pra fazer isso pela variável attempt.

attempt = 3
 
while True:
    if attempt == 0:
      break

    username = input("Enter your username: ")
    password = input("Enter your password: ")

    if username == 'abc' and password == '123':
        print("Login complete")
        break
    else:
        print("Incorrect username or password incorrect")
 
    attempt -= 1
 
    print(f"Attempts left {attempt}")

 

É uma boa prática de segurança não informar se o erro foi no usuário ou na senha.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 12/07/2024 em 08:24, leodainez disse:
Comecei a apreder Python recentemente, e estou com uma dúvida em relação ao uso do "if flag" (mais especificamente na parte em verde) do código abaixo. Alguém por gentileza poderia me explicar o funcionamento dessa condicional ?
 
Pelo meu entendimento ele basicamente esta dizendo que caso o username seja inserido corretamente ele iniciará a próxima etapa que é a validação do password, contudo não entendi exatamente qua a lógica que o programa está seguindo. Agradeço desde já ! 
 
attempt = 3
flag = True
 
while True:
 
    if flag:
      username = input("Enter your username: ")
 
    if username == 'abc':
 
      if flag:
        attempt = 3
      flag = False
 
      password = input("Enter your password: ")
     
      if password == '123':
        print("Login complete")
        break
      else:
        print("Incorrect password")
    else:
      print("Incorrect username")
 
    attempt -= 1
 
    print(f"Attempts left {attempt}")
 
    if attempt == 0:
      break

Olá @leodainez, tudo bem?

Só para deixar bem claro, "if flag" não é uma expressão só.
if é o teste condicional, e flag é uma variável booleana que pode conter true (verdadeiro) ou false (falso)

Mas realmente no seu código, essa variável parece mesmo se desnecessária.
Veja abaixo uma outra opção de código simplificado.

username = input("Digite seu nome de usuário: ")
password = input("Digite sua senha: ")
if username == 'abc' and password == '123':[^1^][1][^2^][2]
    print("Login completo")
else:
    print("Nome de usuário ou senha incorretos")
    attempt -= 1
    print(f"Tentativas restantes: {attempt}")

Espero ter ajudado!

Abraço.

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...