Lignes. Présentation

Une chaîne - est une liste (ou une séquence) de caractères situés dans un accord particulier. Toute la séquence de caractères est traitée comme un seul objet.

Un caractère est tout ce que vous pouvez taper sur le clavier avec une seule touche (lettre, chiffre, barre oblique inverse ou tout autre caractère).

Les chaînes peuvent contenir des espaces : "Hello world !".

Une chaîne vide est une chaîne qui contient 0 caractères.

Python accepte comme chaînes tout ce qui est entre guillemets (" ") ou apostrophes (' ').

En Python, une chaîne est de type str.
 
Ne pas oublier !
Les chaînes en Python sont immuables !


Vous pouvez écrire une nouvelle valeur dans une chaîne à l'aide de l'instruction d'entrée
s = entrée()

Vous pouvez également simplement attribuer une valeur de chaîne à la variable, telle que  
s = 'Python'
ou alors
s = "Python"

Vous pouvez déterminer la longueur d'une chaîne à l'aide de la fonction intégrée len()
n = longueur(s)


Comparaison de chaînes

Les chaînes peuvent être comparées les unes aux autres, tout comme les nombres. Vous pouvez déterminer laquelle des lignes est la plus grande, laquelle est la plus petite.

Lors de la comparaison de chaînes, les codes de caractères sont comparés. Il existe des dizaines, voire des centaines, d'encodages de caractères. La façon la plus simple de comprendre ce concept est de comprendre l'un des plus simples, ASCII (lire ici).   ;

Il est nécessaire de comprendre que dans les encodages modernes, les lettres russes et anglaises sont classées par ordre alphabétique, les chiffres vont également du plus petit au plus grand. 
Par exemple, dans la table des codes ASCII, le code de la lettre anglaise 'A' - 65, lettres 'a' - 97, chiffre '0' a le code 48. Les lettres russes sont situées dans la partie étendue de la table des codes ASCII (numéros de 128 à 255). Les majuscules viennent avant (c'est-à-dire qu'elles ont un code plus petit) que les minuscules.

Dans la plupart des tables d'encodage utilisées, les modèles sont les mêmes, les lettres minuscules sont postérieures aux lettres majuscules, les chiffres sont antérieurs aux lettres et les lettres russes postérieures aux lettres anglaises.
 
Lors de la comparaison de caractères ou de chaînes, Python convertit les caractères en leurs valeurs ordinales respectives, puis compare de gauche à droite. 

Par exemple : "locomotive"  < "bateau à vapeur", parce que les mots diffèrent dans la cinquième lettre et "dans" < "x".

Diviser une ligne en plusieurs parties

Lorsque vous saisissez une chaîne, vous pouvez immédiatement la diviser en parties par n'importe quel séparateur.
Nous avons déjà fait cela auparavant lorsque nous avons saisi plusieurs variables numériques sur la même ligne. Nous avons utilisé la méthode split() pour diviser une chaîne en plusieurs parties. Par défaut, il sépare les chaînes en sous-chaînes par un espace.
En utilisant cette méthode, vous pouvez diviser la chaîne en parties, par exemple, par des espaces. Et écrivez chaque partie de la chaîne dans une variable distincte.
 
Exemple
s1, s2 = input().split()

Dans l'exemple, lors de la saisie de deux mots séparés par un espace, le premier mot est stocké dans la variable s1, le second - dans la variable s2.

Addition et multiplication de chaînes

Des chaînes peuvent être ajoutées, pour cela le signe "+" est utilisé. Cette opération est appelée concaténation de chaînes ou concaténation
 
Exemple 
s = "Bonjour,"
s1 = "monde"
imprimer(s + s1)
L'écran affichera la phrase "Hello world" (sans les guillemets).

Python implémente l'opération de multiplication d'une chaîne par un nombre : cela remplace l'addition multiple.
 
Exemple 
chaîne
s = "monde "+"monde "+"monde "+"monde "
peut être remplacé par  
s = "monde " *4

Se référer aux indices de lignes

Chaque caractère d'une chaîne a un nombre (appelé index), et la numérotation commence toujours à zéro dans de nombreuses langues.
En Python, vous pouvez spécifier des index négatifs. Cela signifie qu'il compte à partir de la fin de la ligne.
 
Exemple 
Chaîne S H e l l o
Index S[0] S[1] S[2] S[3] S[4]
Index S[-5] S[-4] S[-3] S[-2] S[-1]

Si vous ajoutez la longueur de la chaîne à l'index négatif, vous obtenez un "normal" position du caractère.
 
Ne pas oublier !
En Python, vous ne pouvez pas modifier un seul caractère dans une chaîne car les chaînes elles-mêmes sont immuables. 

Itérer sur tous les caractères

Puisqu'un caractère est accessible par index, vous pouvez utiliser une boucle variable pour itérer sur tous les caractères, ce qui prendra des valeurs d'index possibles. Par exemple, un programme qui affiche tous les codes de caractères de la chaîne s ressemblerait à ceci pour je dans la plage (len(s)): print(s[i], ord(s[i])) Explications du programme :
1) La fonction len(s) trouve la longueur d'une chaîne. L'index du premier caractère est 0 et l'index du dernier est len(s)-1. La variable de boucle i prendra simplement des valeurs séquentiellement de 0 à len(s)-1.
2) Dans chaque ligne, le symbole lui-même sera affiché en premier, puis son code, qui est renvoyé par la fonction intégrée ord().

La même énumération peut être écrite plus courte : pour c dans s : print(c, ord(c)) Dans ce fragment, l'en-tête de la boucle parcourt tous les caractères s, les plaçant tour à tour dans la variable c.

Comme déjà mentionné, la particularité de Python lorsque vous travaillez avec des chaînes est que les chaînes sont des objets immuables. En d'autres termes, nous ne pouvons pas modifier les caractères individuels d'une chaîne.

Par exemple, l'instruction suivante ne fonctionnera pas s[5]='un' Mais vous pouvez composer une nouvelle ligne à partir des caractères avec les modifications requises.
 
Tâche
Dans la chaîne d'entrée, remplacez tous les caractères 'a' aux caractères "b".  s = entrée() sNouveau = "" pour c dans s : si c == 'a' : c = 'b' sNouveau += c imprimer(sNouveau)
Dans ce programme, la boucle parcourt tous les caractères de la chaîne s. Dans le corps de la boucle, on vérifie la valeur de la variable с : si le symbole correspond au symbole 'a', alors on le remplace avec 'b< /code>' et ajoutez-le à la fin de la nouvelle ligne sNew en utilisant l'opérateur d'addition.
Cette option est plutôt lente.

À l'avenir, nous examinerons les fonctions de manipulation de chaînes intégrées et apprendrons à le faire plus rapidement.