[Tutor] Is this correct syntax for what I want?

Nathan Pinno falcon3166 at hotmail.com
Sun Jun 25 10:02:31 CEST 2006

When I loaded it up, I got the following error:

Traceback (most recent call last):
  File "C:\Python24\Account Tracker.py", line 82, in ?
  File "C:\Python24\Account Tracker.py", line 10, in load_file
    amount = line.next().strip()
AttributeError: 'str' object has no attribute 'next'

According to it, the 'str' object has no attribute 'next'. So how would I 
load my file containing my data?

Relevant code:
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
        store = open(filename, 'w')

Nathan Pinno
----- Original Message ----- 
From: "Alan Gauld" <alan.gauld at freenet.co.uk>
To: "Nathan Pinno" <falcon3166 at hotmail.com>; <tutor at python.org>
Sent: Sunday, June 25, 2006 1:07 AM
Subject: Re: [Tutor] Is this correct syntax for what I want?

>>  File "C:\Python24\Account Tracker.py", line 49, in printall
>>    print account,"\t $",accountlist[account]+"\n"
>> TypeError: unsupported operand type(s) for +: 'float' and 'str'
>> So how do I fix this error?
> What it's saying is you can't add a float and string. If you look at the 
> code you are trying to add "\n" to accountlist[account] which is a float. 
> You need to convert the string to a float or the float to a string. In 
> this case converting the float to a string would be the better approach! 
> :-)
> However I would personally recommend that you use a format string here 
> since it will give you much better control of the appearance of the output 
> and avoids the need to convert the values.
> print "%s\t $%0.2f\n" % (account, accountlist[account])
> HTH,
> Alan Gauld
> Author of the Learn to Program web site
> http://www.freenetpages.co.uk/hp/alan.gauld

More information about the Tutor mailing list