Write Pythonic Code Like a Seasoned Developer Transcripts
Chapter: Pythonic Loops
Lecture: Wait, is there a numerical for loop (v1)?
0:01 So it turns out sometimes when you really do just want to
0:03 work through a sequence from numbers, in order: 1, 2, 3, 4,
0:06 or maybe even evens for some reason: 0, 2, 4, 6 and so on,
0:11 so in Python we actually do have a way to do this,
0:13 so over here imagine we wanted this code that went from 0 up to 10
0:17 but not including it, what do we do? Remember,
0:20 there is no "for" loop, so we just say "for i in"
0:24 and we can create this generator that goes from 0 to 10,
0:28 and we could even use the step size if we wanted to change
0:31 the increment there, instead of "+= 1" we would do something else.
0:35 All right, so this should go from 0 to 9 in the print out.
0:38 And it does, so here we can use range,
0:40 now range is considered slightly dangerous for large values here,
0:44 in Python 2, because if we look at range,
0:50 like so, it just says range 1 to 7, let's put a new line here, like so,
0:54 it says just 1 to 7, this is technically a generator,
0:57 but if we did this in Python 2
1:06 up here you can see this has just bin/python,
1:09 which is Python 2, what we'll get at the bottom is no longer a generator, it's a list,
1:13 so if you put 10 million here instead of using the generator
1:16 with the yield slowly create this, it actually generates a list of 10 million items.
1:21 All at once. And then, lets you loop over it. Not amazing, right?
1:24 but in Python 3 this is no problem, if you want to do this in Python 2,
1:28 "xrange" is your friend, now you get basically the equivalent of Python 3 "range".
1:35 Great, so if you really want to step through numbers,
1:38 just use range, that gives you something that's iterable
1:41 and you use that in a "for...in" loop.
1:42 Yeah, so in some sense there is a way to do a numerical "for" loop,
1:46 it's just not a language construct, it's an idiom.