Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #54296

Re: Having both if() and for() statements in one liner

From Ferrous Cranus <nikos.gr33k@gmail.com>
Newsgroups comp.lang.python
Subject Re: Having both if() and for() statements in one liner
Date 2013-09-17 16:21 +0300
Organization A noiseless patient Spider
Message-ID <l19kvs$m4q$1@dont-email.me> (permalink)
References <l19gdf$psh$1@dont-email.me> <roy-7F8454.09003417092013@news.panix.com>

Show all headers | View raw


Στις 17/9/2013 4:00 μμ, ο/η Roy Smith έγραψε:
> In article <l19gdf$psh$1@dont-email.me>,
>   Ferrous Cranus <nikos.gr33k@gmail.com> wrote:
>
>> o want to avoid having to type somehting like this:
>>
>> if person="George":
>> 	times in range(0, 5):
>>
>>
>> Why it gives me an error when i'm trying to write it like this:
>>
>>
>> if person="George" for times in range(0, 5):
>
> Step One when reporting a problem is don't just tell us you got an
> error.  Tell us what the error is.  Cut and paste the exact text of the
> full error message.
>
> Although, in this case, it's pretty easy to guess that it was a syntax
> error :-)
>
> I'm not sure where to start.  First, the '=' in 'person="George"' should
> be '=='.  In Python, '=' is used for assignment, '==' is used for
> equality testing.
>
> Next, if you want to use the 1-line version of 'if', you need a ':'
> after the condition.  Something like:
>
>      if person == 'George': print 'foo'
>
> but it's generally considered poor style to use 1-line if statements.
> Just write it on two lines:
>
>      if person == 'George':
>          print 'foo'
>
> They just discovered a huge newline vein in Montana and they're mining
> the things like crazy.  There's no shortage of them so feel free to use
> as many as you like.  They even get recycled.
>
> But, I'm not even sure you can put a 'for' statement as the body of a
> 1-line 'if'.  I've never tried it before, and my one experiment now got
> me a syntax error.  Even if it turns out to be legal and I just haven't
> got the details right, it's just The Wrong Thing To Do.
>


I just want to say tot he program that

that only run the for statement if and only if person=='George'

I dont see nay reason as to why this fails

perhaps like:

for times in range(0, 5) if person=='George':

but that fails too...
there must be written on soem way.

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Having both if() and for() statements in one liner Ferrous Cranus <nikos.gr33k@gmail.com> - 2013-09-17 15:02 +0300
  Re: Having both if() and for() statements in one liner Robert Kern <robert.kern@gmail.com> - 2013-09-17 13:52 +0100
  Re: Having both if() and for() statements in one liner Roy Smith <roy@panix.com> - 2013-09-17 09:00 -0400
    Re: Having both if() and for() statements in one liner Ferrous Cranus <nikos.gr33k@gmail.com> - 2013-09-17 16:21 +0300
      Re: Having both if() and for() statements in one liner Heiko Wundram <modelnine@modelnine.org> - 2013-09-17 15:46 +0200
      Re: Having both if() and for() statements in one liner Tim Chase <python.list@tim.thechases.com> - 2013-09-17 09:17 -0500
      Re: Having both if() and for() statements in one liner Joel Goldstick <joel.goldstick@gmail.com> - 2013-09-17 10:32 -0400
      Re: Having both if() and for() statements in one liner Dave Angel <davea@davea.name> - 2013-09-17 18:54 +0000
        Re: Having both if() and for() statements in one liner Steven D'Aprano <steve@pearwood.info> - 2013-09-18 02:10 +0000
          Re: Having both if() and for() statements in one liner Joshua Landau <joshua@landau.ws> - 2013-09-18 06:55 +0100
          Re: Having both if() and for() statements in one liner Chris Angelico <rosuav@gmail.com> - 2013-09-18 17:00 +1000
    Re: Having both if() and for() statements in one liner Chris Angelico <rosuav@gmail.com> - 2013-09-18 01:04 +1000
    Re: Having both if() and for() statements in one liner Joel Goldstick <joel.goldstick@gmail.com> - 2013-09-17 11:15 -0400

csiph-web