Diverses opérations de chaîne avec Python intégré

Avant

Chaque opération de la chaîne de caractères

Jusqu'au chapitre précédent, vous avez appris les opérations de base de Python, les types, les fonctions intégrées, etc. Dans ce chapitre, nous en apprendrons davantage sur les opérations supplémentaires pour les chaînes de caractères (nous avons appris certaines méthodes d'opération jusqu'au chapitre précédent, mais il existe diverses autres méthodes d'opération importantes et pratiques, nous les apprendrons donc). ..

Il y en a tellement, donc même si vous ne vous souvenez pas de tout, vous pouvez simplement dire: "Au fait, il y avait quelque chose comme ça." Il n'y a aucun problème si vous pouvez rechercher et vous rappeler chaque fois que vous en avez besoin.

Index de chaîne et tranche

Vous avez appris le découpage (comme l'extraction uniquement vers une certaine plage de valeurs de la liste) dans la section relative à la description de la liste, mais vous pouvez en fait faire de même avec des chaînes. Comme dans le cas de la liste, elle peut être contrôlée en spécifiant la plage d'index à l'aide de parenthèses, de nombres et de deux points tels que «[1: 3]».

Des numéros d'index sont attribués à chaque caractère. Comme pour la liste, elle commencera à 0.

Par exemple, si la chaîne de caractères est ʻApple`, l'index sera attribué comme suit.

On peut dire qu'une "chaîne est comme une liste contenant des caractères".

Essayons d'écrire du code pour faire référence à la valeur de l'index dans une liste.

Tout d'abord, essayez de sortir le contenu d'un index spécifique (spécifiez comme «[0]» ou «[1]»). Vous pouvez confirmer que seul le caractère correspondant est émis.

str_value = 'Apple'
print(str_value[0])

Contenu de sortie du résultat de l'exécution du code:

A

str_value = 'Apple'
print(str_value[1])

Contenu de sortie du résultat de l'exécution du code:

p

Ensuite, essayez d'extraire une chaîne de caractères dans une plage spécifique par découpage, par exemple "après l'index de XX et inférieur à l'index de XX". Comme pour la liste, le nombre sur le côté gauche du deux-points représente «après l'index de XX», et le nombre sur le côté droit du deux-points est «inférieur à l'indice de XX». En d'autres termes, si vous spécifiez «[1: 4]», la condition est «1 ou plus et moins de 4» (pour les index de 1, 2, 3), et si vous le définissez pour le caractère «Apple», ce sera «ppl». La pièce peut être extraite.

str_value = 'Apple'
print(str_value[1:4])

Contenu de sortie du résultat de l'exécution du code:

ppl

Bien entendu, comme pour les tranches de la liste, vous pouvez également spécifier uniquement le nombre sur le côté gauche des deux points et spécifier uniquement la condition "après XX", ou spécifier uniquement le nombre sur le côté droit et spécifier uniquement la condition "inférieur à XX". pouvez.

Découvrez si le début d'une chaîne est une chaîne particulière: commence avec la méthode

Avec les chaînes avec méthode, vous pouvez obtenir la valeur booléenne indiquant si la chaîne cible commence par la chaîne passée comme premier argument.

Comme il est écrit en anglais comme "commence par une chaîne de caractères XX" signifiant "commence par une chaîne de caractères XX", le nom de la méthode en est dérivé.

Dans les programmes, les noms de variables et les noms de constantes sont souvent écrits en unifiant les valeurs d'un même groupe et en commençant par une chaîne de caractères spécifique, également appelée préfixe. pre a le sens de" avant "et est utilisé comme" ce qui est ajouté au début "(et autres).

Par exemple, une constante peut être nommée comme ʻITEM_ID_〇〇 en utilisant le préfixe ʻITEM_ID_.

La méthode startswith est utile pour vérifier si un tel préfixe est la chaîne cible. Comme cela sera mentionné dans un chapitre ultérieur, les noms de variables et les noms de constantes dans le programme peuvent également être obtenus sous forme de chaînes de caractères, il est donc possible de contrôler tel que le traitement s'il s'agit d'un préfixe spécifique.

Si vous spécifiez un préfixe comme premier argument, la valeur booléenne True ou False sera renvoyée.

Cas où True est renvoyé car la chaîne commence par le préfixe spécifié:

str_value = 'FRUIT_ID_APPLE'
print(str_value.startswith('FRUIT_ID_'))

Contenu de sortie du résultat de l'exécution du code:

True

Cas où False est renvoyé car la chaîne ne commence pas par le préfixe spécifié:

str_value = 'FRUIT_ID_APPLE'
print(str_value.startswith('ITEM_ID'))

Contenu de sortie du résultat de l'exécution du code:

False

Vérifiez si la fin d'une chaîne se termine par une chaîne particulière: se termine par la méthode

La méthode endswith est similaire à la méthode startswith, mais la méthode startswith cible le début de la chaîne, alors qu'elle cible la fin.

La chaîne à la fin est appelée un suffixe.

Comme la méthode startswith, la méthode endswith est utilisée en spécifiant un suffixe comme premier argument. Le résultat est également renvoyé sous forme de valeur booléenne.

Cas où True est renvoyé car la chaîne se termine par le suffixe spécifié:

str_value = 'CAT_NAME'
print(str_value.endswith('_NAME'))

Contenu de sortie du résultat de l'exécution du code:

True

Cas où False est renvoyé car la chaîne ne se termine pas par le suffixe spécifié:

str_value = 'CAT_AGE'
print(str_value.endswith('_NAME'))

Contenu de sortie du résultat de l'exécution du code:

False

Bien que les méthodes beginwith et endswith puissent faire la même chose avec des tranches ...

Comme mentionné dans la section précédente, les chaînes peuvent être découpées pour extraire une plage de chaînes. Par exemple, vous pouvez obtenir la partie préfixe d'un nombre quelconque de caractères en procédant comme suit.

str_value = 'FRUIT_ID_APPLE'
print(str_value[:6])

Contenu de sortie du résultat de l'exécution du code:

FRUIT_

En outre, comme vous l'apprendrez dans un chapitre ultérieur, en Python, vous pouvez spécifier deux symboles égaux de demi-largeur et des valeurs arbitraires à gauche et à droite, telles que valeur sur le côté gauche == valeur sur le côté droit, et si les valeurs des deux côtés sont une Si vous le faites, ce sera Vrai, et s'il ne correspond pas, ce sera Faux.

Échantillon qui a la valeur True car les valeurs des deux côtés correspondent:

int_value = 100
print(int_value == 100)

Contenu de sortie du résultat de l'exécution du code:

True

Exemple qui a la valeur False car les valeurs des deux côtés ne correspondent pas:

int_value = 95
print(int_value == 100)

Contenu de sortie du résultat de l'exécution du code:

False

Avec des tranches et ces deux symboles égaux, vous pouvez faire la même chose que vous le feriez avec les méthodes beginwith et endswith. Par exemple, si vous spécifiez [: 9] comme une tranche comme indiqué ci-dessous, vous pouvez obtenir les 9 premiers caractères, donc si vous spécifiez le préfixe qui est censé être une chaîne de caractères sur le côté gauche et le côté droit, utilisez la méthode startswith. Vous pouvez obtenir la valeur booléenne True ou False comme quand.

str_value = 'FRUIT_ID_APPLE'
print(str_value[:9] == 'FRUIT_ID_')

Contenu de sortie du résultat de l'exécution du code:

True

Cependant, cette méthode d'écriture ne se comporte pas comme prévu si vous faites une erreur en comptant le nombre de caractères ou si vous spécifiez par inadvertance le nombre dans la tranche. Par exemple, le code suivant n'effectue pas le jugement attendu.

str_value = 'FRUIT_ID_APPLE'
print(str_value[:9] == 'FRUIT_ID')

Contenu de sortie du résultat de l'exécution du code:

False

Avec cette méthode d'écriture, il est difficile de comprendre instantanément le point "Qu'est-ce qui ne va pas ...?" À première vue, et le contenu du code semble également difficile à lire. La comparaison des préfixes (début des lettres) est encore plus difficile à lire côté suffixe (fin des lettres).

En ce qui concerne la vulnérabilité aux erreurs ici, il est stipulé que commence par et se termine par doit être utilisé même dans PEP 8 de la norme de codage Python.

Utilisez «». Startswith () et «». Endswith () au lieu de découper une chaîne pour vérifier si une chaîne a un préfixe ou un suffixe particulier.

Utilisez startswith () et endswith () pour un code propre et sans erreur: Guide de style de code Python

Si vous prenez un peu de temps lorsque d'autres personnes lisent le code, vous pouvez en saisir le contenu fermement, mais comme le temps est limité dans votre travail quotidien, le code idéal devrait être "saisir instantanément le contenu" autant que possible.

Sauf si vous avez une raison spécifique, l'utilisation commence par etc. au lieu de trancher selon PEP8.

Trouvez la position dans une chaîne qui contient une chaîne particulière: méthodes find, rfind, index, rindex

Dans cette section, vous découvrirez quatre méthodes de recherche de chaînes, rfind, index et rindex. La méthode find est fréquemment utilisée, mais les trois autres peuvent être relativement rarement nécessaires.

La méthode find est utilisée pour savoir où une chaîne particulière est contenue dans une chaîne.

Pour l'utiliser, spécifiez la chaîne de caractères que vous souhaitez rechercher dans le premier argument. La valeur de retour sera indexée au premier emplacement trouvé. Comme les index tels que les listes, les valeurs d'index commencent à 0 (le premier caractère est 0 dans l'index, le deuxième caractère est 1 dans l'index, etc.).

Par exemple, le code ci-dessous recherche le mot «chat». Puisque le résultat est 3 retourné, vous pouvez vérifier qu'il y a un caractère cat dans l'index de 3 (4ème caractère).

str_value = 'Je suis un chat. Il n'y a pas encore de nom.'
print(str_value.find('Chat'))

Contenu de sortie du résultat de l'exécution du code:

3

Si vous spécifiez l'entier d'index obtenu (3 cette fois) dans la chaîne de caractères, vous pouvez confirmer que la position correspond au caractère «cat».

str_value = 'Je suis un chat. Il n'y a pas encore de nom.'
print(str_value[3])

Contenu de sortie du résultat de l'exécution du code:

Chat

Si vous spécifiez une chaîne telle que cat au lieu de la lettre cat, l'index auquel cette chaîne commence sera retourné. Par conséquent, dans cet exemple, l'entier d'index renvoyé lorsque le caractère «cat» est spécifié a la même valeur que 3.

str_value = 'Je suis un chat. Il n'y a pas encore de nom.'
print(str_value.find('Être un chat'))

Contenu de sortie du résultat de l'exécution du code:

3

Si la chaîne de caractères spécifiée dans la recherche n'est pas trouvée, -1 est renvoyé.

str_value = 'Je suis un chat. Il n'y a pas encore de nom.'
print(str_value.find('chien'))

Contenu de sortie du résultat de l'exécution du code:

-1

En utilisant ceci, il peut également être utilisé pour juger "si une chaîne de caractères spécifique est incluse" selon que -1 est retourné.

Le deuxième argument est la valeur de départ de la plage d'index à rechercher. Par exemple, si 4 est spécifié, le comportement sera "Rechercher des chaînes de caractères dans la plage d'index après 4" (si omis, la recherche sera exécutée à partir du premier index 0).

Dans l'exemple ci-dessous, 3 et 4 sont spécifiés comme deuxième argument et il est confirmé que le résultat de la détection ou non de la chaîne de caractères change.

Exemple de cas où le caractère correspondant est trouvé:

str_value = 'Je suis un chat.'
print(str_value.find('Chat', 3))

Contenu de sortie du résultat de l'exécution du code:

3

Exemple de cas où le caractère correspondant n'est pas trouvé en raison de l'influence de l'index de départ:

str_value = 'Je suis un chat.'
print(str_value.find('Chat', 4))

Contenu de sortie du résultat de l'exécution du code:

-1

Le troisième argument est la valeur finale de l'index à rechercher. En cas d'omission, la recherche sera exécutée jusqu'à la dernière chaîne de caractères.

Veuillez noter que la valeur spécifiée ici n'est pas une condition "inférieure ou égale à" mais une condition "inférieure à". Par conséquent, si 3 est spécifié, l'index 3 ne sera pas inclus dans la cible d'index et jusqu'à 2 seront recherchés.

À la suite de la spécification de 3 pour le troisième argument, un exemple de cas où aucun résultat n'est trouvé dans la recherche:

str_value = 'Je suis un chat.'
print(str_value.find('Chat', 0, 3))

Contenu de sortie du résultat de l'exécution du code:

-1

En conséquence de la spécification de 4 pour le troisième argument, la plage est inférieure à 4, donc un exemple de cas où un caractère avec un index de 3 est frappé:

str_value = 'Je suis un chat.'
print(str_value.find('Chat', 0, 4))

Contenu de sortie du résultat de l'exécution du code:

3


À côté de la méthode find se trouve la méthode rfind.

Contrairement à la méthode find, la méthode rfind recherche à partir du côté droit de la chaîne de caractères. r est juste r dans le sens de "du côté droit".

Par exemple, si vous recherchez le caractère «chat» dans la chaîne de caractères "Je suis un chat. Je pense parfois que tout en étant un chat.", Recherche à partir de la droite et la position du premier appel est la valeur de retour. Puisqu'il est utilisé, la position du deuxième caractère «chat» est la cible.

str_value = 'Je suis un chat. Bien que je sois un chat, j'y pense parfois.'
print(str_value.rfind('Chat'))

Contenu de sortie du résultat de l'exécution du code:

11

Il convient de noter que bien que la recherche elle-même soit effectuée à partir de la droite, le numéro d'index du résultat est renvoyé sous la forme d'un index normal compté à partir de la gauche.

Comme mentionné dans la liste du chapitre précédent, si vous spécifiez -1, -2, -3, ... dans l'index, le caractère le plus à droite, le deuxième caractère à partir de l'extrémité droite et le troisième caractère à partir de l'extrémité droite, respectivement. Vous pouvez également accéder par index basé sur l'extrémité droite de la chaîne de caractères, telle que caractère ..., mais la méthode rfind renvoie la valeur de l'index normal basé sur l'extrémité gauche, donc si vous spécifiez l'index comme d'habitude Vous pouvez obtenir le caractère correspondant.

str_value = 'Je suis un chat. Bien que je sois un chat, j'y pense parfois.'
index = str_value.rfind('Chat')
print(str_value[index])

Contenu de sortie du résultat de l'exécution du code:

Chat

Les deuxième et troisième arguments sont la valeur de début et la valeur de fin (inférieure à) de la plage d'index à rechercher, comme dans la méthode find. Encore une fois, le numéro d'index ne vient pas de la droite, mais le numéro d'index de la gauche est utilisé comme un index normal. La recherche sera effectuée "depuis le côté droit" dans la plage d'index spécifiée.

str_value = 'Je suis un chat. Bien que je sois un chat, j'y pense parfois.'
print(str_value.rfind('Chat', 11))

Contenu de sortie du résultat de l'exécution du code:

11

str_value = 'Je suis un chat. Bien que je sois un chat, j'y pense parfois.'
print(str_value.rfind('Chat', 12))

Contenu de sortie du résultat de l'exécution du code:

-1


La méthode index se comporte un peu comme la méthode find. C'est également le comportement de rechercher la chaîne de caractères et d'obtenir le numéro de l'index trouvé.

Cependant, dans la méthode find, -1 a été renvoyé lorsque la chaîne de caractères recherchée n'a pas été trouvée, mais dans la méthode d'index, une erreur se produit au lieu de -1.

Exemple de cas qui se comporte comme find car la chaîne correspondante existe:

str_value = 'Je suis un chat.'
print(str_value.index('Chat'))

Contenu de sortie du résultat de l'exécution du code:

3

Exemple de cas où une erreur se produit car la chaîne de caractères correspondante est introuvable:

str_value = 'Je suis un chat.'
print(str_value.index('chien'))
ValueError: substring not found

substring signifie une partie d'une chaîne spécifique. Dans ces méthodes, il fait référence à la chaîne de caractères à rechercher comme premier argument. Par conséquent, le message d'erreur sera quelque chose comme "La chaîne de caractères spécifiée dans la recherche n'a pas été trouvée."


Comme vous pouvez le deviner à partir du nom, la dernière méthode rindex effectue une recherche à partir de la droite comme la méthode rfind, et se comporte comme une erreur si la chaîne de caractères spécifiée pour la recherche ne se trouve pas comme la méthode index.

str_value = 'Je suis un chat. Bien que je sois un chat, j'y pense parfois.'
print(str_value.rindex('Chat'))

Contenu de sortie du résultat de l'exécution du code:

11

str_value = 'Je suis un chat. Bien que je sois un chat, j'y pense parfois.'
str_value.rindex('chien')
ValueError: substring not found

Remplacer la chaîne par une autre chaîne: remplacer, traduire, méthodes maketrans

Dans cette section, vous découvrirez le remplacement des chaînes. Des contrôles tels que le remplacement d'une partie de chaîne de caractères spécifique par une autre chaîne de caractères sont applicables. Il cible trois méthodes: remplacer, traduire et maketrans. En particulier, la méthode de remplacement est fréquemment utilisée.


Tout d'abord, parlons de la méthode de remplacement. La méthode replace recherche une chaîne spécifique et remplace cette chaîne par une autre.

Spécifiez la chaîne de caractères à rechercher dans le premier argument et la chaîne de caractères après remplacement dans le deuxième argument. Par exemple, si vous souhaitez remplacer la partie "chat" dans la chaîne de caractères par "chien", écrivez comme suit.

str_value = 'Je suis un chat. Bien que je sois un chat, j'y pense parfois.'
print(str_value.replace('Chat', 'chien'))

Contenu de sortie du résultat de l'exécution du code:

Je suis un chien. Bien que je sois un chien, j'y pense parfois.

Le troisième argument est le nombre de remplacements. En cas d'omission, toutes les chaînes de caractères recherchées et touchées seront remplacées. Si 1 est spécifié, il ne sera remplacé qu'une seule fois, et si 2 est spécifié, il ne sera remplacé que deux fois. Dans le code ci-dessous, 1 est spécifié pour le troisième argument, donc seule la première partie de caractère "cat" est remplacée.

str_value = 'Je suis un chat. Bien que je sois un chat, j'y pense parfois.'
print(str_value.replace('Chat', 'chien', 1))

Contenu de sortie du résultat de l'exécution du code:

Je suis un chien. Bien que je sois un chat, j'y pense parfois.


Utilisez les méthodes translate et maketrans ensemble. Vous pouvez remplacer plusieurs caractères à la fois en spécifiant une combinaison spécifique du caractère avant le remplacement et du caractère après le remplacement.

De plus, la cible est "un personnage". Il ne peut pas être utilisé pour plusieurs chaînes de caractères, utilisez donc la méthode replace. Si vous devez remplacer beaucoup de caractères, vous pouvez utiliser la méthode translate pour les remplacer rapidement et avec un code simple.

La méthode maketrans est une méthode de création de données pour la combinaison de remplacements. Il peut être utilisé avec une instance d'une chaîne de caractères, mais il est plus courant de spécifier directement la classe à toucher ultérieurement (écrivez-la sous la forme str.maketrans).

Le nom de la méthode provient de la phrase anglaise make translation table. Puisque traduction signifie transfert ou interprète, et table signifie table, cela signifie créer une table de conversion de caractère en caractère.

Il y a deux façons de spécifier la valeur dans la méthode maketrans: "la méthode à spécifier par la clé et la valeur du dictionnaire" et "la méthode à spécifier par deux ensembles du premier argument et du deuxième argument".

Voyons d'abord comment définir dans le dictionnaire. Spécifiez le dictionnaire comme premier argument de la méthode maketrans, spécifiez le caractère avant le remplacement de la clé et le caractère après le remplacement de la valeur. Si vous avez plusieurs cibles, spécifiez plusieurs ensembles clé / valeur.

Cette fois, je vais essayer avec un code qui remplace les caractères de ponctuation par les combinaisons suivantes (à gauche avant le remplacement, à droite après le remplacement).

trans_table = str.maketrans(
    {
        '、': ',',
        '。': '.',
    }
)

Vous pouvez également spécifier une chaîne de caractères dans laquelle les caractères avant le remplacement sont définis dans l'ordre un caractère à la fois (dans cet exemple, les chaînes de caractères , .) dans le premier argument, et dans le deuxième argument, les chaînes de caractères après le remplacement sont classées caractère par caractère. Vous pouvez également spécifier la chaîne de caractères définie sur (dans cet exemple, la chaîne de caractères , .). Assurez-vous que l'ordre des caractères dans les premier et deuxième arguments est le même. Cette méthode d'écriture a le même comportement que lors de l'utilisation d'un dictionnaire.

trans_table = str.maketrans('、。', ',.')

Utilisons la méthode translate avec les données créées par la méthode maketrans. Spécifiez les données créées par la méthode maketrans dans le premier argument.

str_value = 'Miaou, j'ai essayé de l'essayer, mais personne n'est venu.'
print(str_value.translate(trans_table))

Contenu de sortie du résultat de l'exécution du code:

Miaou,Miaouと試みにやって見たが誰も来ない.


Dans cette section, vous avez découvert le remplacement de caractère à caractère ou de chaîne à caractère. Il existe également une méthode de remplacement (et pratique) telle que "remplacer quelque chose qui correspond à un modèle spécifique" en utilisant ce qu'on appelle une expression régulière.

Nous parlerons plus en détail des expressions régulières plus tard dans le chapitre sur les expressions régulières.

Chaînes de fractionnement: split, rsplit, splitlines, partition, méthodes de répartition

Dans cette section, vous découvrirez le fractionnement de chaînes. Cinq méthodes sont ciblées: split, rsplit, splitlines, partition et rpartition. La méthode de fractionnement la plus basique est particulièrement utilisée.

Le résultat de la division de la chaîne de caractères est une liste qui stocke la chaîne de caractères. Il est utilisé dans les cas où chaque valeur a une signification avec un délimiteur de caractère spécifique tel qu'un délimiteur virgule, un séparateur d'espace et un délimiteur de tabulation.


Commençons par la méthode split. split est un mot qui signifie «split».

Si vous spécifiez un délimiteur arbitraire dans le premier argument, une liste contenant les chaînes de caractères divisées par le délimiteur sera renvoyée.

Dans l'exemple ci-dessous, les chaînes de caractères sont divisées par des virgules demi-largeur pour créer une liste qui stocke chaque chaîne de caractères. Dans la méthode de fractionnement, la chaîne spécifiée par splitting (, dans cet exemple) n'est pas incluse dans la liste de résultats.

str_value = '100,200,300'
print(str_value.split(','))

Contenu de sortie du résultat de l'exécution du code:

['100', '200', '300']

Le deuxième argument est le nombre maximum de divisions. Par exemple, si vous spécifiez 2, il sera divisé deux fois et le nombre de résultats dans la liste sera de 3. La partie de la chaîne de caractères qui dépasse le nombre de fois n'est pas divisée et reste telle quelle à la dernière valeur de la liste de résultats.

str_value = '100,200,300,400,500'
print(str_value.split(',', 2))

Contenu de sortie du résultat de l'exécution du code:

['100', '200', '300,400,500']

Si le deuxième argument est omis, la division sera effectuée avec tous les délimiteurs.


La méthode rsplit, comme toute autre méthode avec un r au début, exécute le processus de fractionnement "du côté droit". Cependant, si le deuxième argument est omis, la division sera exécutée pour tous les délimiteurs, de sorte que le même résultat sera obtenu indépendamment du fait que la division soit de gauche ou de droite. En d'autres termes, il se comporte de la même manière que la méthode de fractionnement.

Exemple de code de rsplit qui donne le même résultat que split:

str_value = '100,200,300'
print(str_value.rsplit(','))

Contenu de sortie du résultat de l'exécution du code:

['100', '200', '300']

Lorsque le deuxième argument (nombre maximum de divisions) est spécifié, la division est effectuée "à partir de la droite", de sorte que la chaîne de caractères non divisée reste au début (extrémité gauche) de la liste.

str_value = '100,200,300,400,500'
print(str_value.rsplit(',', 2))

Contenu de sortie du résultat de l'exécution du code:

['100,200,300', '400', '500']


La méthode splitlines divise la chaîne par sauts de ligne. ligne est un mot qui signifie également ligne.

Dois-je spécifier une interruption dans la méthode de fractionnement? Cependant, l'expression des sauts de ligne peut changer en fonction de l'environnement tel que le système d'exploitation et la version, donc si vous ajoutez tout, le code deviendra compliqué.

Selon l'environnement, les sauts de ligne peuvent être représentés par «\ n» dans la chaîne, ou par «\ r \ n», par «\ r», ou tels qu'ils sont dans la chaîne en utilisant trois guillemets. Vous pouvez également mettre des fichiers.

Si vous essayez de sortir une chaîne de caractères contenant les caractères \ n et \ r \ n avec Jupyter sous Windows avec la fonction d'impression, les deux seront affichés sous forme de sauts de ligne.

print('a\nb')

Contenu de sortie du résultat de l'exécution du code:

a
b

print('a\r\nb')

Contenu de sortie du résultat de l'exécution du code:

a
b

Comme vous pouvez le voir, il existe plusieurs expressions pour les sauts de ligne, mais que faire si vous essayez de les fractionner avec la méthode de fractionnement? Par exemple, si la méthode de fractionnement spécifie des sauts de ligne séparés par \ n, lorsque les données que les sauts de ligne sont représentées par \ r \ n entrent.

Quand je l'essaie, la partie \ r reste dans le résultat comme indiqué ci-dessous, et ce n'est pas ce à quoi je m'attendais.

str_value = '100\r\n200\r\n300'
print(str_value.split('\n'))

Contenu de sortie du résultat de l'exécution du code:

['100\r', '200\r', '300']

Lorsque j'en traite dans un programme, je voudrais simplement "fractionner par sauts de ligne" sans me soucier de la différence des expressions de saut de ligne autour de cette zone. Dans de tels cas, la méthode splitlines est fournie, et en l'utilisant, vous pouvez simplement fractionner par sauts de ligne sans écrire de code compliqué.

Vous pouvez voir que le même résultat peut être obtenu en l'exécutant sur une chaîne de caractères contenant divers sauts de ligne comme indiqué ci-dessous.

Échantillon fractionné dans le cas où le saut de ligne est représenté par \ n:

str_value = '100\n200\n300'
print(str_value.splitlines())

Contenu de sortie du résultat de l'exécution du code:

['100', '200', '300']

Échantillon fractionné dans le cas où le saut de ligne est représenté par \ r \ n:

str_value = '100\r\n200\r\n300'
print(str_value.splitlines())

Contenu de sortie du résultat de l'exécution du code:

['100', '200', '300']

Échantillon fractionné dans le cas où le saut de ligne est représenté par \ r:

str_value = '100\r200\r300'
print(str_value.splitlines())

Contenu de sortie du résultat de l'exécution du code:

['100', '200', '300']

Échantillon fractionné dans le cas où les sauts de ligne sont écrits directement dans une représentation sous forme de chaîne avec trois guillemets consécutifs:

str_value = """100
200
300
"""
print(str_value.splitlines())

Contenu de sortie du résultat de l'exécution du code:

['100', '200', '300']


La méthode de partition, comme la méthode split, exécute un fractionnement en spécifiant un délimiteur. Cependant, elle diffère de la méthode de fractionnement sur les points suivants.

Je vais en fait écrire le code et l'essayer. Si vous essayez sur une chaîne contenant un deux-points comme exemple, vous pouvez voir que le résultat est divisé par les chaînes à gauche et à droite des deux points.

str_value = '100:200'
print(str_value.partition(':'))

Contenu de sortie du résultat de l'exécution du code:

('100', ':', '200')

Même si la chaîne contient plusieurs délimiteurs, elle ne sera divisée qu'une seule fois. Le délimiteur reste dans la valeur à droite du taple.

str_value = '100:200:300:400'
print(str_value.partition(':'))

Contenu de sortie du résultat de l'exécution du code:

('100', ':', '200:300:400')

Si aucun délimiteur n'est spécifié dans l'argument de la chaîne, la chaîne d'origine est placée dans le premier index du taple et des caractères vides sont définis dans les deuxième et troisième index. Il n'inclura pas le délimiteur. Le nombre de valeurs de taple reste à 3.

str_value = '100:200'
print(str_value.partition(','))

Contenu de sortie du résultat de l'exécution du code:

('100:200', '', '')


La méthode de répartition finale est divisée "à partir de la droite", comme vous pouvez le deviner à partir du nom de la méthode. L'autre comportement est le même que celui de la partition.

str_value = '100:200:300:400:500'
print(str_value.rpartition(':'))

Contenu de sortie du résultat de l'exécution du code:

('100:200:300:400', ':', '500')

Insérer des variables etc. dans des chaînes ou insérer des valeurs dans un format spécifique: symbole%, format, méthode format_map, chaînes f

Lors de la création d'une chaîne de caractères avec la valeur d'une variable insérée, il existe une méthode de concaténation des chaînes de caractères avec le symbole «+». Par exemple, écrivez comme suit.

name = 'Tama'
concatenated_str = 'Le nom de mon chat est' + name + 'est.'
print(concatenated_str)

Contenu de sortie du résultat de l'exécution du code:

Le nom de mon chat est Tama.

Cependant, si la valeur de la variable est une valeur autre qu'une chaîne de caractères, telle qu'un entier, cette méthode entraînera une erreur. Par exemple, si vous essayez de concaténer une variable entière appelée ʻage` comme indiqué ci-dessous, une erreur se produira.

age = 5
concatenated_str = 'Quel âge a ton chat' + age + 'Je suis vieux.'
TypeError: can only concatenate str (not "int") to str

Puisque concaténer est un mot qui signifie "concaténer", le message d'erreur sera quelque chose comme "seules une chaîne et une chaîne (pas un entier) peuvent être concaténées".

Si vous souhaitez utiliser une variable d'un type autre qu'un entier ou une autre chaîne de caractères pour concaténer les chaînes de caractères, vous devez faire de la variable cible une chaîne de caractères avec un processus appelé cast (le cast sera décrit dans un chapitre ultérieur). ).

La conversion en chaîne de caractères peut être réalisée en passant la variable cible etc. à l'argument de la fonction str (). Si vous réécrivez le code qui a donné l'erreur plus tôt afin qu'il soit converti en une chaîne de caractères afin que l'erreur ne se produise pas, ce sera comme suit.

age = 5
concatenated_str = 'Quel âge a ton chat' + str(age) + 'Je suis vieux.'
print(concatenated_str)

Contenu de sortie du résultat de l'exécution du code:

Mon chat a 5 ans.

Même avec cette méthode d'écriture, j'ai pu atteindre l'objectif "d'insérer des variables dans des chaînes de caractères et de les concaténer". Cependant, la description est un peu compliquée (symbole +, pièce moulée, etc.), et la partie qui était censée être une variable dans la chaîne de caractères devient une valeur d'un autre type d'une certaine manière, j'ai donc oublié de la caster. Il n'est pas rare qu'une erreur se produise.

L'introduction a été allongée, mais dans cette section, nous allons apprendre comment insérer des variables dans des chaînes sous une forme plus simple et plus lisible dans de tels cas.


Tout d'abord, nous allons apprendre à écrire en utilisant le symbole «%». Comme mentionné dans le chapitre précédent, le symbole «%» peut être utilisé comme un entier pour calculer le reste (reste).

6 % 4

Contenu de sortie du résultat de l'exécution du code:

2

En revanche, dans la chaîne de caractères, il est utilisé pour le comportement d'insertion d'une variable dans la chaîne de caractères à l'aide du symbole «%». Utilisez le symbole «%» et les caractères alphabétiques qui représentent un format spécifique dans la chaîne. Tout d'abord, j'écrirai l'exemple de code avec une chaîne de caractères dans la notation de % s avec s ajouté comme" format tel qu'il est (chaîne) ".

Divisez l'espace entre la chaîne de caractères et la variable que vous souhaitez insérer avec le symbole «%», et écrivez ce qui suit sous la forme d'une chaîne de caractères à gauche et d'une variable à droite.

age = 5
concatenated_str = 'Quel âge a ton chat%J'ai des années.' % age
print(concatenated_str)

Contenu de sortie du résultat de l'exécution du code:

Mon chat a 5 ans.

La partie où la variable est insérée n'est que «% s», et plusieurs symboles «+», etc. ont disparu, ce qui donne une description soignée. De plus, le cast (str ()) de la variable cible en chaîne de caractères peut être omis.

En plus de «% s», il existe diverses spécifications telles que «% d», «% .3f» et «% x». J'ai mentionné diverses choses dans la fonction de formatage dans le chapitre sur les fonctions intégrées, mais chacune a la signification et le comportement suivants (il y a différentes choses autres que celles mentionnées ici. J'ai expliqué diverses choses dans la section des fonctions de format, donc ici 10 Je vais omettre l'explication des nombres de base et des nombres hexadécimaux).

--% s-> chaîne. Il est traité tel quel comme une chaîne de caractères (similaire à la conversion avec la fonction str ()). Je pense qu'il sera utilisé le plus souvent lors de l'insertion de la valeur d'une variable dans une chaîne de caractères. --% d-> chiffre. Il est inséré dans la chaîne de caractères sous la forme d'une valeur décimale comprise entre 0 et 9, utilisée dans la vie quotidienne. --% .3f-> float. Il est inséré dans la chaîne sous forme de nombre à virgule flottante. La partie telle que 3 est un nombre arbitraire, et c'est une spécification du nombre de places après la virgule décimale à afficher. Si vous spécifiez 3, il sera reflété dans la chaîne de caractères avec une valeur numérique telle que «0,000». --% x-> hex. Il est inséré dans la chaîne en hexadécimal.

Écrivons en fait un code autre que % s et vérifions le comportement. Le premier est «% d». % d insère la valeur dans la chaîne sous la forme d'un entier décimal. Même si vous spécifiez une valeur qui inclut une fraction telle que «5,5», elle sera convertie en un entier, elle sera donc sortie sous forme de chaîne de caractères avec une valeur telle que «5».

age = 5.5
concatenated_str = 'Quel âge a ton chat%J'ai d ans.' % age
print(concatenated_str)

Contenu de sortie du résultat de l'exécution du code:

Mon chat a 5 ans.

Lorsque «% d» est utilisé, la valeur de la variable spécifiée, etc. doit être une «valeur numérique qui peut être convertie en un entier». Vous pouvez spécifier des nombres à virgule flottante et des entiers, mais si vous spécifiez autre chose, par exemple, une chaîne de caractères, une erreur se produira (si vous devez insérer une chaîne de caractères, utilisez % s etc.) ..

name = 'Tama'
concatenated_str = 'Le nom de mon chat est%C'est d.' % name
TypeError: %d format: a number is required, not str

Le message d'erreur est quelque chose comme "Le format% d nécessite un nombre, pas une chaîne."

Avec % .3f, la valeur de la variable spécifiée est insérée sous forme de chaîne avec un nombre spécifique de chiffres après la virgule décimale. Si vous spécifiez le format «% .3f» avec une variable avec la valeur «5.5», il sera inséré dans la chaîne avec la valeur «5.500». Si vous définissez % .2f, il sera affiché jusqu'au deuxième chiffre après la virgule décimale et sera inséré avec une valeur telle que 5,50.

age = 5.5
concatenated_str = 'Quel âge a ton chat%.J'ai 3 ans.' % age
print(concatenated_str)

Contenu de sortie du résultat de l'exécution du code:

Mon chat a 5 ans.J'ai 500 ans.

Si vous souhaitez insérer plusieurs variables dans une chaîne, utilisez des crochets pour spécifier les multiples variables. Écrivez en tapple, par exemple (nom, âge).

name = 'Tama'
age = 5
concatenated_str = \
    'Le nom de mon chat est%s. L'âge est%J'ai des années.' % (name, age)
print(concatenated_str)

Contenu de sortie du résultat de l'exécution du code:

Le nom de mon chat est Tama. J'ai 5 ans.

Si la spécification telle que «% s» dans la chaîne de caractères et le nombre de valeurs dans le taple ne correspondent pas, une erreur se produira (similaire à une erreur lorsque le nombre ne correspond pas dans l'argument de la fonction). n'est-ce pas).

Dans le code ci-dessous, il y a trois spécifications % s dans la chaîne, mais il n'y a que deux variables du côté taple, donc une erreur se produit.

name = 'Tama'
age = 5
concatenated_str = \
    'j'ai%Le nom de s est%s. L'âge est%J'ai des années.' % (name, age)
TypeError: not enough arguments for format string

Le message d'erreur sera un message tel que "Il n'y a pas assez d'arguments (chaque variable) requis pour le formatage de la chaîne de caractères (insérer des variables ici)".

Une erreur se produira même si le nombre de caisses du côté taple est important.

name = 'Tama'
age = 5
concatenated_str = \
    'Le nom de mon chat est%s. J'ai 3 ans.' % (name, age)
TypeError: not all arguments converted during string formatting

Un message d'erreur tel que "Pendant le formatage de la chaîne (insertion de variables), tous les arguments (chaque variable du taple) n'ont pas pu être convertis (insérés) (en raison d'un nombre insuffisant de% s)" Ce sera le contenu.

De plus, comme les taples sont utilisés pour insérer plusieurs valeurs, si vous souhaitez insérer les taples eux-mêmes, cela ne fonctionnera pas tel quel. Si vous spécifiez une variable tapple qui n'a qu'une seule notation telle que % s et stocke plusieurs valeurs, il sera jugé que les nombres ne correspondent pas comme décrit ci-dessus et une erreur se produira. Dans un tel cas, un contrôle tel que la conversion du taple en une chaîne de caractères devient nécessaire.

En plus de cela, tout comme il devient difficile à lire à mesure que le nombre d'arguments augmente dans la fonction, il est facile de faire des erreurs en contrôlant l'ordre, etc. lorsque la description de % s augmente dans la chaîne de caractères. Ce sera. Je veux une fonction comme un argument de mot-clé.

Afin d'améliorer le problème du contrôle de % autour de cela, la méthode de formatage décrite plus loin a été ajoutée dans la version Python après le contrôle par %.


Après avoir contrôlé avec le symbole %, nous allons apprendre la méthode de formatage. Il peut être utilisé de la même manière que l'insertion d'une valeur telle qu'une variable en utilisant le symbole % dans une chaîne de caractères, mais il s'agit d'une fonction plus récente dans la version Python, et la quantité de code écrite augmentera un peu, mais divers Le nombre de fonctions a augmenté et les problèmes ont été améliorés.

Pour l'utiliser, ajoutez d'abord les parenthèses {} dans la chaîne où vous voulez mettre la valeur de la variable. Après cela, exécutez la méthode format avec cette chaîne de caractères et spécifiez la variable que vous souhaitez insérer comme argument. Un exemple simple ressemblerait à ceci:

name = 'Tama'
formatted_str = 'Le nom de mon chat est{}est.'
formatted_str = formatted_str.format(name)

print(formatted_str)

Contenu de sortie du résultat de l'exécution du code:

Le nom de mon chat est Tama.

Si vous souhaitez insérer plusieurs variables, définissez les parenthèses {} dans plusieurs chaînes.

name = 'Tama'
age = 5
formatted_str = 'Le nom de mon chat est{}est. L'âge est{}Je suis vieux.'
formatted_str = formatted_str.format(name, age)

print(formatted_str)

Contenu de sortie du résultat de l'exécution du code:

Le nom de mon chat est Tama. J'ai 5 ans.

Lorsque plusieurs arguments sont spécifiés, les valeurs sont définies dans la partie {} dans l'ordre. Par exemple, lorsque (nom, âge) est spécifié dans l'argument, la valeur de l'argument de nom est définie dans la première partie {} de la chaîne de caractères et ʻage est définie dans la partie {} `suivante. La valeur de l'argument de est reflétée.

Si vous souhaitez ajuster cet ordre, définissez une valeur entière entre parenthèses de «{}» et écrivez quelque chose comme «{0}» ou «{1}». L'entier entre parenthèses est le numéro de l'argument à partir de 0 (le premier argument est 0, le suivant est 1, le suivant est 2 ...).

Lorsque vous écrivez réellement le code comme suit, le troisième argument (name) est défini dans la chaîne de caractères avant la valeur du deuxième argument (ʻage`). Peut être confirmé.

animal = 'Chat'
name = 'Tama'
age = 5
formatted_str = 'j'ai{0}Est le nom{2}est. L'âge est{1}Je suis vieux.'
formatted_str = formatted_str.format(animal, age, name)

print(formatted_str)

Contenu de sortie du résultat de l'exécution du code:

Le nom de mon chat est Tama. J'ai 5 ans.

Si vous voulez utiliser les parenthèses de {} telles quelles, et que vous voulez également insérer des variables dans la méthode de format, vous pouvez double-écrire {{}} et les parenthèses. Elle est traitée comme une chaîne de parenthèses normale ({}) qui est ignorée par la méthode de format (parfois appelée échappement de ces contrôles).

Dans l'exemple ci-dessous, vous pouvez voir que les parenthèses échappées {} restent dans la sortie même si vous utilisez la méthode format.

name = 'Tama'
age = 5
formatted_str = 'j'ai{{Chat}}Est le nom{}est. L'âge est{}Je suis vieux.'
formatted_str = formatted_str.format(name, age)

print(formatted_str)

Contenu de sortie du résultat de l'exécution du code:

j'ai{Chat}Le nom de est Tama. J'ai 5 ans.

Vous pouvez également spécifier une fusion de variable comme un argument de mot-clé en écrivant le nom de l'argument entre parenthèses, comme «{name}» ou «{age}». Vous pouvez éviter les erreurs dans l'ordre des arguments, et vous pouvez rendre le code facile à lire même s'il y a de nombreux arguments.

cat_name = 'Tama'
cat_age = 5
formatted_str = 'Le nom de mon chat est{name}est. L'âge est{age}Je suis vieux.'
formatted_str = formatted_str.format(
    name=cat_name,
    age=cat_age,
)

print(formatted_str)

Contenu de sortie du résultat de l'exécution du code:

Le nom de mon chat est Tama. J'ai 5 ans.

Les styles d'écriture qui utilisent cet argument de mot-clé sont fréquemment utilisés au travail. Pour une simple insertion de valeur de variable, le traitement utilisant le symbole % est souvent utilisé, mais lorsque le nombre de variables est grand (3 ou plus, etc.), des mots-clés sont utilisés dans la méthode de format pour la lisibilité. Il est souvent décrit à l'aide d'arguments. Au fur et à mesure que le nombre d'arguments augmente, il devient difficile à lire et il devient facile de faire des erreurs, alors utilisons activement les arguments de mots-clés.

Ce qui suit est une façon d'écrire légèrement plus avancée et moins susceptible d'être utilisée, mais si la valeur spécifiée entre parenthèses de {} est une liste ou un dictionnaire, elle peut être appelée un index.

Par exemple, écrire «{0}» fait référence à la variable du premier argument, mais si la valeur du premier argument est un dictionnaire avec la clé «nom», écrivez «{0 [nom]}». Vous pouvez développer la valeur de la clé name dans le dictionnaire en une chaîne avec. Dans cet exemple, le premier argument ({0}) est utilisé, mais il peut bien sûr être utilisé après le deuxième argument.

dict_value = {
    'name': 'Tama',
    'age': 5,
}
formatted_str = \
    'Le nom de mon chat est{0[name]}est. L'âge est{0[age]}Je suis vieux.'
formatted_str = formatted_str.format(dict_value)

print(formatted_str)

Contenu de sortie du résultat de l'exécution du code:

Le nom de mon chat est Tama. J'ai 5 ans.

Vous pouvez faire la même chose avec les listes. Par exemple, si vous spécifiez une variable dans la liste comme premier argument et écrivez «{0 [0]}», la valeur de l'index 0 du premier argument, et si vous écrivez «{0 [1]}», l'index 1 du premier argument La valeur est augmentée.

list_value = [
    'Tama',
    5,
]
formatted_str = 'Le nom de mon chat est{0[0]}est. L'âge est{0[1]}Je suis vieux.'
formatted_str = formatted_str.format(list_value)

print(formatted_str)

Contenu de sortie du résultat de l'exécution du code:

Le nom de mon chat est Tama. J'ai 5 ans.

Si vous utilisez beaucoup ce style, il peut être difficile de lire le code car les parenthèses et les numéros d'index sont continus. Même en utilisant une liste ou un dictionnaire, la même chose peut être faite en définissant la valeur de l'argument mot-clé seul dans la chaîne de caractères (par exemple, sous la forme de {nom}) et en se référant à l'index lors de la spécification de l'argument. , Si le code devient difficile à lire, il est recommandé d'écrire l'argument mot-clé seul. Voici un exemple de réécriture.

list_value = [
    'Tama',
    5,
]
formatted_str = 'Le nom de mon chat est{name}est. L'âge est{age}Je suis vieux.'
formatted_str = formatted_str.format(
    name=list_value[0],
    age=list_value[1],
)

print(formatted_str)

Contenu de sortie du résultat de l'exécution du code:

Le nom de mon chat est Tama. J'ai 5 ans.

J'ai utilisé la notation «{0}» comme premier argument dans l'exemple, mais bien sûr, vous pouvez l'écrire de différentes manières, par exemple en utilisant des arguments de mots-clés. Par exemple, vous pouvez écrire {name_dict [cat_name]} (dans l'exemple, la chaîne de caractères est devenue plus longue, donc les parenthèses et les sauts de ligne de () sont utilisés).

name_dict = {'cat_name': 'Tama'}
age_list = [5]

formatted_str = (
    'Le nom de mon chat est{name_dict[cat_name]}est.'
    'L'âge est{age_list[0]}Je suis vieux.'
).format(
    name_dict=name_dict,
    age_list=age_list,
)

print(formatted_str)

Contenu de sortie du résultat de l'exécution du code:

Le nom de mon chat est Tama. J'ai 5 ans.

Quant à savoir comment accéder au dictionnaire pour une valeur de clé spécifique dans une chaîne, notez que vous ne pouvez pas utiliser de variables pour les clés.

Vous pouvez utiliser des variables comme clés pour faire référence aux valeurs d'un dictionnaire normal. Par exemple, vous pouvez accéder aux valeurs de dictionnaire suivantes (écrites sous la forme «[name_key]»).

dict_value = {'cat_name': 'Tama'}
name_key = 'cat_name'
print(dict_value[name_key])

Contenu de sortie du résultat de l'exécution du code:

Tama

D'un autre côté, la référence de la clé de valeur du dictionnaire dans la chaîne de caractères n'est pas écrite sous la forme {dict_value ['name']}, mais directement décrite sans guillemets (`` symbole etc.) comme [name] . Faire. Dans ce cas, l'accès se fera avec le nom de la clé «nom» au lieu du nom de la variable «nom». Si vous souhaitez insérer une valeur dans une chaîne de caractères en utilisant une variable pour une clé spécifique, vous ne pouvez pas utiliser une variable pour la clé dans la chaîne de caractères, donc à l'endroit spécifié par l'argument en dehors de la chaîne de caractères comme indiqué ci-dessous ( Il doit être défini (en écrivant name = dict_value [name_key] `).

name_key = 'name'
age_key = 'age'
dict_value = {
    name_key: 'Tama',
    age_key: 5,
}

formatted_str = 'Le nom de mon chat est{name}est. L'âge est{age}Je suis vieux.'
formatted_str = formatted_str.format(
    name=dict_value[name_key],
    age=dict_value[age_key],
)

print(formatted_str)

Contenu de sortie du résultat de l'exécution du code:

Le nom de mon chat est Tama. J'ai 5 ans.

Ensuite, vous apprendrez à écrire avec un signe deux-points entre parenthèses de {}. Mettez un deux-points demi-largeur entre parenthèses et placez la variable cible (la partie écrite comme «{0}» ou «{1}» selon l'ordre des arguments ou «{name}» par argument de mot-clé) sur le côté gauche des deux points. Vous pouvez insérer une valeur dans un format spécifique en l'écrivant et en spécifiant une chaîne de format (telle que «.3f») à droite des deux points. Écrivez avec deux points, comme «{0: .3f}» ou «{name: .3f}».

La partie excluant «%» comme «% d» et «% .3f» lors de l'écriture à l'aide du symbole «%» est applicable, et la fonction fonctionne de la même manière que celles (par exemple, «.3f»). Si vous spécifiez, le comportement est le même, comme l'affichage sous la forme d'une chaîne de caractères jusqu'au troisième chiffre après la virgule décimale).

Dans l'exemple ci-dessous, l'argument de mot-clé ʻage est inséré et la spécification à afficher jusqu'au troisième chiffre après la virgule décimale est spécifiée dans la chaîne de caractères comme {age: .3f} `. Vous pouvez voir que la chaîne de caractères du résultat de sortie est «5.500» sous la forme d'un affichage jusqu'à la troisième place au lieu de la valeur d'origine «5.5».

age = 5.5
formatted_str = 'L'âge du chat{0:.3f}Je suis vieux.'
formatted_str = formatted_str.format(
    age,
)

print(formatted_str)

Contenu de sortie du résultat de l'exécution du code:

L'âge du chat est de 5 ans.J'ai 500 ans.


La dernière méthode de cette section est format_map.

La méthode format_map se comporte un peu comme la méthode format. Cependant, l'argument prend la forme de la spécification d'un dictionnaire. Chaque clé et valeur définies dans le dictionnaire d'arguments sont développées comme si l'argument de mot-clé était utilisé dans la méthode de format, et chaque valeur est développée dans la chaîne.

dict_value = {
    'name': 'Tama',
    'age': 5,
}
formatted_str = 'Le nom de mon chat est{name}est. L'âge est{age}Je suis vieux.'
formatted_str = formatted_str.format_map(dict_value)
print(formatted_str)

Contenu de sortie du résultat de l'exécution du code:

Le nom de mon chat est Tama. J'ai 5 ans.

Comme mentionné dans le chapitre sur les fonctions, j'ai appris que si vous spécifiez deux astérisques demi-largeur et un dictionnaire comme arguments lors de l'exécution d'une fonction (ou d'une méthode), les clés et les valeurs du dictionnaire seront développées en arguments de mots-clés. .. En combinant cette méthode d'écriture avec la fonction format, vous pouvez réellement obtenir le même comportement sans utiliser la méthode format_map. Par exemple, si vous spécifiez ** dict_value dans l'argument de la méthode format comme indiqué ci-dessous, vous pouvez obtenir le même résultat que lors de l'utilisation de la méthode format_map.

dict_value = {
    'name': 'Tama',
    'age': 5,
}
formatted_str = 'Le nom de mon chat est{name}est. L'âge est{age}Je suis vieux.'
formatted_str = formatted_str.format(**dict_value)
print(formatted_str)

Contenu de sortie du résultat de l'exécution du code:

Le nom de mon chat est Tama. J'ai 5 ans.

Pourquoi la méthode format_map est-elle fournie lorsque la méthode format donne le même résultat que la méthode format_map? Les raisons sont les suivantes. Cependant, il y a de rares fois où format_map est nécessaire lorsqu'un contrôle précis est nécessaire, et la méthode format_map est utilisée moins fréquemment.


À la fin de cette section, nous aborderons également les f-strings.

f-strings est une fonction qui vous permet d'insérer des variables etc. dans une chaîne de caractères ou d'exécuter du code Python en ajoutant le caractère f avant le guillemet (guillemet simple etc.) de la chaîne de caractères.

Mettez la partie variable et la partie code Python entre parenthèses {} comme la méthode format.

L'exemple de code simple est le suivant. Notez que la lettre f est ajoutée au début de la partie chaîne de cat ... et que la variable name est incluse dans la chaîne résultante sans méthodes telles que format. S'il vous plaît.

name = 'Tama'
txt = f'Le nom du chat est{name}est.'
print(txt)

Contenu de sortie du résultat de l'exécution du code:

Le nom du chat est Tama.

L'utilisation de chaînes f a l'avantage que vous pouvez insérer des variables directement et que vous n'avez pas besoin d'appeler la méthode format, de sorte que la quantité de code peut être raccourcie. Bien que la méthode d'écriture soit assez différente, le contenu est similaire à la méthode de format.

Vous pouvez également écrire le traitement en Python entre les parenthèses de {} dans les chaînes f. Par exemple, vous pouvez ajouter la chaîne de caractères comme suit.

age = 5
print(f'l'année prochaine{age + 1}Je serai vieux.')

Contenu de sortie du résultat de l'exécution du code:

J'aurai 6 ans l'année prochaine.

Vous pouvez également exécuter des fonctions dans la chaîne de caractères.

def get_name():
    return 'Tama'


print(f'Le nom du chat est{get_name()}est.')

Contenu de sortie du résultat de l'exécution du code:

Le nom du chat est Tama.

Pour spécifier le format (par exemple, le nombre de caractères après le point décimal dans la méthode format) ou comment écrire à l'aide du symbole %, tout comme la méthode format, le symbole deux-points demi-largeur (: ), Et spécifiez le format sur le côté droit.

value = 123.456789
print(f'La valeur incluant le troisième chiffre après la virgule décimale est{value:.3f}est.')

Contenu de sortie du résultat de l'exécution du code:

La valeur incluant le troisième chiffre après la virgule décimale est 123.C'est 457.

Cette partie de spécification de format (la partie qui est «.3f» dans le code) est appelée un spécificateur de format. Si vous lisez le code à l'intérieur de Python, le nom de l'argument etc. est format_spec etc., mais ce nom d'argument est dérivé du spécificateur de format.

Dans les chaînes f, vous pouvez également spécifier une variable dans la partie spécificateur de format en insérant une autre parenthèse {} (appelée imbrication) dans cette partie spécificateur de format (format selon les conditions). Vous pouvez modifier le spécificateur).

format_spec = '.2f'
value = 123.456789
print(f'La valeur incluant le deuxième chiffre après la virgule décimale est{value:{format_spec}}est.')

Contenu de sortie du résultat de l'exécution du code:

La valeur incluant le deuxième chiffre après la virgule décimale est 123.C'est 46.

Joindre les valeurs de la liste en une seule chaîne avec n'importe quelle chaîne: méthode de jointure

La méthode join joint des valeurs telles qu'une liste contenant une chaîne de caractères arbitraire avec la chaîne de caractères spécifiée entre les deux.

Vous pouvez utiliser des variables pour la chaîne de caractères entre elles, mais dans de nombreux cas, des caractères fixes ou des chaînes de caractères sont spécifiés directement. Par exemple, lorsque vous souhaitez concaténer des valeurs de liste séparées par des virgules, vous pouvez les écrire sous la forme «», «. Join». Spécifiez la liste (ou la valeur telle que taple) que vous souhaitez concaténer dans le premier argument de la méthode.

Exemple de concaténation de listes (variable appelée ʻanimals`) séparées par des virgules:

animals = ['Chat', 'chien', 'lapin']
print(','.join(animals))

Contenu de sortie du résultat de l'exécution du code:

Chat,chien,lapin

Exemple de concaténation de listes avec deux traits de soulignement (__):

animals = ['Chat', 'chien', 'lapin']
print('__'.join(animals))

Contenu de sortie du résultat de l'exécution du code:

Chat__chien__lapin

Une erreur se produira si le contenu de la liste est autre que des chaînes (valeurs numériques, etc.).

int_list = [1, 2, 3]
print(','.join(int_list))
TypeError: sequence item 0: expected str instance, int found

Les magasins de valeurs ordonnées, telles que les listes et les tapples, sont également collectivement appelés séquences. Par conséquent, le message d'erreur sera quelque chose comme "L'élément d'index 0 (élément) de la séquence (liste) avait une valeur entière (int) dans l'instance supposée de la chaîne de caractères (str)".

Obtenez le nombre de fois qu'une chaîne particulière apparaît dans une chaîne: méthode count

La méthode count renvoie le nombre de cas dans lesquels la chaîne de caractères spécifiée dans le premier argument est incluse dans la chaîne de caractères cible.

4 est renvoyé car il y a 4 caractères "cat" dans la chaîne Exemple:

txt = (
    'Je suis un chat.'
    'Après cela, j'ai rencontré beaucoup de chats, mais je n'ai jamais rencontré une telle roue.'
    'Le chat est venu et le chat est venu et a commencé à pleurer fort même la nuit.'
)
print(txt.count('Chat'))

Contenu de sortie du résultat de l'exécution du code:

4

Le deuxième argument est l'index de début de la plage de recherche et le troisième argument est la valeur moins 1 de l'index de fin de la plage de recherche.

Exemple pour rechercher la plage de chaînes de caractères de l'index de 0 à 11:

txt = (
    'Je suis un chat.'
    'Après cela, j'ai rencontré beaucoup de chats, mais je n'ai jamais rencontré une telle roue.'
    'Le chat est venu et le chat est venu et a commencé à pleurer fort même la nuit.'
)
print(txt.count('Chat', 0, 12))

Contenu de sortie du résultat de l'exécution du code:

2

Correspond aux valeurs de l'entier à droite et de l'entier à droite des deux-points utilisés dans la tranche, respectivement. En d'autres termes, pour vérifier la plage à rechercher, vous pouvez la découper dans la chaîne de caractères suivante (spécifiez 0 du deuxième argument et 12 du troisième argument de l'exemple de code ci-dessus en tranches J'ai).

print(txt[0:12])

Contenu de sortie du résultat de l'exécution du code:

Je suis un chat. Puis chat

Supprimez certains caractères, tels que les espaces blancs, des bords de la chaîne: méthodes strip, lstrip, rstrip

La méthode strip supprime certains caractères au début et à la fin de la chaîne. strip est un mot qui signifie «supprimer».

Vous pouvez également supprimer une chaîne de caractères spécifique en spécifiant un caractère vide (remplacer par un caractère vide) avec la méthode replace, mais la méthode strip présente les différences suivantes par rapport à la méthode replace.

Commençons par vérifier le comportement dans le cas où l'argument est omis. Poursuivez avec une chaîne de caractères qui comprend des caractères vides tels que des espaces et des sauts de ligne (\ n est le caractère qui représente un saut de ligne) aux deux extrémités de la chaîne de caractères comme indiqué ci-dessous.

txt = 'Je suis un chat.\n\n'
print(txt)

Contenu de sortie du résultat de l'exécution du code:

Je suis un chat.


Si vous parcourez la méthode de la bande, vous pouvez voir que les caractères vides aux deux extrémités ont été supprimés.

txt = 'Je suis un chat.\n\n'
print(txt.strip())

Contenu de sortie du résultat de l'exécution du code:

Je suis un chat.

Si une chaîne de caractères est spécifiée comme premier argument, le processus de suppression est exécuté aux deux extrémités, un caractère à la fois dans cette chaîne de caractères. Par exemple, si vous spécifiez la chaîne de caractères «chat chien» comme argument, le processus de suppression sera exécuté jusqu'à ce que les caractères ne soient plus «chat» ou «chien» des deux extrémités.

txt = 'Chat chien chat lapin loup chien chat chien'
print(txt.strip('chat chien'))

Contenu de sortie du résultat de l'exécution du code:

Loup lapin


La méthode lstrip est une méthode qui supprime les caractères uniquement à l'extrémité gauche de la méthode strip. Je devient l sur la gauche.

L'utilisation et les arguments sont les mêmes que la méthode strip. Dans le code ci-dessous, vous pouvez voir que les lettres «chat» et «chien» à l'extrême droite restent.

txt = 'Chat chien chat lapin loup chien chat chien'
print(txt.lstrip('chat chien'))

Contenu de sortie du résultat de l'exécution du code:

Lapin loup chien chat chien


Comme vous pouvez le voir dans le flux de la méthode lstrip, etc., la méthode rstrip supprime les caractères uniquement à l'extrémité droite. Le r au début du nom de la méthode est le r de droite. L'utilisation est la même que pour les méthodes strip et lstrip.

txt = 'Chat chien chat lapin loup chien chat chien'
print(txt.rstrip('chat chien'))

Contenu de sortie du résultat de l'exécution du code:

Chat chien chat lapin loup

Mettre la chaîne en majuscules: méthode supérieure

La méthode supérieure convertit la chaîne en majuscules. La partie chaîne de caractères de l'alphabet sera convertie.

Le nom de la méthode vient des majuscules, ce qui signifie «majuscules».

txt = 'Apple and orange'
print(txt.upper())

Contenu de sortie du résultat de l'exécution du code:

APPLE AND ORANGE

Non seulement les caractères demi-largeur mais aussi les caractères pleine largeur peuvent être convertis de la même manière.

txt = 'Apple'
print(txt.upper())

Contenu de sortie du résultat de l'exécution du code:

APPLE

Rendre la chaîne toute inférieure: méthode inférieure

La méthode inférieure, contrairement à la méthode supérieure, convertit la partie supérieure de l'alphabet en une partie inférieure. Puisqu'il signifie «minuscule» en minuscule, le nom de la méthode en est dérivé.

L'utilisation et le comportement sont les mêmes que pour la méthode supérieure, seule la conversion entre majuscules et minuscules est inversée.

txt = 'Apple And Orange'
print(txt.lower())

Contenu de sortie du résultat de l'exécution du code:

apple and orange

Remplissez une chaîne de nombres avec des zéros: méthode zfill

Le processus d'ajout de 0 à gauche d'un entier arbitraire jusqu'à ce qu'il atteigne un certain nombre de caractères est appelé remplissage à zéro ou remplissage à zéro.

Par exemple, si vous remplissez les caractères «135» à 5 caractères avec zéro remplissage, vous obtenez «00135».

La méthode zfill gère ce processus de remplissage zéro. Dans le premier argument, spécifiez le nombre de caractères dans le résultat sous la forme d'un entier. Si vous spécifiez 5, 0 est donné jusqu'à ce qu'il devienne 5 caractères, et si vous spécifiez 7, 0 est donné jusqu'à ce qu'il devienne 7 caractères.

txt = '135'
print(txt.zfill(5))

Contenu de sortie du résultat de l'exécution du code:

00135

Ajouter des caractères à une chaîne jusqu'à ce qu'elle atteigne un certain nombre de caractères: méthode rjust, ljust, center

Les méthodes rjust, ljust et center se comportent également comme zfill, remplissant les caractères jusqu'à ce que le nombre de caractères atteigne un nombre arbitraire. Cependant, le comportement suivant est différent de zfill.


La méthode rjust place la chaîne à droite et remplit le bord gauche avec n'importe quel caractère. Justifier à droite signifie «aligner à droite», et le nom de la méthode en est dérivé.

Spécifiez le dernier entier du nombre de caractères dans le premier argument et le caractère à remplir dans le deuxième argument.

txt = 'Chien chien'
print(txt.rjust(5, 'Chat'))

Contenu de sortie du résultat de l'exécution du code:

Chat chat chat chien chien


La méthode ljust aligne la chaîne d'origine vers la gauche et remplit la droite avec le nombre de caractères manquant.

txt = 'Chien chien'
print(txt.ljust(5, 'Chat'))

Contenu de sortie du résultat de l'exécution du code:

Chien chien chat chat chat


La méthode du centre aligne la chaîne d'origine au centre et remplit les bords gauche et droit avec les caractères numérotés ventraux.

txt = 'chien'
print(txt.center(5, 'Chat'))

Contenu de sortie du résultat de l'exécution du code:

Chat chat chien chat chat

Si le nombre de caractères à remplir à gauche et à droite est impair, l'extrémité gauche sera remplie davantage.

txt = 'chien'
print(txt.center(5, 'Chat'))

Contenu de sortie du résultat de l'exécution du code:

Chat chat chien chat chat

Mettre la première lettre en haut et les autres en bas: méthode de capitalisation

Importance: ★★ ☆☆☆ (Vous n'avez pas à savoir au début)


La méthode de capitalisation convertit la première lettre de l'alphabet en lettres majuscules et les autres en lettres minuscules. Ceci est utile pour les phrases en anglais.

Le mot capitaliser lui-même a un sens de «commencer par une majuscule» en plus d'un sens lié à l'argent tel que «capitaliser», et le nom de la méthode en est dérivé.

txt = 'apple and orange'
print(txt.capitalize())

Contenu de sortie du résultat de l'exécution du code:

Apple and orange

Non seulement les lettres minuscules sont converties, mais si la chaîne contient des lettres majuscules, toutes, sauf la première lettre, sont converties des majuscules aux minuscules.

txt = 'APPLE AND ORANGE'
print(txt.capitalize())

Contenu de sortie du résultat de l'exécution du code:

Apple and orange

Mettre en majuscule la première lettre de chaque mot anglais: méthode du titre

La méthode du titre convertit la première lettre de chaque mot de l'alphabet en lettres majuscules et les autres en lettres minuscules.

En anglais, les titres et les en-têtes sont souvent écrits comme "mettre en majuscule la première lettre du mot principal et abaisser le reste", et ce type d'écriture est appelé une casse de titre. Je vais. Le nom de la méthode title provient de la casse du titre.

En guise de mise en garde, les mots tels que «et» et «le» sont généralement laissés en lettres minuscules, et les mots tels que la nomenclature sont reflétés dans la casse du titre sous la forme de majuscules au début (par exemple, «Apple et Orange»). Cependant, la méthode de titre Python mettra en majuscule la première lettre de chaque mot.

txt = 'apple and orange'
print(txt.title())

Contenu de sortie du résultat de l'exécution du code:

Apple And Orange

Cas de swap: méthode de cas de swap

La méthode de casiers d'échange rend les minuscules en majuscules et les majuscules en bas. swap a le sens de «échange».

txt = 'Apple And Orange'
print(txt.swapcase())

Contenu de sortie du résultat de l'exécution du code:

aPPLE aND oRANGE

Vérifiez si toutes les chaînes sont en majuscules: méthode isupper

La méthode isupper renvoie la valeur booléenne True si l'alphabet de la chaîne est entièrement en majuscules et renvoie False dans le cas contraire. Comme mentionné dans d'autres sections, «majuscule» signifie majuscule, donc le nom de la méthode est supérieur sous la forme de retour d'une valeur booléenne avec la signification de «chaîne de caractères est en majuscule».

txt = 'APPLE AND ORANGE'
print(txt.isupper())

Contenu de sortie du résultat de l'exécution du code:

True

Si la chaîne contient des lettres minuscules, False sera renvoyé au lieu de True.

txt = 'Apple And Orange'
print(txt.isupper())

Contenu de sortie du résultat de l'exécution du code:

False

Vérifiez si toutes les chaînes sont inférieures: méthode islower

La méthode islower est l'opposé de la méthode isupper et renvoie la valeur booléenne True si l'alphabet de chaîne est tout inférieur. «minuscule» signifie minuscule.

txt = 'apple and orange'
print(txt.islower())

Contenu de sortie du résultat de l'exécution du code:

True

Si même un caractère contient des lettres majuscules, ce sera False.

txt = 'Apple and Orange'
print(txt.islower())

Contenu de sortie du résultat de l'exécution du code:

False

La méthode isupper est la même, mais même si elle contient des symboles autres que des alphabets majuscules ou japonais, ils n'affectent pas le jugement. La condition est que la chaîne de caractères contienne des lettres minuscules et ne contienne pas de lettres majuscules.

txt = 'pomme pomme'
print(txt.islower())

Contenu de sortie du résultat de l'exécution du code:

True

Vérifiez si la première lettre de chaque mot est entièrement supérieure et les autres inférieures: méthode istitle

La méthode istitle renvoie la valeur booléenne indiquant si la casse du titre (la première lettre de chaque mot est une lettre supérieure) mentionnée dans la section de la méthode title il y a quelque temps (mais pas strictement).

txt = 'Apple And Orange'
print(txt.istitle())

Contenu de sortie du résultat de l'exécution du code:

True

Le résultat est Faux si l'un des mots ne commence pas par une majuscule.

txt = 'Apple and orange'
print(txt.istitle())

Contenu de sortie du résultat de l'exécution du code:

False

Vérifiez si toutes les chaînes sont alphanumériques, etc.: isdecimal, isdigit, isnumeric, méthode isascii

Dans cette section, vous découvrirez chaque méthode qui obtient la valeur booléenne pour déterminer si le contenu d'une chaîne est une chaîne particulière (s'il s'agit d'une chaîne décimale uniquement entière, d'une chaîne alphabétique uniquement, etc.). Aller.


La méthode isdecimal renvoie la valeur booléenne indiquant si la chaîne de caractères est une chaîne de caractères entière qui peut être représentée par un nombre décimal (une représentation numérique de 10 nombres de 0 à 9 utilisée dans la vie quotidienne). («Nombre décimal» signifie nombre décimal). Si une fraction (ou un symbole fractionnaire) autre qu'un entier est inclus, ce sera faux. Il sera faux même s'il contient des symboles et des nombres non entiers tels que le japonais et l'anglais.

Une chaîne de nombres, par exemple 150, vaut True.

txt = '150'
print(txt.isdecimal())

Contenu de sortie du résultat de l'exécution du code:

True

Même s'il est pleine largeur, le résultat sera True si le contenu n'est que des entiers.

txt = '150'
print(txt.isdecimal())

Contenu de sortie du résultat de l'exécution du code:

True

Si une valeur autre qu'un entier, telle qu'un point décimal, est incluse, elle sera False.

txt = '3.14'
print(txt.isdecimal())

Contenu de sortie du résultat de l'exécution du code:

False

Si un symbole ou un caractère vide est inclus, ce sera False. Par exemple, même s'il y a un espace à l'extrémité gauche comme indiqué ci-dessous, il sera faux. Dans le cas d'un programme qui peut contenir de tels caractères vides, si vous utilisez la méthode de suppression mentionnée dans la section précédente pour supprimer les caractères vides supplémentaires et les traiter, le jugement peut entraîner des résultats inattendus. Cela peut être évité.

txt = '  150'
print(txt.isdecimal())

Contenu de sortie du résultat de l'exécution du code:

False


La méthode isdigit est une méthode qui se comporte comme isdecimal et renvoie la valeur booléenne indiquant s'il s'agit d'un entier ou non. Cependant, ce ne sont pas seulement les nombres habituels de «0 à 9», mais aussi les caractères des nombres encerclés tels que «①» et «②» qui entourent les nombres avec 〇 et les caractères de l'exposant (3 parties de 2 à la 3e puissance). Certains caractères numérotés spéciaux, tels que (petits caractères numérotés avec des sommets), sont autorisés (plus de conditions sont vraies que la méthode isdecimal).

Comme son nom l'indique, isdecimal est un nombre décimal, tandis que digit a la signification de «nombre arabe (caractères tels que 123)», ainsi isdigit est un jugement quant à savoir s'il s'agit d'un nombre arabe comprenant des caractères spéciaux. ..

Un échantillon qui devient True avec un entier normal comme isdecimal:

txt = '150'
print(txt.isdigit())

Contenu de sortie du résultat de l'exécution du code:

True

Un exemple qui devient False car il contient des caractères autres que des entiers comme isdecimal:

txt = '150 yens'
print(txt.isdigit())

Contenu de sortie du résultat de l'exécution du code:

False

Exemple pour confirmer que même les caractères encerclés spéciaux tels que sont vrais:

txt = '①②'
print(txt.isdigit())

Contenu de sortie du résultat de l'exécution du code:

True

Exemple pour confirmer que même les caractères exponentiels spéciaux tels que «²» sont True (la conversion étant difficile, veuillez copier l'exemple de code lors de l'exécution du code):

txt = '²³⁴'
print(txt.isdigit())

Contenu de sortie du résultat de l'exécution du code:

True


La méthode isnumeric supprime également la limitation "caractère de nombre arabe" de la méthode isdigit (plus de caractères que isdigit sont ciblés). Vrai si toutes les chaînes représentent des nombres.

Puisque la restriction des nombres arabes est supprimée, True est retourné même pour les nombres romains tels que «Ⅲ».

txt = 'ⅠⅢⅥ'
print(txt.isnumeric())

Contenu de sortie du résultat de l'exécution du code:

True

En outre, même une chaîne de caractères kanji sera True.

txt = '753'
print(txt.isnumeric())

Contenu de sortie du résultat de l'exécution du code:

True


La méthode isascii renvoie True si la chaîne est composée uniquement de caractères appelés codes ASCII, tels que les caractères alphanumériques demi-largeur, certains symboles (tels que le symbole «@») et des caractères spéciaux tels que les sauts de ligne. ..

txt = '~@abcABC123'
print(txt.isascii())

Contenu de sortie du résultat de l'exécution du code:

True

False est renvoyé pour les caractères pleine largeur.

txt = 'ABC'
print(txt.isascii())

Contenu de sortie du résultat de l'exécution du code:

False


Il existe d'autres méthodes telles que isalpha et isalnum, mais cela semble être rarement utilisé, et il semble que le nom soit alphabétique (alphabétique) (isalpha) et alphanumérique (isalnum). Les caractères pleine largeur tels que les kanji sont également un peu contre-intuitifs, je vais donc omettre l'explication ici.

Vérifiez si toutes les chaînes sont vides: isspace

La méthode isspace renvoie la valeur booléenne indiquant si la chaîne de caractères est composée ou non de caractères vides. Les caractères vides sont des espaces demi-largeur, des espaces pleine largeur, des sauts de ligne (souvent écrits comme «\ n» dans la chaîne de caractères), des tabulations (également souvent écrits comme «\ t» dans la chaîne de caractères) Etc.

txt = '  \n\t'
print(txt.isspace())

Contenu de sortie du résultat de l'exécution du code:

True

Même s'il contient des espaces, il aura la valeur False s'il y a d'autres caractères dans la chaîne de caractères.

txt = 'chat chien\n\t'
print(txt.isspace())

Contenu de sortie du résultat de l'exécution du code:

False

Convertir le code de caractère: méthode encoder. Decode

Les méthodes d'encodage et de décodage convertissent le code de caractère d'une chaîne. Fondamentalement, lorsqu'il s'agit de texte en Python, le code de caractère appelé UTF-8 est presque le même, mais il y a des cas occasionnels où vous devez gérer d'autres codes de caractère (Shift_JIS, etc.) en fonction d'anciens fichiers, environnements, formats de fichiers, etc. Se produit.

Cependant, plutôt que d'utiliser la méthode d'encodage ou de décodage d'une chaîne de caractères, il existe de nombreux cas où ces codes de caractère sont spécifiés lors de la lecture ou de l'écriture d'un fichier texte ou similaire.

Je ne pense pas que la méthode de la chaîne de caractères elle-même soit utilisée très souvent, je vais donc la garder à un léger contact ici (j'apprendrai les opérations sur les fichiers, etc. dans un chapitre ultérieur).

La première est la méthode d'encodage. La méthode d'encode convertit une chaîne normale sur Python en une valeur avec un code de caractère spécifique. La valeur convertie sera une instance de la classe bytes. Par exemple, si vous la convertissez en Shift_JIS, ce sera une valeur telle que «\ x94L», qui sera illisible à première vue.

Spécifiez le code de caractère dans le premier argument de la méthode d'encode. Cette fois, je vais le convertir en Shift_JIS, spécifiez donc la valeur sjis (il existe diverses autres valeurs fixes telles que ʻutf-8`).

txt = 'chat chien'
sjis_txt = txt.encode('sjis')
print('Contenu textuel:', sjis_txt, '\type n:', type(sjis_txt))

Contenu de sortie du résultat de l'exécution du code:

Contenu textuel: b'\x94L\x8c\xa2' 
Moule: <class 'bytes'>

La méthode de décodage fonctionne à l'opposé de la méthode d'encodage. En d'autres termes, la valeur convertie en un code de caractère tel que Shift_JIS est renvoyée en une chaîne de caractères normale qui peut être réutilisée sur Python (une chaîne de caractères qui peut être lue normalement par des humains, telle que «chat chien»). Dans le premier argument, spécifiez le code de caractère de la valeur cible.

txt = sjis_txt.decode('sjis')
print(txt)

Contenu de sortie du résultat de l'exécution du code:

chat chien

Références / Résumé du site

Recommended Posts

Diverses opérations de chaîne avec Python intégré
Diverses opérations de chaîne de caractères
Python intégré
Chaîne Python
Python: combinaison de chaînes
Format de chaîne Python
tranche de chaîne python
Objet intégré Python
Objet intégré Python
# 3 [python3] Divers opérateurs
Type de chaîne Python2
Format de chaîne Python
Python # type de chaîne
Inversion de chaîne Python
[Python] Chapitre 02-05 Bases des programmes Python (opérations / méthodes de chaînes de caractères)
Diverses opérations Numpy (correction)
Opérations sur les fichiers en Python
[Python] Opération de fichier / répertoire
Manipulation de chaîne en python
[Python] Assigner une chaîne sur plusieurs lignes
Maître de manipulation de chaînes Python
Manipulation de fichiers avec Python
[Python2] Chaîne de date → UnixTime → Chaîne de date
Génération de chaînes aléatoires (Python)
Résumé des opérations sur les chaînes
Fonction intégrée Python ~ Zip ~
Python3> chaîne de documentation / docstring
Fonctions intégrées Wrap Python
Illustration de traitement de chaîne Python
Divers traitements de Python
J'ai essayé de résumer les opérations de chaîne de Python
[python] Convertir la date en chaîne
Supprimer divers caractères vides [Python]
résumé lié à l'opération de fichier python
Résumé des opérations de liste Python3
Indentation Python et format de chaîne
Quatre règles de python
Méthodes d'objet chaîne en Python
[Python] Utiliser une séquence de chaînes
À propos de divers encodages de Python 3
Manipulez diverses bases de données avec Python
Encapsulation des opérations git en Python
[Python 2/3] Analyser la chaîne de format
À propos des opérateurs de comparaison de chaînes Python
Manipulation de la date des chaînes en Python
Caractère f Python (chaîne formatée)
Format de chaîne avec l'opérateur Python%
À propos des opérations Python et OS
Opération de collecte de type Scala en Python
Résumé des différentes opérations dans Tensorflow
Remplacement de chaîne par une expression régulière Python
Fichiers liés au système d'exploitation Python, opérations de sous-répertoire
6 façons d'enchaîner des objets en Python
Mémo Python ① Opérations sur les dossiers et fichiers
mappe de traitement de chaîne python et lambda
ORC, opérations de fichier Parquet en Python
Python --Symboles utilisés lors de l'exécution d'opérations
Créer une chaîne aléatoire en Python
[Python] [Supplément] Chapitre 04-09 Structures de données diverses (théorie des ensembles et arithmétique dans les ensembles)