English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo tutorial, imparerai come creare, formattare, modificare e eliminare stringhe in Python. Inoltre, ti presenteremo vari operazioni e funzioni di stringa.
Una stringa è una sequenza di caratteri.
Un carattere è solo un simbolo. Ad esempio, l'inglese ha 26 caratteri.
I computer non elaborano i caratteri, elaborano i numeri (binari). Anche se potresti vedere i caratteri sullo schermo, all'interno vengono memorizzati e manipolati come combinazioni di 0 e 1.
Questa trasformazione da carattere a numero si chiama codifica, mentre il processo opposto è la decodifica. ASCII e Unicode sono alcune delle codifiche più comuni.
In Python, le stringhe sono sequenze di caratteri Unicode. L'introduzione di Unicode include tutti i caratteri di ogni lingua e introduce una codifica unificata. Puoi trovare ulteriori informazioni quiUlteriori informazioni su Unicode.
Si possono creare stringhe mettendo i caratteri tra virgolette singole o doppie. In Python si può anche utilizzare le virgolette triple, ma di solito si utilizzano per rappresentare stringhe multiriga e stringhe di documentazione.
# Questi sono tutti equivalenti my_string = 'Ciao' print(my_string) my_string = "Ciao" print(my_string) my_string = '''Ciao''' print(my_string) # Le stringhe con triple virgolette possono estendersi su più righe my_string = "Ciao, benvenuti in il mondo di Python""" print(my_string)
Quando si esegue il programma, l'output è:
Ciao Ciao Ciao Ciao, benvenuti in il mondo di Python
Possiamo accedere a un singolo carattere utilizzando l'indice e accedere a una serie di caratteri utilizzando il taglio. L'indice parte da 0. Tentare di accedere a un carattere al di fuori dell'intervallo di indici genererà un IndexError. L'indice deve essere un intero. Non possiamo utilizzare float o altri tipi, il che causerebbe un TypeError.
Python consente di utilizzare l'indice negativo per le sequenze.
L'indice -1 rappresenta l'ultimo elemento, -2 rappresenta il penultimo elemento, e così via. Possiamo utilizzare l'operatore di taglio (due punti) per accedere a una serie di elementi nella stringa.
str = 'oldtoolbag.com' print('str = ', str) # Primo carattere print('str[0] = ', str[0]) # Ultimo carattere print('str[-1] = ', str[-1]) # Tagliare i secondi a quinti caratteri print('str[1:5] = ', str[1:5]) # Tagliare da第六个字符 a倒数第二个字符 print('str[5:-2] = ', str[5:-2])
Risultato dell'output:
str = oldtoolbag.com str[0] = n str[-1] = m str[1:5] = hooo str[5:-2] = .c
Se si tenta di accedere a un indice fuori dai limiti o utilizzare un numero decimale, verrà generato un errore.
# Gli indici devono essere all'interno dell'intervallo >>> my_string[15] ... IndexError: string index out of range # Gli indici devono essere interi >>> my_string[1.5] ... TypeError: string indices must be integers
Considerando che l'indice si trova tra gli elementi, è possibile visualizzare meglio le sezioni come segue.
Per accedere a un intervallo, è necessario utilizzare l'indice, che estrarrà una parte della stringa.
Le stringhe sono immutabili. Questo significa che una volta assegnati, i loro elementi non possono essere modificati. Possiamo semplicemente assegnare diverse stringhe al nome stesso.
>>> my_string = 'oldtoolbag.com' >>> my_string[5] = 'a' ... TypeError: 'str' object does not support item assignment >>> my_string = 'Python' >>> my_string 'Python'
Non possiamo eliminare o rimuovere i caratteri dalla stringa. Ma possiamo eliminare completamente la stringa utilizzando la parola chiave del.
>>> del my_string[1] ... TypeError: 'str' object doesn't support item deletion >>> del my_string >>> my_string ... NameError: name 'my_string' is not defined
Le stringhe possono eseguire molte operazioni, il che le rendeIn PythonIl più comuneUno dei tipi di dati.
Concatenare due o più stringhe in una singola stringa si chiama concatenazione.
L'operatore + in Python esegue l'operazione di concatenazione. Basta scrivere insieme due stringhe testuali per concatenarle.
* Gli operatori possono essere usati per ripetere una stringa un numero specifico di volte.
str1 = 'Hello' str2 = 'World!' # using + print('str1 + str2 =', str1 + str2) # using * print('str1 * 3 =', str1 * 3)
Scrivere insieme due stringhe testuali è uguale a+Gli operatori le connettono insieme.
Se si desidera connettere due stringhe su righe diverse, è possibile utilizzare parentesi.
>>> # Due due stringhe testuali insieme >>> 'Hello ''World!' 'Hello World!' >>> # Utilizzo di parentesi >>> s = ('Hello ' ... 'World') >>> s 'Hello World'
UsandoCiclo forPossiamo esplorare la stringa. Questo è un esempio di calcolo del numero di 'l' nella stringa.
count = 0 for letter in 'Hello World': if(letter == 'l'): count += 1 print(count, 'letters found')
Possiamo utilizzare la parola chiave in per testare se una sottostringa esiste nella stringa.
>>> 'a' in 'program' True >>> 'at' not in 'battle' False
Si possono utilizzare vari funzioni built-in di sequence e string.
Alcuni comuni sono enumerate() e len(). La funzione enumerate() ha lo scopo di: restituire un oggetto di enumerazione. Contiene in forma a coppie l'indice e il valore di tutti gli elementi della stringa. Questo è utile per l'iterazione.
Anche così, len() restituisce la lunghezza della stringa (numero di caratteri).
str = 'cold' # enumerate() list_enumerate = list(enumerate(str)) print('list(enumerate(str) = ', list_enumerate) # Numero di caratteri print('len(str) = ', len(str))
Se vogliamo stampare un testo - lui disse: "What's there?" - non possiamo utilizzare apici singoli o virgolette doppie. Questo causerebbe un SyntaxError in quanto il testo contiene apici singoli e virgolette doppie.
>>> print("He said, "What's there?"") ... SyntaxError: sintassi non valida >>> print('He said, "What's there?"') ... SyntaxError: sintassi non valida
Una soluzione a questo problema è l'uso di tre apici. Inoltre, possiamo utilizzare le sequenze di escape.
Le sequenze di escape iniziano con una barra obliqua e vengono interpretate in modi diversi. Se utilizziamo gli apici singoli per rappresentare una stringa, è necessario esitare tutti gli apici singoli all'interno della stringa. Lo stesso vale per le virgolette doppie. Questo è il modo di rappresentare il testo sopra menzionato.
# Utilizzo di tre apici singoli print('''He \\nsaid, \\"What's \\nthere?\\)''') # 转义单引号 print('He \\nsaid, \\"What\\'s \\nthere?\\)') # 转义双引号 print("He \\nsaid, \\"What's \\nthere?\\)
这是Python支持的所有转义序列的列表。
转义序列 | 描述 |
---|---|
\\newline | 反斜杠和换行符被忽略 |
\\\ | 反斜杠 |
\\' | 单引号 |
\\" | 双引号 |
\\a | ASCII铃声 |
\\b | ASCII退格键 |
\\f | ASCII换页 |
\\n | ASCII换行 |
\\r | ASCII回车 |
\\t | ASCII水平制表符 |
\\v | ASCII垂直制表符 |
\\ooo | 具有八进制值的字符 |
\\xHH | 具有十六进制值HH的字符 |
这里有些示例
>>> print("C:\\\Python32\\\\Lib") C:\\Python32\\Lib >>> print("This \\nis \\nprinted\\nin \\ntwo \\nlines") This \\nis \\nprinted in \\ntwo \\nlines >>> print("This \\nis \\n\x48\x45\x58 \\nrepresentation") This \\nis \\nHEX \\nrepresentation
有时我们可能希望忽略字符串中的转义序列。为此,我们可以将其放置在字符串的前面r或R前面。这意味着这是一个原始字符串,并且其中的任何转义序列都将被忽略。
>>> print("This \\x61 \\ngood \\nexample") This \\nis \\na good \\nexample >>> print(r"This \\x61 \\ngood \\nexample") This \\x61 \\ngood \\nexample
与string对象一起使用的format()方法非常通用,并且在格式化字符串方面功能非常强大。格式字符串包含大括号{}作为占位符或被替换的替换字段。
我们可以使用位置参数或关键字参数来指定顺序。
# 默认(隐式)顺序 default_order = "{}, {} and {}".format('John','Bill','Sean') print('\n--- Default Order ---') print(default_order) # Ordinamento con parametri posizionali positional_order = "{1}, {0} and {2}".format('John','Bill','Sean') print('\n--- Positional Order ---') print(positional_order) # Ordinamento con parametri chiave keyword_order = "{s}, {b} and {j}".format(j='John',b='Bill',s='Sean') print('\n--- Keyword Order ---') print(keyword_order)
Il metodo format() può avere specifiche di formato opzionali. Utilizzano due punti per separare i campi di nome. Ad esempio, possiamo allineare a sinistra <, a destra > o centrare ^ le stringhe nello spazio dato. Possiamo anche formattare gli interi in binario, esadecimale ecc., e i numeri a virgola mobile possono essere arrotondati o visualizzati in formato esponenziale. Puoi utilizzare molti formati. Visita qui perottenere il format()disponibilii metodiTuttiFormattazione delle stringhe.
>>> # Formattazione degli interi >>> "La rappresentazione binaria di {0} è {0:b}".format(12) 'La rappresentazione binaria di 12 è 1100' >>> # Formattazione dei numeri a virgola mobile >>> "Representazione esponenziale: {0:e}".format(1566.345) 'Representazione esponenziale: 1.566345e+03' >>> # Arrotondamento >>> "One third is: {0:.3f}".format(1/3) 'One third is: 0.333' >>> # Allineamento delle stringhe >>> "|{:<10}|{:^10}|{:>10}|".format('butter','bread','ham') '|butter | bread | ham|'
Possiamo anche formattare le stringhe come lo stile vecchio di sprintf() nel linguaggio di programmazione C. Utilizziamo l'operatore % per completare questa attività.
>>> x = 12.3456789 >>> print('Il valore di x è %3.2f' % x) Il valore di x è 12.35 >>> print('Il valore di x è %3.4f' % x) Il valore di x è 12.3457
Gli oggetti stringa hanno molti metodi disponibili. Il metodo format() menzionato sopra è uno di essi. Metodi comuni includono lower(), upper(), join(), split(), find(), replace() e altri. Ecco l'elenco completoMetodi incorporati per la gestione delle stringhe in Python.
>>> 'w3codebox'.lower() w3codebox >>> 'w3codebox'.upper() w3codebox >>> 'Questo unirà tutte le parole in una lista'.split() ['Questo', 'unirà', 'tutte', 'le', 'parole', 'in', 'una', 'lista'] >>> ' '.join(['Questo', 'unirà', 'tutte', 'le', 'parole', 'in', 'una', 'stringa']) 'Questo unirà tutte le parole in una stringa' >>> 'Anno Nuovo'.find('ew') 7 >>> 'Anno Nuovo'.replace('Anno Nuovo','Splendido') 'Anno Nuovo Splendido'