Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #49101 > unrolled thread
| Started by | Chris Angelico <rosuav@gmail.com> |
|---|---|
| First post | 2013-06-25 08:50 +1000 |
| Last post | 2013-06-25 08:50 +1000 |
| Articles | 1 — 1 participant |
Back to article view | Back to comp.lang.python
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: Is this PEP-able? fwhile Chris Angelico <rosuav@gmail.com> - 2013-06-25 08:50 +1000
| From | Chris Angelico <rosuav@gmail.com> |
|---|---|
| Date | 2013-06-25 08:50 +1000 |
| Subject | Re: Is this PEP-able? fwhile |
| Message-ID | <mailman.3782.1372114251.3114.python-list@python.org> |
On Tue, Jun 25, 2013 at 8:43 AM, Ian Kelly <ian.g.kelly@gmail.com> wrote:
> On Mon, Jun 24, 2013 at 4:41 PM, Fábio Santos <fabiosantosart@gmail.com> wrote:
>>
>> On 24 Jun 2013 22:29, "Ian Kelly" <ian.g.kelly@gmail.com> wrote:
>>>
>>> On Mon, Jun 24, 2013 at 2:34 PM, Fábio Santos <fabiosantosart@gmail.com>
>>> wrote:
>>> > This can probably be best achieved by adding to the existing for loop,
>>> > so maybe taking advantage of the existing for...if syntax and adding
>>> > for...while would be a better idea?
>>>
>>> The for...if syntax only exists for comprehensions and generators. If
>>> we're going to add for...while for loops, then we might as well go
>>> ahead and add for...if loops there as well.
>>>
>>> That said, I do like this syntax better than "fwhile".
>>
>> Good point. Still, I don't see why for..if doesn't exist in for loops
>> anyway. It may be lack of foresight, but I don't understand why at all.
>
> Because it adds more syntax to learn when learning the language, it
> introduces more maintenance overhead, and it offers no clear benefit
> over simply nesting an if inside a for.
In more free-form languages, I implement this by simply omitting a line-break:
for (int i=0;i<num_whatevers;++i) if (whatever[i].flag)
{
do_stuff;
}
Python could afford to lose a little rigidity here rather than gain
actual new syntax:
for i in range(10): if i%3:
print(i)
And there you are, the for-if "filtered iteration" model, just by
relaxing one rule.
ChrisA
Back to top | Article view | comp.lang.python
csiph-web