Chaîne Python en Entier, Entier en Chaîne

Dans ce tutoriel, nous apprendrons comment convertir une chaîne Python en entier et un entier en chaîne en Python. Dans notre précédent tutoriel, nous avons appris la fonction Python List append.

Python String to Int

Si vous avez lu nos tutoriels précédents, vous avez peut-être remarqué qu’à un moment donné, nous avons utilisé cette conversion. En réalité, cela est nécessaire dans de nombreux cas. Par exemple, si vous lisez des données à partir d’un fichier, elles seront au format chaîne et vous devrez convertir la chaîne en entier. Maintenant, passons directement au code. Si vous souhaitez convertir un nombre représenté dans la chaîne en entier, vous devez utiliser la fonction int(). Voyez l’exemple suivant :

num = '123'  # string data

# imprimer le type

print('Type of num is :', type(num))

# convertir en utilisant int()

num = int(num)

# imprimer le type again

print('Now, type of num is :', type(num))

La sortie du code suivant sera

Type of num is : <class 'str'>
Now, type of num is : <class 'int'>
Python String To Int

Conversion d’une chaîne en entier à partir d’une base différente

Si la chaîne que vous souhaitez convertir en entier appartient à une base numérique différente de la base 10, vous pouvez spécifier la base de conversion. Mais rappelez-vous que l’entier en sortie est toujours en base 10. Une autre chose à retenir est que la base donnée doit être comprise entre 2 et 36. Consultez l’exemple suivant pour comprendre la conversion d’une chaîne en entier avec l’argument de base.

num = '123'
# imprimer la chaîne originale
print('The original string :', num)

# en considérant que '123' est en base 10, le convertir en base 10

print('Base 10 to base 10:', int(num))

# en considérant que '123' est en base 8, le convertir en base 10

print('Base 8 to base 10 :', int(num, base=8))

# en considérant que '123' est en base 6, le convertir en base 10

print('Base 6 to base 10 :', int(num, base=6))

Le résultat du code suivant sera

Python Convert String To Int With Base

Erreur de valeur lors de la conversion de la chaîne en entier

Lors de la conversion d’une chaîne en entier, vous pouvez obtenir une ValueError exception. Cette exception se produit si la chaîne que vous souhaitez convertir ne représente aucun nombre. Supposons que vous vouliez convertir un nombre hexadécimal en entier. Mais vous n’avez pas passé l’argument base=16 dans la fonction int(). Cela lèvera une exception ValueError s’il y a un chiffre qui n’appartient pas au système de numération décimale. L’exemple suivant illustrera cette exception lors de la conversion d’une chaîne en entier.

"""
    Scenario 1: The interpreter will not raise any exception but you get wrong data
"""
num = '12'  # this is a hexadecimal value

# la variable est considérée comme une valeur décimale pendant la conversion
print('The value is :', int(num))

# la variable est considérée comme une valeur hexadécimale pendant la conversion
print('Actual value is :', int(num, base=16))

"""
    Scenario 2: The interpreter will raise ValueError exception
"""

num = '1e'  # this is a hexadecimal value

# la variable est considérée comme une valeur hexadécimale pendant la conversion
print('Actual value of \'1e\' is :', int(num, base=16))

# la variable est considérée comme une valeur décimale pendant la conversion
print('The value is :', int(num))  # this will raise exception

La sortie du code ci-dessus sera :

The value is : 12
Actual value is : 18
Actual value of '1e' is : 30
Traceback (most recent call last):
  File "/home/imtiaz/Desktop/str2int_exception.py", line 22, in 
    print('The value is :', int(num))  # this will raise exception
ValueError: invalid literal for int() with base 10: '1e'
Python String To Int ValueError

Python int vers String

Convertir un entier en chaîne ne nécessite aucun effort ni aucune vérification. Vous utilisez simplement la fonction str() pour effectuer la conversion. Voyez l’exemple suivant.

hexadecimalValue = 0x1eff

print('Type of hexadecimalValue :', type(hexadecimalValue))

hexadecimalValue = str(hexadecimalValue)

print('Type of hexadecimalValue now :', type(hexadecimalValue))

La sortie du code suivant sera :

Type of hexadecimalValue : <class 'int'>
Type of hexadecimalValue now : <class 'str'>
Python Int To String Conversion

C’est tout ce qu’il y a à savoir sur la conversion de chaîne en entier et d’entier en chaîne en Python. Référence : Documentation officielle de Python

Source:
https://www.digitalocean.com/community/tutorials/python-string-to-int-int-to-string