le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Sommario
Capitolo 6 Oggetti stringa e operazioni di sezionamento
6.2 Metodi comunemente usati nei caratteri
6.3 Operazione di affettamento
Stringa: una stringa composta da più caratteri
Personaggi: simboli visibili ad occhio nudo
Byte: invisibili ad occhio nudo
Come Python definisce le stringhe:
virgolette singole virgolette doppie virgolette triple 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']
maiuscolo ------- Rende maiuscola la prima lettera della stringa
>>> s 'this is a string' >>> s.capitalize() 'This is a string'
center(width, fillchar=' ') ------ Centrare la stringa in base alla lunghezza specificata e allinearla al centro
rjust --------- allineato a destra
ljust ------ allineamento a sinistra
>>> 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 --------- conta il numero di volte in cui un carattere appare in una stringa
>>> s 'this is a string' >>> s.count("s") 3 >>> s.count("is") 2
termina con ------- Determina se la stringa termina con XXX
iniziacon ------- Determina se la stringa inizia con XXX
>>> s.endswith("g") True >>> s.endswith("ing") True >>> s.endswith("f") False >>> s.startswith("t") True >>> s.startswith("f") False
indice ------ La posizione in cui il carattere o la stringa cercata appare per la prima volta nella stringa. Se non esiste, verrà generata un'eccezione (rapporto di errore).
rindex ------- Ricerca da destra a sinistra, la posizione in cui il carattere o la stringa da cercare appare per primo nella stringa (equivalente all'ultima occorrenza del carattere o della stringa cercata da sinistra a destra nella stringa) posizione ), se non esiste, lancia un'eccezione (segnala un errore)
>>> 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 posizione della prima occorrenza del carattere o della stringa da cercare nella stringa. Se non esiste, viene restituito -1.
rfind----- Cerca da destra a sinistra, la posizione della prima occorrenza del carattere o della stringa cercata nella stringa (equivalente alla posizione dell'ultima occorrenza del carattere o della stringa nella stringa trovata da sinistra a right ), restituisce -1 se non esiste
>>> s 'this is a string' >>> s.find("s") 3 >>> s.find("f") -1 >>> s.rfind("f") -1 >>> s.rfind("s") 10
encode ----- metodo per convertire stringhe in byte in python3, metodo decode() per convertire byte in stringhe (metodo in byte)
>>> 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 ------ formatta la stringa, concatena le stringhe
isupper ------ Determina se la stringa è composta da tutte lettere maiuscole
islower ----- ------ Determina se la stringa è composta solo da lettere minuscole
>>> s.isupper() False >>> s.islower() False
istitle ----- Determina se si tratta di un titolo
>>> s.istitle() False >>> ss = "This Is A Dog" >>> ss.istitle() True
isspace ----- Non è comunemente utilizzato per determinare se si tratta di uno spazio.
>>> sss = " " >>> sss.isspace() True >>> ss 'This Is A Dog' >>> ss.isspace() False
isdigit ------ Determina se si tratta di un numero
>>> sss = "123234344" >>> sss.isdigit() True >>> ss 'This Is A Dog' >>> ss.isdigit() False >>> sss = "1233443gggg" >>> sss.isdigit() False
isalnum ------ determina se si tratta di lettere e numeri (alfanumerici)
>>> 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 ------ determina se è una lettera
titolo ----- Converte la stringa nel formato del titolo
>>> 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 ------- Converte la stringa in maiuscolo
lower ------- Converte la stringa in minuscolo
>>> s 'This is a string' >>> s.lower() 'this is a string' >>> s.upper() 'THIS IS A STRING'
split ----- Divide la stringa in base al simbolo specificato e il valore restituito è una lista
>>> 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 ------ concatena un oggetto iterabile in una stringa in base al formato specificato
>>> 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'
striscia ------- rimuovi gli spazi su entrambi i lati
rstrip------ cancella gli spazi a destra
lstrip -------- cancella gli spazi a sinistra
>>> ss = " hhhhhhh " >>> ss ' hhhhhhh ' >>> ss.strip() 'hhhhhhh' >>> ss.strip() 'hhhhhhh' >>> ss ' hhhhhhh ' >>> ss.rstrip() ' hhhhhhh' >>> ss.lstrip() 'hhhhhhh '
replace ("carattere originale", "nuovo carattere") ------ Sostituisce il carattere corrispondente
>>> s 'This is a string' >>> s.replace("s","t") 'Thit it a ttring'
Slice: utilizzato per separare oggetti iterabili (contenitori)
Regole grammaticali:
object[start_index:end_index:step]
start_index ------- Indice iniziale (posizione iniziale)
end_index ------ Indice finale (posizione finale), non include il valore in end_index
passo ---- dimensione del passo, può essere un numero positivo o negativo, numero positivo (da sinistra a destra) numero negativo (da destra a sinistra), il valore predefinito è 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'intervallo tra la chiusura anteriore e l'apertura posteriore
ls = [0,1,2,3,4,5,6,7,8,9]
1. Taglia un singolo valore
>>> ls [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> ls[0] 0 >>> ls[-4] 6
2. Taglia l'oggetto completo
>>> 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 e end_index sono entrambi numeri positivi
>>> 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 e end_index sono entrambi numeri negativi
>>> 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 e end_index sono combinati con positivo e negativo
>>> 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. Affettamento continuo
>>> 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. I tre parametri di slicing possono anche essere espressioni
>>> 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. L'affettatura può anche tagliare altri oggetti
>>> (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
Domande di un'intervista:
1. Se l'intervallo del pedice viene superato quando si utilizzano le sezioni per tagliare i dati, verrà segnalato un errore?
Non verrà segnalato alcun errore. Se supera l'intervallo, verrà restituito l'oggetto completo. Se non è coerente, verrà restituito [].
2. Come invertire l'output di un elenco in Python?
inversione del ciclo
[::-1]
elenco.inverso()