loop, avbryter med enter
Hej!
uppgiften går ut på att skapa ett program som frågar efter lösenord, och man ska kunna avbryta loopen genom att bara trycka enter. Hur går jag tillväga?
såhär långt har jag kommit:
Du kan göra en kontroll över om inputsträngen är tom eller inte. T.ex. så här:
psw = input("Enter password or click enter to exit: ")
while psw:
if psw != "banan":
psw = input("Enter password or click enter to exit: ")
else:
print("correct password")
break
När du bara trycker på enter kommer "while psw" inte vara uppfyllt och då exekveras ingenting.
Härligt!
Men varför exekveras inget när man har "while psw"?
Om du trycker på enter direkt när programmet körs så kommer while-conditionet inte vara uppfyllt och då exekveras ingenting. Om du däremot skriver in något förutom "banan" och går in while-loopen och sedan trycker enter så ser du att programmet assignar en tom sträng till "psw", och då är while-conditionet inte längre uppfyllt.
"while psw" är shorthand notation för "while psw != ' ' ". Den returnerar True om strängen har några tecken i sig och False om strängen är tom.
Jag glömde nämna att programmet ska skriva ut antingen "Lösenord OK!" eller "Inlogging avbruten"
Vill du, så flytta in prompten för lösenord innanför loopen. Då räcker det med att fråga efter lösenord på ett enda ställe:
while True:
psw = input("Ange lösenord (tomt avbryter): ")
if psw == '':
print("avbruten")
break
elif psw == "banan":
print("OK")
break
else:
print("fel. försök igen")