[Tutor] a newbie question [identifiers can't contain colons]

Danny Yoo dyoo@hkn.eecs.berkeley.edu
Thu, 23 Aug 2001 20:56:36 -0700 (PDT)

On Thu, 23 Aug 2001, Daniel Coughlin wrote:

> try this:
> >>> execfile("c:\\download\\practice python\\p17.py")
> note the quoatation marks and two backslashes. backslash is a special
> character; so, you need to use two to tell python that they are there.

Also, it should be ok to use forward slashes to separate your directories:

    execfile("c:/download/practice python/p17.py")

We need the quotes around "c:/download/practice python/p17.py" because we
need to tell Python to take that the whole thing as a piece of quoted
string, and not really look into it for some hidden meaning.  Otherwise,
Python will go into contortions trying to figure out what we mean.

Let's take a closer look:

>>> c:\\download\\practice python\\p17.py
  File "<stdin>", line 1
    c:\\download\\practice python\\p17.py
SyntaxError: invalid syntax

When we type an unquoted name into Python, Python assumes that we're
trying to evoke the name of a variable or function, or do some other funky
thing.  In this case, Python will think it's seeing the beginning of a
name.  That's why it's underlining the colon: names can't contain colons.

>>> colon = "colon"                          # "colon" can be a name
>>> : = "colon"                              #  but not ":".
  File "<stdin>", line 1
    : = "colon"
SyntaxError: invalid syntax

Later, you'll find out that ':' has a special meaning in Python: we use it
when we begin to "indent" inner blocks in our code.  Here's an example:

if question == "What is the meaning of life?":
    print "42"

Hope this explains why Python gave that particular SyntaxError.  Good