[Tutor] Needing help with my account tracker program.
Nathan Pinno
falcon3166 at hotmail.com
Fri Jun 23 20:23:19 CEST 2006
Hey all,
I was wondering if you could help me fix a glitch in my program that's preventing it from running.
Here's the code:
accountlist = []
def load_file(ac):
import os
filename = 'accounts.txt'
if os.path.exists(filename):
store = open(filename, 'r')
for line in store:
account = line.strip()
amount = line.next().strip()
ac[account] = amount
else:
store = open(filename, 'w') #create a new file
store.close
def save_file(ac):
store = open('accounts.txt', 'w')
for account, amount in accountlist.items():
store.write(account + '\n')
store.write(amount + '\n')
store.close()
def main_menu():
print "1) Add a new account"
print "2) Remove a account"
print "3) Print all info"
print "4) Find account"
print "5) Deposit"
print "6) Withdraw funds"
print "9) Save and exit."
def add():
print "Add a new account"
account = raw_input("Account Name: ")
amount = float(raw_input("Amount: "))
accountlist[account] = amount
def remove():
print "Remove a account"
account = raw_input("Account: ")
if accountlist.has_key(account):
del accountlist[account]
else:
print account," was not found."
def printall():
print "Account Info"
for account in accountlist.keys():
print account,"\t $",accountlist[account]+"\n"
def lookup():
print "Specific Account Info"
account = raw_input("Account: ")
if accountlist.has_key(account):
print account," $",accountlist[account]
else:
print account," was not found."
def deposit():
print "Deposit funds"
account = raw_input("Account: ")
if accountlist.has_key(account):
amount = float(raw_input("Amount: "))
accountlist[account] += amount
print account,"\t $",accountlist[account]
else:
print account," was not found."
def withdraw():
print "Withdraw Funds."
account = raw_input("Account: ")
if accountlist.has_key(account):
amount = float(raw_input("Amount: "))
accountlist[account] -= amount
print account,"\t $",accountlist[account]
else:
print account," was not found."
print "Account Tracker"
print "By Nathan Pinno"
print
load_file(accountlist)
while 1:
main_menu()
menu_choice = int(raw_input("Which item? "))
if menu_choice == 1:
add()
elif menu_choice == 2:
remove()
elif menu_choice == 3:
printall()
elif menu_choice == 4:
lookup()
elif menu_choice == 5:
deposit()
elif menu_choice == 6:
withdraw()
elif menu_choice == 9:
break
else:
print "That's not an option. Please choose a valid option."
save_file(accountlist)
print "Have a nice day!"
Here is the error I'm having troubles solving:
Traceback (most recent call last):
File "C:\Python24\Account Tracker.py", line 87, in -toplevel-
add()
File "C:\Python24\Account Tracker.py", line 36, in add
accountlist[account] = amount
TypeError: list indices must be integers
So. how do I solve it to make it work the way I want it to?
Thanks,
Nathan Pinno
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20060623/8ef0e9fa/attachment.html
More information about the Tutor
mailing list