Partage de technologie

Chapitre 6 Objets chaîne et opérations de découpage

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Table des matières

Chapitre 6 Objets chaîne et opérations de découpage

6.1 Objet chaîne

6.2 Méthodes couramment utilisées en caractères

6.3 Opération de découpage

Chapitre 6 Objets chaîne et opérations de découpage

6.1 Objet chaîne

Chaîne : une chaîne composée de plusieurs caractères

Personnages : symboles visibles à l’œil nu

Octets : invisibles à l’œil nu

Comment python définit les chaînes :

guillemets simples guillemets doubles guillemets triples str()

6.2 Méthodes couramment utilisées en caractères

 >>> dir(s)
 ['capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'removeprefix', 'removesuffix', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

capitaliser ------- Mettre la première lettre de la chaîne en majuscule

 >>> s
 'this is a string'
 >>> s.capitalize()
 'This is a string'

center(width, fillchar=' ') ------ Centrez la chaîne en fonction de la longueur donnée et alignez-la au centre

rjust --------- aligné à droite

juste ------ alignement à gauche

 >>> help(s.center)
 Help on built-in function center:
 ​
 center(width, fillchar=' ', /) method of builtins.str instance
     Return a centered string of length width.
 ​
     Padding is done using the specified fill character (default is a space).
 ​
 >>> s.center(40)
 '            this is a string            '
 >>> s.center(40,"*")
 '************this is a string************'
 >>> s.rjust(40)
 '                        this is a string'
 >>> s.ljust(40)
 'this is a string                        '
 >>> s.ljust(40,"*")
 'this is a string************************'
 >>> s.rjust(40,"*")
 '************************this is a string'

count --------- compte le nombre de fois qu'un caractère apparaît dans une chaîne

 >>> s
 'this is a string'
 >>> s.count("s")
 3
 >>> s.count("is")
 2

se termine par ------- Détermine si la chaîne se termine par XXX

Commence avec ------- Détermine si la chaîne commence par XXX

 >>> s.endswith("g")
 True
 >>> s.endswith("ing")
 True
 >>> s.endswith("f")
 False
 >>> s.startswith("t")
 True
 >>> s.startswith("f")
 False

index ------ La position où le caractère ou la chaîne recherché apparaît pour la première fois dans la chaîne. S'il n'existe pas, une exception (rapport d'erreur) sera levée.

rindex ------- Recherche de droite à gauche, la position où le caractère ou la chaîne recherché apparaît en premier dans la chaîne (équivalent à la dernière occurrence du caractère ou de la chaîne recherché de gauche à droite dans la chaîne) location ), s'il n'existe pas, lancez une exception (signalez une erreur)

 >>> s
 'this is a string'
 >>> s.index("s")
 3
 >>> s.index("is")
 2
 >>> s.index("f")
 Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
 ValueError: substring not found
 >>> s.index(" ")
 4
 >>> s.rindex("s")
 10
 >>> s.rindex("f")
 Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
 ValueError: substring not found

find ------- La position de la première occurrence du caractère ou de la chaîne recherchée dans la chaîne. S'il n'existe pas, -1 est renvoyé.

rfind----- Recherche de droite à gauche, la position de la première occurrence du caractère ou de la chaîne recherchée dans la chaîne (équivalent à la position de la dernière occurrence du caractère ou de la chaîne dans la chaîne trouvée de gauche à right ), renvoie -1 s'il n'existe pas

 >>> s
 'this is a string'
 >>> s.find("s")
 3
 >>> s.find("f")
 -1
 >>> s.rfind("f")
 -1
 >>> s.rfind("s")
 10

encode ----- méthode pour convertir des chaînes en octets en python3, méthode decode() pour convertir des octets en chaînes (méthode en octets)

 >>> s
 'this is a string'
 >>> s.encode()
 b'this is a string'
 >>> d = s.encode()
 >>> d
 b'this is a string'
 >>> type(d)
 <class 'bytes'>
 >>> d
 b'this is a string'
 >>> d.decode()
 'this is a string'
 >>> ss = d.decode()
 >>> ss
 'this is a string'
 >>> type(ss)
 <class 'str'>

format ------ formater la chaîne, concaténer les chaînes

isupper ------ Détermine si la chaîne est composée uniquement de lettres majuscules

islower ----- ------ Détermine si la chaîne est uniquement composée de lettres minuscules

>>> s.isupper()
False
>>> s.islower()
False

istitle ----- Déterminer s'il s'agit d'un titre

>>> s.istitle()
False
>>> ss = "This Is A Dog"
>>> ss.istitle()
True

isspace ----- Il n'est pas couramment utilisé pour déterminer s'il s'agit d'un espace.

>>> sss = "       "
>>> sss.isspace()
True
>>> ss
'This Is A Dog'
>>> ss.isspace()
False

isdigit ------ Détermine s'il s'agit d'un nombre

>>> sss = "123234344"
>>> sss.isdigit()
True
>>> ss
'This Is A Dog'
>>> ss.isdigit()
False
>>> sss = "1233443gggg"
>>> sss.isdigit()
False

isalnum ------ détermine s'il s'agit de lettres et de chiffres (alphanumériques)

>>> help(s.isalnum)
Help on built-in function isalnum:

isalnum() method of builtins.str instance
    Return True if the string is an alpha-numeric string, False otherwise.

    A string is alpha-numeric if all characters in the string are alpha-numeric and
    there is at least one character in the string.

>>> sss
'1233443gggg'
>>> sss.isalnum()
True
>>> ss
'This Is A Dog'
>>> ss.isalnum()
False

isalpha ------ détermine s'il s'agit d'une lettre

titre ----- Convertir la chaîne au format de titre

>>> s
'This is a string'
>>> s.istitle()
False
>>> s.title()
'This Is A String'
>>> sss = s.title()
>>> sss
'This Is A String'
>>> sss.istitle()
True

upper ------- Convertir la chaîne en majuscule

lower ------- Convertir la chaîne en minuscule

>>> s
'This is a string'
>>> s.lower()
'this is a string'
>>> s.upper()
'THIS IS A STRING'

split ----- Divisez la chaîne en fonction du symbole spécifié et la valeur de retour est une liste

>>> s
'This is a string'
>>> s.split(" ")
['This', 'is', 'a', 'string']
>>> l = s.split(" ")
>>> l
['This', 'is', 'a', 'string']
>>> type(l)
<class 'list'>
>>> l = s.split("s")
>>> l
['Thi', ' i', ' a ', 'tring']

join ------ concatène un objet itérable en une chaîne selon le format spécifié

>>> ls = ["A","B","c","d"]
>>> type(ls)
<class 'list'>
>>> ss = " ".join(ls)
>>> ss
'A B c d'
>>> type(ss)
<class 'str'>
>>> ss = "*".join(ls)
>>> ss
'A*B*c*d'

bande ------- supprimer les espaces des deux côtés

rstrip------ effacer les espaces à droite

lstrip -------- effacer les espaces de gauche

>>> ss = "                              hhhhhhh                                  "
>>> ss
'                              hhhhhhh                                  '
>>> ss.strip()
'hhhhhhh'
>>> ss.strip()
'hhhhhhh'
>>> ss
'                              hhhhhhh                                  '
>>> ss.rstrip()
'                              hhhhhhh'
>>> ss.lstrip()
'hhhhhhh                                  '

replace ("caractère original", "nouveau caractère") ------ Remplacer le caractère correspondant

>>> s
'This is a string'
>>> s.replace("s","t")
'Thit it a ttring'

6.3 Opération de découpage

Slice : utilisé pour séparer les objets itérables (conteneurs)

Règles de grammaire:

object[start_index:end_index:step]

start_index ------- Index de départ (position de départ)

end_index ------ Index de fin (position de fin), n'inclut pas la valeur à end_index

pas ---- taille du pas, peut être un nombre positif ou un nombre négatif, un nombre positif (de gauche à droite) un nombre négatif (de droite à gauche), la valeur par défaut est 1

object[:]  ----- 切割的是一个完整的对象
object[start_index:]  ------ 从start_index开始切割到最后的位置,步长为1
object[:end_index] ------ 从最开始的位置切割到end_index处,但是不包含end_index
object[start_index:end_index] ------- 从start_index开始切割到end_index处,但是不包含end_index,步长为1
object[start_index:end_index:step] ------------ 从start_index开始切割到end_index处,但是不包含end_index,步长为step  

L'intervalle entre la fermeture avant et l'ouverture arrière

ls = [0,1,2,3,4,5,6,7,8,9]

1. Coupez une seule valeur

>>> ls
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[0]
0
>>> ls[-4]
6

2. Découpez l'objet complet

>>> ls[:]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[::]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[::-1]  #-1 表示从右往左切割 所以是倒序
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

3. start_index et end_index sont tous deux des nombres positifs

>>> ls
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[1:6]
[1, 2, 3, 4, 5]
>>> ls[1:6:-1]  # start_index=1 end_index = 6表示的是从1切割到6的位置,但是不包含6处的值,从左往右切割,step=-1 表示从右往左   
[]
>>> ls[6:1]
[]
>>> ls[6:1:-1]
[6, 5, 4, 3, 2]
>>> ls[:6]
[0, 1, 2, 3, 4, 5]
>>> ls[:6:-1]
[9, 8, 7]
>>> ls[6:]
[6, 7, 8, 9]
>>> ls[6::-1]
[6, 5, 4, 3, 2, 1, 0]
>>>

4. start_index et end_index sont tous deux des nombres négatifs

>>> ls
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[-1:-6]
[]
>>> ls[-1:-6:-1]
[9, 8, 7, 6, 5]
>>> ls[-6:-1]
[4, 5, 6, 7, 8]
>>> ls[:-6]
[0, 1, 2, 3]
>>> ls[:-6:-1]
[9, 8, 7, 6, 5]
>>> ls[-6:]
[4, 5, 6, 7, 8, 9]
>>> ls[-6::-1]
[4, 3, 2, 1, 0]

5. Start_index et end_index sont combinés avec positif et négatif

>>> ls
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[1:-6]
[1, 2, 3]
>>> ls[1:-6:-1]
[]
>>> ls[-1:6]
[]
>>> ls[-1:6:-1]
[9, 8, 7]

6. Tranchage continu

>>> ls
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[:8][2:5][-1:]
[4]
ls[:8] ----- [0,1,2,3,4,5,6,7]
ls[:8][2:5]   -----   [2,3,4]
ls[:8][2:5][-1:] ----- [4]

7. Les trois paramètres du découpage peuvent aussi être des expressions

>>> ls
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[2+1:3*2:7%3]
[3, 4, 5]
>>> ls[3:6:1]
[3, 4, 5]
>>> ls[2:6:2]
[2, 4]

8. Le tranchage peut également couper d’autres objets

>>> (1,2,3,4,5,6,7,8,9)[:3]
(1, 2, 3)
>>> "ABCDEFGHIJK"[::2]
'ACEGIK'
>>> for i in range(1,100)[2::3][-10:]:
...     print(i)
...
72
75
78
81
84
87
90
93
96
99

Questions d'entretien :

1. Si la plage d'indices est dépassée lors de l'utilisation de tranches pour couper des données, une erreur sera-t-elle signalée ?

Aucune erreur ne sera signalée. Si elle dépasse la plage, l'objet complet sera renvoyé. S'il est incohérent, [] sera renvoyé.

2. Comment inverser la sortie d’une liste en python ?

boucle inversée

[::-1]

liste.reverse()