WM. wferguson1 at socal.rr.com
Mon Mar 9 01:30:54 CET 2009

Brett Wilkins wrote:
> Given that board is a function then I believe that it is likely you're 
> either (a) doing something wrong beforehand, or (b) if board is a 
> function that generates the Tic Tac Toe board, then the syntax you more 
> likely need is board()[number] , but I can't be completely certain.
> when I say doing something wrong beforehand, I'm thinking you might be 
> accidentally giving the funtion a new name, instead of  assigning it's 
> return value to a variable,
> like so:
> newname = functionname   //see here, no brackets on the end of the 
> function, this basically tells python that newname is also functionname.
> variable = functionReturningValue()   //and here, the function's return 
> value is obviously being assigned to the variable
> Disclaimer: My naming scheme sucks, I know this :)
> Cheers
> --Brett
> John Fouhy wrote:
>> 2009/3/9 WM. <wferguson1 at socal.rr.com>:
>>>  File "C:\Python26\TicTacToeD.py", line 68, in DisplayBoard
>>>    print "\n\t", board[1], "|", board[2], "|", board[3]
>>> TypeError: 'function' object is unsubscriptable
>>> I am fooling around with Dawson's "...for the Absolute Beginner". The
>>> tic-tac-toe program will not run for me. I'm guessing a typi 
>>> somewhere, but
>>> cannot find it.
>> "subscript" means "a thing in square brackets after a name".  You've
>> got three subscripts in that line: board[1], board[2], and board[3].
>> The error means that you're trying to use square brackets after
>> something that doesn't support them.  It's telling you that 'board' is
>> a function (as opposed to a list or a dict, for example) and functions
>> don't support [].
>> Possibly you're meant to call board:
>>     print "\n\t", board(1), "|", board(2), "|", board(3)
>> Or, alternatively, you may have assigned to it by mistake somewhere.
Thank you for your remarks. Too bad they fell into my acres of ignorance.
One thing is certain, Dawson used brackets [] not parens (). When I 
spoke of typi (plural of typo) I meant ; for : or \ for /, not line 
after line of error.
My only alternative now seems to be 'get out the old curry comb' and go 
letter by letter, between the monitor and the page. Headache time.

More information about the Tutor mailing list