documentation: what is "::="?
tjreedy at udel.edu
Tue Oct 14 01:59:41 CEST 2008
Anita Kean wrote:
> 1) Everywhere in the old and new documentation, the
> string of characters "::=" is used in "explaining" things - but
> I can nowhere find any stated meaning of this string.
Read Reference manual introductin notation:
The descriptions of lexical analysis and syntax use a modified BNF
grammar notation. This uses the following style of definition:
name ::= lc_letter (lc_letter | "_")*
lc_letter ::= "a"..."z"
The first line says that a name is an lc_letter followed by a sequence
of zero or more lc_letters and underscores. An lc_letter in turn is any
of the single characters 'a' through 'z'. (This rule is actually adhered
to for the names defined in lexical and grammar rules in this document.)
> I'm guessing something like "if and only if" is implicated here?
> But for example, if I import the sys module and perform the following three
> print sys.path
> the first two give me the python path, and the last reports an error:
>> Traceback (most recent call last):
>> File "<stdin>", line 1, in <module>
>> File "/usr/lib/python2.5/locale.py", line 244, in str
>> return format("%.12g", val)
>> File "/usr/lib/python2.5/locale.py", line 147, in format
>> formatted = percent % value
>> TypeError: float argument required
> What is it I'm not understanding here?
You should include the data that gives you such puzzling output ;-).
What did print sys.path produce?
Just typing sys.path at >>> should have the same effect as str(sys.path).
More information about the Python-list