Python Forum

Full Version: SyntaxError: unexpected EOF while parsing
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I'm using Python 3.6.6 and I don't understand what I need to do to correct this code error.

Here's my code:
# First import the library
import pyrealsense2 as rs

try:
    # Create a context object. This object owns the handles to all connected realsense devices
    pipeline = rs.pipeline()
    pipeline.start()

    while True:
        # Create a pipeline object. This object configures the streaming camera and owns it's handle
        frames = pipeline.wait_for_frames()
        depth = frames.get_depth_frame()
        if not depth: continue

        # Print a simple text-based representation of the image, by breaking it into 10x20 pixel regions and approximating the coverage of pixels within one meter
        coverage = [0]*64
        for y in xrange(480):
            for x in xrange(640):
                dist = depth.get_distance(x, y)
                if 0 < dist and dist < 1:
                    coverage[x/10] += 1

            if y%20 is 19:
                line = ""
                for c in coverage:
                    line += " .:nhBXWW"[c/25]
                coverage = [0]*64
                print(line)
As I read about this error I find this- The SyntaxError: unexpected EOF while parsing means that the end of your source code was reached before all code blocks were completed. A code block starts with a statement like for i in range(100): and requires at least one line afterwards that contains code that should be in it.

The for loops appear to me to have a line of code after them. Maybe someone can explain this for me?

Thanks in advance.
You used try without either except and/or finally. In general, placing large blocks of code under try clause reduce readability - you would either want to place specific line(s) that may cause exceptions under try - or arrange your code in a function and call this function under try clause
Yes, @volcano63 said it clearly. Put the specific jobs into functions. That way a whole code block will be a function call and you won't forget to put except statement after try.