Hello Chris,

> -----Original Message-----
> Date: Mon, 31 Jul 2006 15:29:13 -0700 (PDT)
> From: Christopher Spears <[EMAIL PROTECTED]>
> Subject: [Tutor] syntax error
> To: [email protected]
> Message-ID: <[EMAIL PROTECTED]>
> Content-Type: text/plain; charset=iso-8859-1
> 
> My brain has gone squishy.  I am combining a linked
> list with a priority queue.  This is the last exercise
> out of How To Think Like A Computer Scientist (Chapter
> 19).
> 
<<snip>>
> 
>       def insert(self, cargo):
>               node = Node(cargo)
>               node.next = None
>               if self.length == 0:
>                       # if list is empty, the new node is head and
last
>                       self.head = self.last = node
>               elif node.cargo > self.head.cargo:
>                       node.next = self.head
>                       self.head = node
>               else node.cargo <= self.head.cargo:
>                       self.last.next = node
>                       self.last = node
>               self.length = self.length + 1
> 
<<snip>>
> 
> Here is the error message:
> >>> from linkedPriorityQueue import *
> Traceback (most recent call last):
>   File "<stdin>", line 1, in ?
>   File "linkedPriorityQueue.py", line 27
>     else node.cargo <= self.head.cargo:
>             ^
> SyntaxError: invalid syntax
> 
> I am not sure what this means.  Everything is spelled
> correctly.
> 
> -Chris
> 

The syntax error occurs just after the "else".  Unlike "if" and "elif",
"else" does not take an expression. It covers any cases left over after
the "if" clause and all of the "elif" clauses have been tried and
failed.  The expression "node.cargo <= self.head.cargo" is therefore
logically unnecessary. Python (and all other programming languages I
know of) enforces this by making it illegal to put an expression in an
"else" clause.   

I don't have access to "How To Think Like A Computer Scientist", so I
can't point you to the section that discusses this, but I'm sure it's in
there somewhere.  Look in the index for "else clause", "if-elif-else
statement" or some entry like that.  

HTH.

Regards,
 
Barry
[EMAIL PROTECTED]
541-302-1107
________________________
We who cut mere stones must always be envisioning cathedrals.

-Quarry worker's creed


_______________________________________________
Tutor maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/tutor

Reply via email to