Olá pessoal estou aprendendo python, e estou estudando o uso do if e do for, meu objetivo é criar um programa que quando eu digito a senha errada 3 vezes o acesso é bloqueado, mas estou cometendo um erro onde eu imprimo a frase 3 vezes, como arrumo isso ?
acesso = 'Baleia12'
login = str(input('Digite a sua senha'))
if login != acesso:
print('senha incorreta')
for login in range(4):
print('acesso bloqueado')
else:
print('acesso liberado')
Primeiramente, input
já retorna uma string, então fazer str(input(...))
é completamente redundante e desnecessário.
Se a ideia é pedir a senha várias vezes, até acertar, então todo o código deve estar dentro do loop. Aí existem duas condições para interrompê-lo: se atingiu o máximo de tentativas ou se acertou. Algo assim:
acesso = 'Baleia12'
max_tentativas = 3 # se errar 3 vezes, já era
tentativas = 0 # quantas vezes já tentou
while tentativas < max_tentativas:
login = input('Digite a sua senha: ')
if login != acesso:
print('senha incorreta')
tentativas += 1
else:
print('acesso liberado')
break # se acertou, sai do while
@hugokotsubo eu só não entendi muito bem essa parte “Primeiramente, input já retorna uma string, então fazer str(input(…)) é completamente redundante e desnecessário.”
o input ao qual se refere é a string de entrada da variável acesso ?
input
é uma função que lê o que vc digitou e retorna isso em uma string.
No caso, essa string é colocada na variável login
.
Como ela retorna uma string, então não precisa fazer str(input())
. Vc usa str(algo)
quando quer converter algo para string. Mas como o retorno de input
já é uma string, não precisa usar str
.
1 curtida
nossa ficou muito Claro, obrigado.