Witajcie! Chciałbym, aby program pytał o nazwę klienta, sprawdzał czy już taka nazwa jest używana i jeśli tak, prosił o podanie nowej "aż do skutku" :) Niestety, programowi nie przeszkadza podanie dwóch takich samych nazw. Czy widzisz, gdzie jest błąd? Dziękuję z góry za pomoc!
plik z klasami:
class Transaction(object):
def __init__(self):
self.ask_value()
def ask_value(self):
self.value=int(input("Na jaką kwotę klient dokonał zamówienia? "))
class Customer(object):
def __init__(self):
self.transactions_list=[]
self.ask_name()
def ask_name(self):
self.name=input("Proszę podać nazwę klienta: ")
def check_name(self, list, n):
if list == None:
return n
else:
for c in list:
if c.name==n:
print("Istnieje już klient o takiej nazwie!")
n=c.ask_name()
c.check_name(list, n)
else:
return n
def ask_first_transaction(self):
self.answer=int(input("""
Czy chcesz dodać nową transakcję?:
Jeśli chcesz dodać transakcję - wybierz 1
Jeśli nie chcesz dodać transakcji
i chcesz wrócić do Menu - wybierz 2
"""))
return self.answer
def add_transaction(self):
self.t=Transaction()
self.transactions_list.append(self.t)
def find_customer(self, list):
self.wanted=input("Proszę podać nazwę klienta: ")
for c in list:
if c.name == self.wanted:
self.found = c
return self.found
główny:
# main menu
command=show_main_menu()
while command != 0:
if command == 0:
print("""
Koniec Pracy w Programie!
""")
elif command == 1:
new_customer=warehouse.Customer() # utworzenie nowego obiektu
new_name=new_customer.check_name(customers_list, new_customer.name) #sprawdzanie nazwy
new_customer.name=new_name # nadanie nowej nazwy lub nadanie tej samej nazwy
customers_list.append(new_customer) # dodanie biektu do listy
print(customers_list) # testowanie
show_main_menu() # powrót do menu
elif command == 2:
print("2")
else:
command=show_main_menu()