If you have a number, for example 65, and if you want to get the corresponding ASCII character, you can use the chr
function, like this
>>> chr[65]
'A'
similarly if you have 97,
>>> chr[97]
'a'
EDIT: The above solution works for 8 bit characters or ASCII characters. If you are dealing with unicode characters, you have to specify unicode value of the starting character of the alphabet to ord
and the result has to be converted using unichr
instead
of chr
.
>>> print unichr[ord[u'\u0B85']]
அ
>>> print unichr[1 + ord[u'\u0B85']]
ஆ
NOTE: The unicode characters used here are of the language called "Tamil", my first language. This is the unicode table for the same //www.unicode.org/charts/PDF/U0B80.pdf
In Python, a char can either be defined as an ASCII value or, if the char carries digits only, as the number it represents. In ASCII, a particular numerical value is given to different characters and symbols for computers to store and manipulate.
To find an ASCII value of a character, use the ord[] function. Let’s see how to convert ASCII value to character value.
To convert int to char in Python, use the chr[] method. The chr[] is a built-in Python method that returns a character [a string] from an integer [it represents the Unicode code point of the character].
Syntax
chr[i]
Arguments
The chr[] method takes a single parameter which is an integer.
Return Value
The chr[] function returns a character [a string] whose Unicode code point is the integer.
Example
Let’s use the chr[] function to convert int to a character.
print[chr[97]] print[chr[65]] print[chr[1100]]
Output
a A ь
And we get the characters the output concerning its ASCII value. The chr[] method returns a character whose Unicode point is num, an integer.
Integer passed to chr[] is out of the range.
If we pass the negative value to the chr[] function then it returns ValueError: chr[] arg not in range[0x110000].
print[chr[-11]]
Output
Traceback [most recent call last]: File "/Users/krunal/Desktop/code/pyt/database/app.py", line 7, in print[chr[-1]] ValueError: chr[] arg not in range[0x110000]
An integer we have passed is outside the range, and then the method returns a ValueError.
Convert a list of integers to characters
To create a list in Python, use the [ ] and add the values inside it.
listA = [69, 72, 78, 81, 90, 99] for number in listA: char = chr[number] print["Character of ASCII value", number, "is ", char]
Output
Character of ASCII value 69 is E Character of ASCII value 72 is H Character of ASCII value 78 is N Character of ASCII value 81 is Q Character of ASCII value 90 is Z Character of ASCII value 99 is c
Convert Python char to int
To convert char to int in Python, use the ord[] method. The ord[] is a built-in Python function that returns a number representing the Unicode code of a specified character.
print[ord['K']] print[ord['B']] print[ord['#']] print[ord['~']]
Output
75 66 35 126
Conclusion
To convert int to character, use the chr[] function. To convert integer to character, use the ord[] function.
That is it for this tutorial.
Convert numbers to letters in Python #
Use the chr[]
function to convert a number to a letter, e.g. letter = chr[97]
. The chr[]
function takes an integer that represents a Unicode code point and returns the corresponding character.
Copied!
# ✅ convert number to letter [standard] letter = chr[97] print[letter] # 👉️ 'a' letter = chr[65] print[letter] # 👉️ 'A' # -------------------------- # ✅ convert number to letter [starting at 1] letter = chr[ord['`'] + 1] print[letter] # 👉️ 'a' letter = chr[ord['@'] + 1] print[letter] # 👉️ 'A'
The chr function takes an integer that represents a Unicode code point and returns the corresponding character.
For example, lowercase a
has a Unicode code point of 97
and uppercase A
has a Unicode code point of 65
.
Copied!
letter = chr[97] print[letter] # 👉️ 'a' print[chr[98]] # 👉️ 'b' letter = chr[65] print[letter] # 👉️ 'A' print[chr[66]] # 👉️ 'B'
If you need to convert the number 1
to lowercase or uppercase a
, use the ord[]
function in conjunction
with chr[]
.
Copied!
letter = chr[ord['`'] + 1] print[letter] # 👉️ 'a' letter = chr[ord['@'] + 1] print[letter] # 👉️ 'A' print[ord['`']] # 👉️ 96 print[ord['@']] # 👉️ 64
The ord function takes a string that represents 1 Unicode character and returns an integer representing the Unicode code point of the given character.
Copied!
print[ord['a']] # 👉️ 97 print[ord['b']] # 👉️ 98
We used the ord[]
function to get the Unicode code point of the tilde character because it is the last character before the lowercase letter a
and added 1 to the
result.
Copied!
letter = chr[ord['`'] + 1] print[letter] # 👉️ 'a' letter = chr[ord['@'] + 1] print[letter] # 👉️ 'A' print[ord['`']] # 👉️ 96 print[ord['@']] # 👉️ 64
The @
symbol is the last character before the capital letter A
, so adding 1
to the result and calling the chr[]
function gets us the capital letter A
.
You can use a list comprehension if you need to get a list of some or all of the letters in the alphabet.
Copied!
list_of_lowercase_letters = [ chr[i] for i in range[ord['a'], ord['z'] + 1] ] # 👇️ ['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'] print[list_of_lowercase_letters] list_of_uppercase_letters = [ chr[i] for i in range[ord['A'], ord['Z'] + 1] ] # 👇️ ['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'] print[list_of_uppercase_letters]
We used the range[]
class to get a range that we can iterate over and used a list comprehension to iterate over the range.
List comprehensions are used to perform some operation for every element or select a subset of elements that meet a condition.
You can use list slicing if you need to get a slice of the list of letters.
Copied!
letters = [ chr[i] for i in range[ord['a'], ord['z'] + 1] ] # 👇️ ['a', 'b', 'c', 'd', 'e', 'f'] print[letters[:letters.index['f'] + 1]]
The syntax for list slicing is my_list[start:stop:step]
.
The start
index is inclusive and the stop
index is exclusive [up to, but not including].
Python indexes are zero-based, so the first item in a list has an index of 0
, and the last item has an
index of -1
or len[my_list] - 1
.
We didn't specify a start index, so the list slice starts at index 0
.