Поиск нескольких аккаунтов под одним именем для системы Python bank - PullRequest
0 голосов
/ 14 января 2019

В моей банковской системе у меня есть набор учетных записей клиентов, но для одного имени Адам Смит он имеет две учетные записи:

def load_bank_data(self):

    # the customers in the bank system
    account_no = 1234
    customer_1 = CustomerAccount("Adam", "Smith", 14, "Wilcot Street", "Bath", "B5 5RT", account_no, "Current", 2500.00)
    self.accounts_list.append(customer_1)

    account_no += 5678
    customer_2 = CustomerAccount("David", "White", 60, "Holburn Viaduct", "London", "EC1A 2FD", account_no, "Savings", 3200.00)
    self.accounts_list.append(customer_2)

    account_no += 3456
    customer_3 = CustomerAccount("Alice", "Churchil", 55, "Cardigan Street", "Birmingham", "B4 7BD", account_no, "Current", 18000.00)
    self.accounts_list.append(customer_3)

    account_no += 6789
    customer_4 = CustomerAccount("Ali", "Abdallah", 44, "Churchill Way West", "Basingstoke", "RG21 6YR", account_no, "Savings", 40.00)
    self.accounts_list.append(customer_4)

    account_no += 1987
    customer_5 = CustomerAccount("Adam", "Smith", 44, "Churchill Way West", "Basingstoke", "RG21 6YR", account_no, "Savings", 5000.00)
    self.accounts_list.append(customer_5)

Я создал функцию, чтобы, когда было найдено много учетных записей клиентов с одинаковыми именем и фамилией, она должна сложить все эти остатки на банковских счетах вместе и распечатать итоговую сумму. (В поле ввода я набираю клиента для поиска нескольких учетных записей:

def sum_of_all_money(self):
    try:

        find_customer = input("Enter the surname of the customer to find total sum of money for: ")

        for find_customer in self.accounts_list:
            find_customer = find_customer.get_balance() + find_customer.get_balance()
        print(find_customer)

    except SyntaxError as e:
        print(e)

Это только обнаружение одной учетной записи Адама Смита внизу как клиента 5, но она не обнаруживает другую учетную запись Адама Смита как клиента 1, а просто добавляет клиента 5 дважды, давая мне вывод 1000,00, что неправильно что я делаю не так?

1 Ответ

0 голосов
/ 14 января 2019

Ваш код имеет некоторые недостатки, в настоящее время он будет только зацикливаться на вашем списке и всегда будет перезаписывать find_customer текущим балансом клиента * 2.

Вам нужно отфильтровать правильное имя, которое было введено, попробуйте это так:

try:

    find_customer = input("Enter the surname of the customer to find total sum of money for: ")

    find_customer_balance = 0

    for customer in self.accounts_list:
        if customer.get_surname() == find_customer:
           find_customer_balance += customer.get_balance()
    print(find_customer)
    print(find_customer_balance)

except SyntaxError as e:
    print(e)
...