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.2 Méthodes couramment utilisées en caractères
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()
>>> 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'
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()