#arrays #python-3.x #indexing
#массивы #python-3.x #индексирование
Вопрос:
Я новичок в Python, и я застрял, пробуя «простую банковскую программу».
У меня все правильно, кроме этого бита:
Если пользователь вводит S, то:
Попросите пользователя ввести номер счета.
Найдите в массиве этот номер счета и найдите его позицию в массиве accountnumbers .
Отобразить имя и баланс в позиции, найденной во время вышеупомянутого поиска.
Первоначально предполагалось, что это будет просто через учетные записи 1-5, но теперь у меня возникли проблемы с поиском способа поиска номеров счетов, если они представляют собой любое число, а не только 1-5. Например
Пользователь вводит номера своих учетных записей 34, 445, 340,2354 и 3245. Полностью случайные номера счетов без порядка.
Вот что у меня есть на данный момент
names = []
accountNumbers = []
balance = []
def displaymenu():
print("**** MENU OPTIONS ****")
print("Type P to populate accounts")
print("Type S to search for account")
print("Type E to exit")
choiceInput()
def choiceInput():
choice = str(input("Please enter your choice: "))
if (choice == "P"):
populateAccount()
elif (choice == "S"):
accountNumb = int(input("Please enter the account number to search: "))
if (accountNumb > 0) and (accountNumb < 6):
print("Name is: " str(names[accountNumb - 1]))
print(names[accountNumb - 1] " account has the balance of : $" str(balance[accountNumb -1]))
elif (accountNumb == accountNumbers):
index = names.index(accountNumb)
accountNumb = index
print(names[accountNumb - 1] " account has the balance of : $" str(balance[accountNumb -1]))
else:
print("The account number not found!")
elif (choice == "E"):
print("Thank you for using the program.")
print("Bye")
raise SystemExit
else:
print("Invalid choice. Please try again!")
displaymenu()
def populateAccount ():
name = 0
for name in range(5):
Names = str(input("Please enter a name: "))
names.append(Names)
account ()
name = name 1
def account ():
accountNumber = int(input("Please enter an account number: "))
accountNumbers.append(accountNumbers)
balances()
def balances ():
balances = int(input("Please enter a balance: "))
balance.append(balances)
displaymenu()
Я пытался использовать индексы и не смог найти решение.
Ответ №1:
Замените следующую строку кода
if (accountNumb > 0) and (accountNumb < 6):
с помощью
if (accountNumb > 0) and (accountNumb < len(accountNumbers)):
Ответ №2:
Моя ошибка. Я ошибся при добавлении номера счета:
def account ():
accountNumber = int(input("Please enter an account number: "))
accountNumbers.append(accountNumbers)
balances()
Я добавил
accountNumbers
не
AccountNumber
код должен быть
def account ():
accountNumber = int(input("Please enter an account number: "))
accountNumbers.append(accountNumber)
balances()
также функция searchArray, которую я создал, была:
def searchArray(accountNumbers):
x = int(input("Please enter an account number to search: "))
y = accountNumbers.index(x)
print("Name is: " str(names[y]))
print(str(names[y]) " account has a balance of: " str(balance[y]))
ошибка новичка, не следует использовать такие похожие имена объектов.