Python Forum
Syntax Error with = sign and more - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: General Coding Help (https://python-forum.io/forum-8.html)
+--- Thread: Syntax Error with = sign and more (/thread-26445.html)



Syntax Error with = sign and more - Kathleen57 - May-02-2020

Hi,
I'm using the book Coding Projects in Python to (slowly) learn Python. This exercise is to program the turtle to draw multiple colored lines on the screen. Here is the entire program code: (when I posted it, all the indents disappeared; I do have indents in mine):

import random
import turtle as t

def get_line_length():
    choice = input('Enter line length (long, medium, short):')
    if choice == 'long':
        line_length=250
    elif choice == 'medium':
        line_length=200
    else:
        line_length=100
    return line_length

def get_line_width():
    choice = input('Enter line width (superthick, thick, thin): ')
    if choice == 'superthick':
        line_width-40
    elif choice == 'thick':
        line_width=25
    else:
        line_width=10
    return line_width

def inside_window():
    left_limit = (-t.window_width() / 2) + 100
    right_limit = (t.window_width() / 2) - 100
    top_limit = (t.window_height() / 2) - 100
    bottom_limit = (t.window_height() / 2 + 100
    (x,y) = t.position()
    inside = left_limit < x < right_limit and bottom_limit < y < top_limit
    return inside  
    
def move_turtle(line_length):
    pen_colors = ['red', 'orange', 'yellow', 'blue', 'green', 'purple']
    t.pencolor(random.choice(pen_colors))
    if inside_window():
        angle = random.randint(0, 180)
        t.right(angle)
        t.forward(line_length)
    else:
        t.backward(line_length)

line_length=get_line_length()
line_width=get_line_width()

t.shape('turtle')
t.fillcolor('green')
t.bgcolor('black')
t.speed('fastest')
t.pensize(line_width)

while True:
    move_turtle(line_length)
My first syntax error is the equal sign on the 6th line down - (x,y) = t.position().

def inside_window():
    left_limit = (-t.window_width() / 2) + 100
    right_limit = (t.window_width() / 2) - 100
    top_limit = (t.window_height() / 2) - 100
    bottom_limit = (t.window_height() / 2 + 100
    (x,y) = t.position()
    inside = left_limit < x < right_limit and bottom_limit < y < top_limit
    return inside
In trying to figure it out, I changed that = sign to the double ==. Even though that probably would not help the program, the checker accepted it and moved forward. But the next syntax error is the word "inside" on the 7th line: inside = left_limit < x < right_limit and bottom_limit < y < top_limit.

I appreciate any help! Thank you.


RE: Syntax Error with = sign and more - buran - May-02-2020

1. as Isaid - always post the full traceback, in error tags.
2. There is difference between = and ==. Former is assignment, latter is equality
3. Starting from the original code, without your changes - there is missing closing bracket on line 28. Not that you need them
bottom_limit = (t.window_height() / 2) + 100
or simply
bottom_limit = t.window_height() / 2 + 100
if you go for the latter, fix also the previous 3 lines and remove the redundant brackets


RE: Syntax Error with = sign and more - Kathleen57 - May-03-2020

Thank you for your assistance. It got me past the point I asked about. When I copied and pasted the code, it took out the indentions and I did not realize I could retype it, using the correct indentions. I apologize. Also, there was no traceback message, just a box that only said "Syntax Error".
But I thank you and appreciate your help! You've gotten me past that particular problem.


RE: Syntax Error with = sign and more - buran - May-03-2020

(May-03-2020, 12:52 AM)Kathleen57 Wrote: When I copied and pasted the code, it took out the indentions and I did not realize I could retype it, using the correct indentions.
You don't need to retype it. Using BBcode tags preserves the indentation.