ask help for a proble with invalid syntax

John Machin sjmachin at lexicon.net
Tue Oct 13 19:09:15 EDT 2009


On Oct 14, 9:09 am, leo zhao <lifeof... at gmail.com> wrote:
> I  try to a run a python numpy programe, however the python can't run
> this program.
> my python version is 2.6.2 , numpy  version is 1.3.0, however, the
> program can run in previous numpy version(1.2.0), who can help me to
> solve the problem, I will deeply appreciate!
> the program is below:
>
> import sys
> import os
> from datetime import *
> from random import *
> from numpy import *

Possibly nothing to do with your immediate problem, but 'from amodule
import *' is not recommended ... just import the objects that you
need.


> import py4cs.multipleloop as mp
>
> class ConsProd(object):
>     total_production =[0.0,0.0,0.0]
>     tech = 1.0
>     goods =['z','x','y']

Lists as class attributes? Are you sure that that's what you want?

>     def __init__(seld,identifier):

Typo above: seld instead of self. This and other problems mentioned
below make it hard to believe this code runs with any version of
anything.

>         self.identifier = identifier
>         self.demand_veector = array([0.0,0.0]

veector or vector?

You are missing a ")" from the end of the above line. That should
cause a syntax error when it hits the ":" in the next line.

>         if len(G.cps1) > number_of_1individuals:

G is not defined.
number_of_1individuals is not defined.

>                self.make = ConsProd.goods[0]
>                self.tech = ConsProd.tech
>                self.gross_production = (self. tech*G.L,0.0,0.0)
>                ConsProd.total_production[0] += self.gross_production
> [0]
>                G.cps1[self] = self.gross_production[0]

self as a dictionary key?? Have supplied a __hash__ method for the
class?

>         elif number_of_1individuals >= len(G.cps1) and len(G.cps2) <
> number_of_2indibiduals:

number_of_2indibiduals or number_of_2individuals?? In any case,
neither of these is defined.

>                self.make = ConsProd.goods[1]
>                self.tech = ConsProd.tech
>                self.gross_production = (0.0,self. tech*G.L,0.0)
>                ConsProd.total_production[1] += self.gross_production
> [1]
>                G.cps2[self] = self.gross_production[0]
>         else:
>                self.make = ConsProd.goods[2]
>                self.tech = ConsProd.tech
>                self.gross_production = (0.0,0.0,self. tech*G.L)
>                ConsProd.total_production[2] += self.gross_production
> [2]
>                G.cps3[self] = self.gross_production[2]
>
> the hint is the small window at python:

What is "the small window at python"??

>
> syntax error:
> There' an error in your program: invalid syntax.

I doubt that that is an exact copy of the error message. You haven't
included a copy of the line where the syntax error is alleged to
occur. If you provide an exact copy of the error message etc that you
see on your screen (use copy/paste), we should be able to help you.

Note that if you have a Python syntax error, it is very unlikely that
it would "work" with one version of Numpy and not "work" with another
version -- unless of course you have changed the source code between
Numpy versions.

HTH,
John



More information about the Python-list mailing list