Ask Your Question
0

Can't find Cause of Traceback Error

asked 2015-10-12 05:40:23 +0100

KristofferH gravatar image

updated 2015-10-12 05:42:44 +0100

I'm trying to convert this code that runs in Python 2.7 to Sage but can't even get a hint from Sage at what line the code is not accepted by Sage.

def Ramanujan(t):
    cubes = [x**3 for x in range(1,t/10)]
    crev = [] ''' Calculating Cube Roots'''
    for x,x3 in enumerate(cubes): crev[x3] = x + 1
    sums = sorted(x + y for x in cubes for y in cubes if y < x) ''' Organizing Data'''
    for i in range(1, len(sums)-1):
        if sums[i-1] != sums[i] and sums[i] == sums[i+1]: ''' Finding solutions'''
            if sums[i]<=t: ''' Limiting how many solutions printed.'''
                print "%10d"%(sums[i]) ''' Printing desired outputs '''
            else:
                break ''' Ending the function.'''

The only thing that Sage will report back is Traceback Error for SyntaxError: invalid syntax but no line information.. Can anyone tell where specifically the syntax is invalid??

edit retag flag offensive close merge delete

Comments

This code does not seem to run in Python 2.7, same error as reported by sage.

Traceback (most recent call last):            if sums[i-1] != sums[i] and sums[i] == sums[i+1]: ''' Finding solutions'''
  File "", line 1, in <module>

  File "/tmp/tmp_QhfdJ/___code___.py", line 5
     crev = [] ''' Calculating Cube Roots'''
                                          ^
SyntaxError: invalid syntax
fidbc gravatar imagefidbc ( 2015-10-12 06:09:54 +0100 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2015-10-12 06:05:54 +0100

fidbc gravatar image

updated 2015-10-12 06:17:30 +0100

It seems like you are working in the notebook environment in sage. Perhaps you are getting the following output

Traceback (click to the left of this block for traceback)
...
SyntaxError: invalid syntax

And if you click to the left of the block (as indicated above) you should see something like

Traceback (most recent call last):            if sums[i-1] != sums[i] and sums[i] == sums[i+1]: ''' Finding solutions'''
  File "", line 1, in <module>

  File "/tmp/tmp_QhfdJ/___code___.py", line 5
    crev = [] ''' Calculating Cube Roots'''
                                          ^
SyntaxError: invalid syntax

It seems that the trouble is being caused by the use of triple quotes, the hash character (#) is recommended for comments.

def Ramanujan(t):
    cubes = [x**3 for x in range(1,t/10)]
    crev = [] # Calculating Cube Roots
    for x,x3 in enumerate(cubes):
        crev[x3] = x + 1
        sums = sorted(x + y for x in cubes for y in cubes if y < x) # Organizing Data
        for i in range(1, len(sums)-1):
            if sums[i-1] != sums[i] and sums[i] == sums[i+1]: # Finding solutions
                if sums[i]<=t: # Limiting how many solutions printed.
                    print "%10d"%(sums[i]) # Printing desired outputs
                else:
                    break # Ending the function.

The code seems to be broken, Ramanujan(20) yields an error.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2015-10-12 05:40:23 +0100

Seen: 907 times

Last updated: Oct 12 '15