How to count by twos with Python's 'range&

2020-07-01 07:36发布

So imagine I want to go over a loop from 0 to 100, but skipping the odd numbers (so going "two by two").

for x in range(0,100):
    if x%2 == 0:
        print x

This fixes it. But imagine I want to do so jumping two numbers? And what about three? Isn't there a way?

标签: python range
3条回答
不美不萌又怎样
2楼-- · 2020-07-01 08:12

(Applicable to Python <= 2.7.x only)

In some cases, if you don't want to allocate the memory to a list then you can simply use the xrange() function instead of the range() function. It will also produce the same results, but its implementation is a bit faster.

for x in xrange(0,100,2):
    print x,   #For printing in a line

>>> 0, 2, 4, ...., 98 

Python 3 actually made range behave like xrange, which doesn't exist anymore.

查看更多
▲ chillily
3楼-- · 2020-07-01 08:16
for i in range(0, 100, 2):
    print i

If you are using an IDE, it tells you syntax:

min, max, step(optional)

查看更多
放我归山
4楼-- · 2020-07-01 08:27

Use the step argument (the last, optional):

for x in range(0, 100, 2):
    print(x)

Note that if you actually want to keep the odd numbers, it becomes:

for x in range(1, 100, 2):
    print(x)

Range is a very powerful feature.

查看更多
登录 后发表回答