Correction de l'erreur TypeError: must be str, not int en Python

Vaibhav Vaibhav 14 avril 2022
Correction de l'erreur TypeError: must be str, not int en Python

La concaténation de chaînes fait référence à la combinaison de plusieurs chaînes en une seule chaîne. En Python, nous pouvons utiliser le symbole + entre des variables faisant référence à des chaînes ou des chaînes brutes elles-mêmes pour les joindre. Ou, nous pouvons mettre toutes les chaînes que nous souhaitons joindre dans une liste et utiliser la méthode Python intégrée join() pour les fusionner en une seule.

Lors de l’utilisation des deux méthodes ci-dessus, si nous ne faisons pas attention aux types de données des variables et aux valeurs brutes, nous pouvons rencontrer l’exception TypeError. Cet article explique comment résoudre ce problème en Python.

Correction de l’erreur TypeError: must be str, not int en Python

Nous discuterons de quelques façons que nous pouvons utiliser pour corriger cette erreur en Python.

l’approche évidente

La première solution est évidente ; soyez attentif aux variables et aux valeurs brutes que vous utilisez. Essayez de ne pas concaténer une chaîne avec un entier, un objet de classe ou une valeur booléenne.

La méthode str() en Python

La seconde solution est d’utiliser la méthode intégrée str() en Python. Cette méthode renvoie une version chaîne de l’objet passé, par exemple, un entier, une valeur à virgule flottante, un booléen, un objet de classe, une liste, etc. Pour les objets de classe, cette méthode renvoie le résultat du __repr__() ou la méthode __str__(). Reportez-vous au code Python suivant pour comprendre concrètement cette fonction str().

class A:
    def __init__(self, x):
        self.x = x

    def __str__(self):
        return f"{self.x}"


print(str(1))
print(str(111.1))
print(str(False))
print(str(True))
print(str(None))
print(str(A(11111)))
print(str([1, 2, 3, 4, 5]))

Production :

1
111.1
False
True
None
11111
[1, 2, 3, 4, 5]

Voyons maintenant comment utiliser cette fonction pour la concaténation de chaînes. Reportez-vous au code suivant pour la même chose.

a = "Hello World "
b = 1923
c = " Python "
d = 1235.23
e = " Numbers: "
f = [100, 200, 400, 800, 1600]
x = a + str(b) + c + str(d) + e + str(f)
print(x)

Production :

Hello World 1923 Python 1235.23 Numbers: [100, 200, 400, 800, 1600]

La fonction str() convertira toutes les valeurs en leurs valeurs de chaîne respectives. Et, de plus, nous pouvons concaténer les chaînes en toute sécurité sans rencontrer d’exceptions.

Chaînes formatées en Python

La troisième méthode consiste à utiliser des chaînes formatées. Les chaînes formatées font référence aux chaînes précédées d’un f. Ces chaînes nous permettent d’insérer des variables ou une logique dans des chaînes régulières. La chaîne formulée ou finale aurait les représentations sous forme de chaîne des valeurs stockées par les variables et les valeurs renvoyées par la logique ou les appels de fonction. La logique et les variables sont insérées à l’intérieur des {} présents à l’intérieur des chaînes.

Reportez-vous au code Python suivant pour l’approche décrite.

a = 1923
b = 1235.23
c = [100, 200, 400, 800, 1600]
print(f"Hello World {a} Python {b} Numbers: {c}")

Production :

Hello World 1923 Python 1235.23 Numbers: [100, 200, 400, 800, 1600]

Notez la présence d’un f en début de chaîne et de multiples {} à l’intérieur de la chaîne.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Article connexe - Python Error