Python >> Tutoriel Python >  >> Python

Fonction Python str()

str(x) intégré de Python la fonction convertit l'objet x à une chaîne en utilisant le x.__str__() ou, s'il n'existe pas, le repr(x) fonction intégrée pour obtenir la conversion de chaîne.

Syntaxe str()

Syntax: 
str(object)   
# – > Most common case: convert an object to a string

str(object=b'', encoding='utf-8', errors='strict')   
# – > Not so common case: Converts a bytes or bytearray to a string by calling the method bytes.decode()
Arguments object Objet à convertir en chaîne. Si vide ou non fourni, renvoie la chaîne vide '' .
encoding (Facultatif) Uniquement si l'objet est un objet bytes. L'encodage utilisé, par exemple ASCII ou UTF-8.
errors (Facultatif) Une des options :'strict' , 'replace' , ou 'ignore' . Voir le tableau ci-dessous pour plus de détails.
Valeur de retour string Renvoie une valeur de chaîne telle que définie par le object.__str__() méthode.

String vidéo()

Exemples d'utilisation str()

Le code suivant vous montre comment utiliser le str(x) fonction sur la façon de convertir un objet en chaîne :

>>> str(42)
'42'
>>> str(3.14)
'3.14'
>>> str([1, 2, 3])
'[1, 2, 3]'
>>> str({'Donna': 33, 'Harvey': 44})
"{'Donna': 33, 'Harvey': 44}"

Le code suivant vous montre comment utiliser les entrées bytes ou bytearray comme object dispute.

>>> str(b'hello')
"b'hello'"
>>> str(b'hello', encoding='UTF-8')
'hello'
>>> str(b'hello', encoding='UTF-8', errors='ignore')
'hello'

Mais avant de continuer, je suis ravi de vous présenter mon nouveau livre Python Python One-Liners (Lien Amazon).

Si vous aimez les one-liners, vous allez adorer le livre. Il vous apprendra tout ce qu'il y a à savoir sur une seule ligne de code Python. Mais c'est aussi une introduction à l'informatique , science des données, apprentissage automatique et algorithmes. L'univers en une seule ligne de Python !

Le livre est sorti en 2020 avec l'éditeur de livres de programmation de classe mondiale NoStarch Press (San Francisco).

Lien :https://nostarch.com/pythononeliners

Comment implémenter votre propre représentation sous forme de chaîne pour un objet personnalisé

Pour implémenter votre propre représentation sous forme de chaîne lors de l'utilisation du str(object) fonction sur votre object personnalisé , écrasez le object.__str__() méthode lors de la définition de la classe et renvoie la représentation sous forme de chaîne souhaitée de l'objet donné. Si non __str__() méthode est définie, Python utilise le __repr__ comme méthode de secours implémentée par défaut pour n'importe quel objet.

class Car:
    def __init__(self, color, brand):
        self.color = color
        self.brand = brand

    def __str__(self):
        return 'Your car has color ' + self.color + ' and brand ' + self.brand

    def __repr__(self):
        return '123'

    
porsche = Car('black', 'porsche')
tesla = Car('silver', 'tesla')

print(str(porsche))
print(str(tesla))

La sortie est :

Your car has color black and brand porsche
Your car has color silver and brand tesla

Notez comment le __str__ la méthode a priorité sur le __repr__ méthode. Mais si vous sautez la définition du __str__ méthode, il prendra la chaîne renvoyée par le __repr__ méthode :

class Car:
    def __init__(self, color, brand):
        self.color = color
        self.brand = brand

    def __repr__(self):
        return '123'

    
porsche = Car('black', 'porsche')
tesla = Car('silver', 'tesla')

print(str(porsche))
print(str(tesla))

La sortie est maintenant :

123
123

[Table] 7 Arguments "d'erreurs" différents de str()

Vous pouvez utiliser les gestionnaires d'erreurs suivants dans le str() fonction lors de l'utilisation d'un argument d'entrée bytes ou bytearray.

Valeur Signification
'strict' (Par défaut) Augmenter UnicodeError
'ignore' Si la saisie de données provoque une erreur, ignorez-la et continuez sans préavis.
'replace' Remplacer par le marqueur de remplacement U+FFFD pour décoder les codecs, et '?' sur l'encodage.
'xmlcharrefreplace' Remplacer par la référence de caractère XML pour l'encodage.
'backslashreplace' Remplacer par des séquences d'échappement.
'namereplace' Remplacer par \N{...} séquences d'échappement pour l'encodage.
'surrogateescape' Remplacer l'octet par un code de substitution individuel allant de U+DC80 à U+DCFF .

Vous pouvez trouver plus de détails sur ces gestionnaires d'erreurs à la source ici.

Résumé

str(x) intégré de Python la fonction convertit l'objet x à une chaîne en utilisant le x.__str__() ou, s'il n'existe pas, le repr(x) fonction intégrée pour obtenir la conversion de chaîne.