# Help on built-in function range in module __builtin__:
range(...)
range(stop) -> list of integers
range(start, stop[, step]) -> list of integers
Return a list containing an arithmetic progression of integers.
range(i, j) returns [i, i+1, i+2, ..., j-1]; start (!) defaults to 0.
When step is given, it specifies the increment (or decrement).
For example, range(4) returns [0, 1, 2, 3]. The end point is omitted!
These are exactly the valid indices for a list of 4 elements.
Examples
$ python2
>>> range(-1)
[]
>>> range(0)
[]
>>> range(1)
[0]
>>> range(2)
[0, 1]
>>> range(3)
[0, 1, 2]
>>> range(4)
[0, 1, 2, 3]
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> len(range(32))
32
>>> range(1, 1, -1)
[]
>>> range(1, 0, -1)
[1]
>>> range(1, -1, -1)
[1, 0]
>>> range(1, -2, -1)
[1, 0, -1]
>>> range(1, -3, -1)
[1, 0, -1, -2]
>>> range(1, -4, -1)
[1, 0, -1, -2, -3]
In Reverse Order
$ python2
>>> range(16)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
>>> range(0, 16, 1)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
>>> range(16)[::-1]
[15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> range(15, -1, -1)
[15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
$ python3
>>> range(-1)
range(0, -1)
>>> list(range(-1))
[]
>>> range(0)
range(0, 0)
>>> list(range(0))
[]
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(0, 10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(0, 10, 1))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(10, 0, -1))
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
>>> range(10)[::-1]
range(9, -1, -1)
>>> list(range(9, -1, -1))
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> list(range(0, 10, -1))
[]
>>> l = ['a', 'b', 'c']
>>> for i in range(len(l)):
... print(l[i], end=" ")
... if i == len(l) - 1:
... print()
...
a b c
>>> for i in range(97, 97+26):
... print(chr(i), end=" ")
... if i == 97+25:
... print()
...
a b c d e f g h i j k l m n o p q r s t u v w x y z
# https://en.wikipedia.org/wiki/Burmese_alphabet
>>> for i in range(34):
... ka = ord('က')
... print(chr(ka+i), end=" ")
... if i == 33:
... print()
...
က ခ ဂ ဃ င စ ဆ ဇ ဈ ဉ ည ဋ ဌ ဍ ဎ ဏ တ ထ ဒ ဓ န ပ ဖ ဗ ဘ မ ယ ရ လ ဝ သ ဟ ဠ အ
# Adding odd number below 10
>>> s = ''
>>> sum = 0
>>> for i in range(1, 10, 2):
... sum = sum + i
... s = s + '+' + str(i) if i > 1 else str(i)
... print(f'{s} = {sum}')
...
1 = 1
1+3 = 4
1+3+5 = 9
1+3+5+7 = 16
1+3+5+7+9 = 25
# Help on built-in function ord in module builtins:
ord(c, /)
Return the Unicode code point for a one-character string.
# Help on built-in function chr in module builtins:
chr(i, /)
Return a Unicode string of one character with ordinal i; 0 <= i <= 0x10ffff.
>>> ord('a')
97
>>> ord('က')
4096
>>> ord(1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: ord() expected string of length 1, but int found
>>> ord('ab')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: ord() expected a character, but string of length 2 found
>>> ord('ကို')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: ord() expected a character, but string of length 5 found
>>> len('ကို')
3
Looks like a bug in error reporting of ord
where the length of the string 'ကို'
is reported as 5 instead of 3.
>>> chr(97)
'a'
>>> chr(4096)
'က'
>>> chr('a')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: an integer is required (got type str)