Witam. Jestem w trakcie pisania takiego programiku-bankomatu, który będzie imitował działanie prawdziwego bankomatu. W programie przewidziałem możliwość zakończeniu programu po trzykrotnie błędnym wprowadzaniu nr PIN. Czyli założenie jest takie, że jeśli użytkownik wpisze 3 razy błędny PIN lub wpisze w trzech próbach raz poprawnie, to program kończy pętle i przechodzi do wykonania kolejnych koków. Tyle teoria, bo u mnie działa to tak, że jeśli za trzecim razem podam prawidłowy PIN, to program i tak wyświetla komunikat, że trzy razy wprowadzono błędnie PIN. Na pewno problem jest w konstrukcji samej pętli lub w ifie, który po niej następuje.
Oto kod:
a = input ("Podaj nr PIN: ")
b = 5000.11
i = 1
if a == '6666':
print ("Podałeś prawidłowy PIN.")
else:
while (a != '6666') and (i < 3):
i += 1
print ("Podałeś nieprawidłowy PIN. Spróbuj jeszcze raz!")
a = input ("Podaj nr PIN: ")
if i == 3:
print ("Wprowadzono trzy razy błędnie nr PIN. Karta została zablokowana.")
print ("Udaj się do oddziału w celu odblokowania karty.")
else:
print ("Dostępne operacje: ")
print ("1 - sprawdzanie salda rachunku")
print ("2 - wypłata gotówki")
print ("3 - wpłata gótówki")
print ("4 - zmiana numeru PIN")
print ("5 - złożenie wniosku kredytowego")
print ("6 - doładowanie telefonu")
choice1 = int(input("Która operację wybierasz: 1,2,3,4,5, czy 6?: " ))
if choice1 == 1:
print ("Stan dostępnych środków na twoim koncie wynosi", b, "złotych.")
elif choice1 == 2:
print ("Dostępne możliwości wypłaty gotówki: ")
print ("1 - 50 złotych")
print ("2 - 100 złotych")
print ("3 - 200 złotych")
print ("4 - 500 złotych")
choice2 = int(input("Która kwotę wybierasz: 1, 2, 3, czy 4?: "))
if choice2 == 1:
b -= 50
elif choice2 == 2:
b -= 100
elif choice2 == 3:
b -= 200
else:
b -= 500
print (b)
A tak wyglada wynik działania tego algorytmu. 6666 to jest w tym przypadku prawidłowy PIN. Z góry dzięki za wszelkie sugestie.
- screenshot-20200420213317.png (21 KB) - ściągnięć: 45