I've always appreciated Python's lack of requirement for a semi-colon
at the end of each line. I also appreciate its rules for automatic
line continuation. If a statement ends with a "+", for example, Python
recognizes that the statement obviously must continue.
I've noticed, however, that the same rule does not apply when a line
ends with "and," "or," or "not." Yes, it's a minor point, but
shouldn't the same rule apply?
Seems like it would be easy to add. 6 1971
On Jun 4, 10:09*pm, "Russ P." <Russ.Paie...@gmail.comwrote:
I've always appreciated Python's lack of requirement for a semi-colon
at the end of each line. I also appreciate its rules for automatic
line continuation. If a statement ends with a "+", for example, Python
recognizes that the statement obviously must continue.
I've noticed, however, that the same rule does not apply when a line
ends with "and," "or," or "not." Yes, it's a minor point, but
shouldn't the same rule apply?
Seems like it would be easy to add.
Huh? This doesn't work either:
>>x = 2 +
File "<stdin>", line 1
x = 2 +
^
SyntaxError: invalid syntax
Implicit line continuation only happens if you have an unmatched '('.
>>x = (2 +
... 2
... )
>>x
4
On Jun 4, 9:01 pm, Dan Bishop <danb...@yahoo.comwrote:
On Jun 4, 10:09 pm, "Russ P." <Russ.Paie...@gmail.comwrote:
I've always appreciated Python's lack of requirement for a semi-colon
at the end of each line. I also appreciate its rules for automatic
line continuation. If a statement ends with a "+", for example, Python
recognizes that the statement obviously must continue.
I've noticed, however, that the same rule does not apply when a line
ends with "and," "or," or "not." Yes, it's a minor point, but
shouldn't the same rule apply?
Seems like it would be easy to add.
Huh? This doesn't work either:
>x = 2 +
File "<stdin>", line 1
x = 2 +
^
SyntaxError: invalid syntax
Implicit line continuation only happens if you have an unmatched '('.
>x = (2 +
... 2
... )>>x
4
Darnit! You're right. I've been reading up on Scala lately, and I
guess I got confused. Well, it wouldn't be a bad idea for Python to do
what I thought it did, *plus* what I said it ought to do.
Scala is a nice language, by the way. Check it out when you get a
chance ( http://www.scala-lang.org). I'm thinking about switching over
to it from Python if I can. I just wish it had default arguments and
argument passing by keyword. Now, those are a couple of features that
I really appreciate in Python. Oh, and I wish Scala used "and" and
"or" rather than "&&" and "||". There's another thing Python got right.
Dan Bishop <da*****@yahoo.comwrote:
>On Jun 4, 10:09*pm, "Russ P." <Russ.Paie...@gmail.comwrote:
>I've always appreciated Python's lack of requirement for a semi-colon at the end of each line. I also appreciate its rules for automatic line continuation. If a statement ends with a "+", for example, Python recognizes that the statement obviously must continue.
I've noticed, however, that the same rule does not apply when a line ends with "and," "or," or "not." Yes, it's a minor point, but shouldn't the same rule apply?
Seems like it would be easy to add.
... Implicit line continuation only happens if you have an unmatched '('.
>>>x = (2 +
... 2 ... )
>>>x
4
.... or an unmatched [ or an unmatched {.
--
Tim Roberts, ti**@probo.com
Providenza & Boekelheide, Inc.
Dennis Lee Bieber wrote:
On Wed, 4 Jun 2008 21:50:19 -0700 (PDT), "Russ P."
<Ru**********@gmail.comdeclaimed the following in comp.lang.python:
>Darnit! You're right. I've been reading up on Scala lately, and I guess I got confused. Well, it wouldn't be a bad idea for Python to do what I thought it did, *plus* what I said it ought to do.
Is it that much of a difficulty to start multiline expresssions with
a (...
That already covers all the conditions you want... Or just using a
line ending of \
(which I find less appealing than the (... )
I suppose this is a matter of "taste". I find using parenthesis to trigger line
continuations undesirable. Lines ending in backslash are explicit and easy to
mentally parse.
-Larry
"Russ P." <Ru**********@gmail.comwrote in message
news:0d**********************************@u6g2000p rc.googlegroups.com...
|. Well, it wouldn't be a bad idea for Python to do
| what I thought it did, *plus* what I said it ought to do.
A line ending in an operator is ambiguous in that it *could* indicate that
the programmer intends to continue on the next line while it also could
indicate that the programmer forgot to finish before hitting return, or
that something got erased but not replaced. Moreover, the second
possibility is actual (it actually happens) and not just theoretical.
Moreover, the next line realistically could 'complete' the incomplete line
'by accident', so that the syntax bug would not get flagged.
In such situations, some might lean toward the plausible guess choice, but
Guido leans in the direction of choosing the bug interpretation. So he
included the '\' mechanism. It is already used in strings to mean "do not
take the next char literally", so having it mean "do not take the following
end-of-line literally" is only a tiny step.
Terry Jan Reedy
On 5 Jun, 22:40, "Terry Reedy" <tjre...@udel.eduwrote:
>
A line ending in an operator is ambiguous in that it *could* indicate that
the programmer intends to continue on the next line while it also could
indicate that the programmer forgot to finish before hitting return, or
that something got erased but not replaced.
Yes, this is an excellent point. For the logical operators, consider
code like the following...
x = obj1.something() and obj2.conditional() and # time for lunch!
obj4.obligatory_something()
Although a trailing "and" or "or" operator might suggest a
continuation of the expression on the next line, one has to consider
whether the next line (or almost any line defining an expression)
should suggest possible membership of an expression on the preceding
line by default for its contents. One could, of course, insist on
indentation to prevent such ambiguity since the second line above
shouldn't be indented further if part of a separate statement. More
work is definitely needed on such a proposal, certainly.
Paul This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics |
by: tdi |
last post by:
Ok, stupid question for the day. I'm reading the interview with Steve
Moret and he says: "Once a lot of scripts started going in we knew
there was no way we could back out of using Python."
I'm...
|
by: Tomas Christiansen |
last post by:
Im trying to make a simple TCP socket "relay" or "proxy", but my skills in
Python are not high (yet).
The only thing it should do, is to open the connection on behalf of the
client, and when the...
|
by: John |
last post by:
Thanks.
I am writing a C++ code on Linux and Sun OS platform.
How to make a procedure sleep or delay?
Thanks again.
"John Carson" <donaldquixote@datafast.net.au> wrote in message...
|
by: Colleyville Alan |
last post by:
I am constructing a SQL command from a function. Some code builds the WHERE
clause in a looping structure and passes that as an argument to the
SQL-building function. But the results do not...
|
by: Cybertof |
last post by:
Hello,
I would like to return the good single value from a string value
in these cases :
Convert.ToSingle("23,30");
Convert.ToSingle("23.30"); // Conversion Error !!!
The result should be...
| |
by: jht5945 |
last post by:
For example I wrote a function:
function Func()
{
// do something
}
we can call it like:
var obj = new Func(); // call it as a constructor
or
var result = Func(); // call it as...
|
by: bill |
last post by:
I am trying to write clean code but keep having trouble deciding
when to quote an array index and when not to.
sometimes when I quote an array index inside of double quotes I
get an error about...
|
by: GHZ |
last post by:
Is this the best way to test every item in a list?
def alltrue(f,l):
return reduce(bool.__and__,map(f,l))
def onetrue(f,l):
return reduce(bool.__or__,map(f,l))
False
|
by: darnnnel |
last post by:
I have a a statement as follows:
sSQL = "SELECT * FROM QueryCases WHERE Weekday(QueryCases.StartDate) = 1 OR Weekday(QueryCases.StartDate) = 7 ORDER BY QueryCases.StartDate;"
I would like to add...
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
| |
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
|
by: agi2029 |
last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
|
by: TSSRALBI |
last post by:
Hello
I'm a network technician in training and I need your help.
I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs.
The...
|
by: adsilva |
last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
|
by: 6302768590 |
last post by:
Hai team
i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated ...
|
by: muto222 |
last post by:
How can i add a mobile payment intergratation into php mysql website.
| |
by: bsmnconsultancy |
last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence...
| |