Condivisione della tecnologia

Capitolo 6 Oggetti stringa e operazioni di sezionamento

2024-07-12

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

Sommario

Capitolo 6 Oggetti stringa e operazioni di sezionamento

6.1 Oggetto stringa

6.2 Metodi comunemente usati nei caratteri

6.3 Operazione di affettamento

Capitolo 6 Oggetti stringa e operazioni di sezionamento

6.1 Oggetto stringa

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()

6.2 Metodi comunemente usati nei caratteri

 >>> 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'

6.3 Operazione di affettamento

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()