Python - Stringhe

Le stringhe sono tra i tipi più popolari in Python. Possiamo crearli semplicemente racchiudendo i caratteri tra virgolette. Python tratta le virgolette singole come le virgolette doppie. La creazione di stringhe è semplice come assegnare un valore a una variabile. Ad esempio:

var1 = 'Hello World!'
var2 = "Python Programming"

Accesso ai valori nelle stringhe

Python non supporta un tipo di carattere; queste sono trattate come stringhe di lunghezza uno, quindi considerate anche una sottostringa.

Per accedere alle sottostringhe, utilizzare le parentesi quadre per l'affettatura insieme all'indice o agli indici per ottenere la sottostringa. Ad esempio:

#!/usr/bin/python

var1 = 'Hello World!'
var2 = "Python Programming"

print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]

Quando il codice sopra viene eseguito, produce il seguente risultato:

var1[0]:  H
var2[1:5]:  ytho

Aggiornamento delle stringhe

È possibile "aggiornare" una stringa esistente (ri) assegnando una variabile a un'altra stringa. Il nuovo valore può essere correlato al valore precedente oa una stringa completamente diversa. Ad esempio:

#!/usr/bin/python

var1 = 'Hello World!'
print "Updated String :- ", var1[:6] + 'Python'

Quando il codice sopra viene eseguito, produce il seguente risultato:

Updated String :-  Hello Python

Caratteri di fuga

La tabella seguente è un elenco di caratteri di escape o non stampabili che possono essere rappresentati con la notazione backslash.

Un carattere di fuga viene interpretato; in stringhe con virgolette singole e doppie virgolette.

Notazione backslash Carattere esadecimale Descrizione
\un 0x07 Campanello o avviso
\ b 0x08 Backspace
\ cx   Control-x
\ Cx   Control-x
\ e 0x1b Fuga
\ f 0x0c Formfeed
\ M- \ Cx   Meta-Control-x
\ n 0x0a Nuova linea
\ nnn   Notazione ottale, dove n è compreso tra 0,7
\ r 0x0d Ritorno in carrozza
\S 0x20 Spazio
\ t 0x09 Tab
\ v 0x0b Tab verticale
\X   Carattere x
\ xnn   Notazione esadecimale, dove n è compreso tra 0,9, af o AF

Operatori speciali di stringa

Assumi variabile stringa a contiene "Hello" e una variabile b contiene "Python", quindi -

Operatore Descrizione Esempio
+ Concatenazione: aggiunge valori su entrambi i lati dell'operatore a + b darà HelloPython
* Ripetizione: crea nuove stringhe, concatenando più copie della stessa stringa a * 2 darà -HelloHello
[] Slice - Fornisce il carattere dall'indice dato a [1] darà e
[:] Sezione intervallo: fornisce i caratteri dell'intervallo specificato a [1: 4] darà ell
in Appartenenza: restituisce vero se esiste un carattere nella stringa data H in a darà 1
Non in Appartenenza: restituisce vero se un carattere non esiste nella stringa data M non in a darà 1
r / R Stringa non elaborata: sopprime il significato effettivo dei caratteri di escape. La sintassi per le stringhe non elaborate è esattamente la stessa delle stringhe normali con l'eccezione dell'operatore di stringa non elaborata, la lettera "r", che precede le virgolette. La "r" può essere minuscola (r) o maiuscola (R) e deve essere posta immediatamente prima della prima virgoletta. print r '\ n' stampa \ ne print R '\ n'prints \ n
% Formato: esegue la formattazione delle stringhe Vedere nella sezione successiva

Operatore di formattazione delle stringhe

Una delle caratteristiche più interessanti di Python è l'operatore di formato stringa%. Questo operatore è unico per le stringhe e compensa il pacchetto di funzioni della famiglia printf () di C. Di seguito è riportato un semplice esempio:

#!/usr/bin/python

print "My name is %s and weight is %d kg!" % ('Zara', 21)

Quando il codice sopra viene eseguito, produce il seguente risultato:

My name is Zara and weight is 21 kg!

Ecco l'elenco del set completo di simboli che possono essere utilizzati insieme a% -

Simbolo di formato Conversione
% c personaggio
%S conversione di stringhe tramite str () prima della formattazione
%io intero decimale con segno
% d intero decimale con segno
% u numero intero decimale senza segno
% o numero intero ottale
%X intero esadecimale (lettere minuscole)
%X intero esadecimale (lettere MAIUSCOLE)
% e notazione esponenziale (con 'e' minuscola)
% E notazione esponenziale (con MAIUSCOLA 'E')
% f numero reale in virgola mobile
% g il più corto tra% f e% e
% G il più corto tra% f e% E

Altri simboli e funzionalità supportati sono elencati nella tabella seguente:

Simbolo Funzionalità
* l'argomento specifica la larghezza o la precisione
- giustificazione a sinistra
+ visualizzare il segno
<sp> lasciare uno spazio vuoto prima di un numero positivo
# aggiungere lo zero iniziale ottale ("0") o "0x" o "0X" iniziale esadecimale, a seconda che siano stati utilizzati "x" o "X".
0 pad da sinistra con zeri (invece di spazi)
% "%%" ti lascia con un singolo "%" letterale
(var) variabile di mappatura (argomenti del dizionario)
mn m è la larghezza totale minima e n è il numero di cifre da visualizzare dopo il punto decimale (se appl.)

Citazioni triple

Le virgolette triple di Python vengono in soccorso consentendo alle stringhe di estendersi su più righe, inclusi NEWLINE letterali, TAB e qualsiasi altro carattere speciale.

La sintassi per le virgolette triple consiste di tre consecutive single or double citazioni.

#!/usr/bin/python

para_str = """this is a long string that is made up of
several lines and non-printable characters such as
TAB ( \t ) and they will show up that way when displayed.
NEWLINEs within the string, whether explicitly given like
this within the brackets [ \n ], or just a NEWLINE within
the variable assignment will also show up.
"""
print para_str

Quando il codice precedente viene eseguito, produce il seguente risultato. Nota come ogni singolo carattere speciale è stato convertito nella sua forma stampata, fino all'ultimo NEWLINE alla fine della stringa tra "su". e chiusura di virgolette triple. Nota inoltre che i NEWLINE si verificano con un ritorno a capo esplicito alla fine di una riga o con il suo codice di escape (\ n) -

this is a long string that is made up of
several lines and non-printable characters such as
TAB (    ) and they will show up that way when displayed.
NEWLINEs within the string, whether explicitly given like
this within the brackets [
 ], or just a NEWLINE within
the variable assignment will also show up.

Le stringhe grezze non trattano affatto il backslash come un carattere speciale. Ogni carattere che inserisci in una stringa grezza rimane come l'hai scritto -

#!/usr/bin/python

print 'C:\\nowhere'

Quando il codice sopra viene eseguito, produce il seguente risultato:

C:\nowhere

Ora usiamo la stringa grezza. Metteremmo espressioner'expression' come segue -

#!/usr/bin/python

print r'C:\\nowhere'

Quando il codice sopra viene eseguito, produce il seguente risultato:

C:\\nowhere

Stringa Unicode

Le stringhe normali in Python vengono archiviate internamente come ASCII a 8 bit, mentre le stringhe Unicode vengono archiviate come Unicode a 16 bit. Ciò consente un set di caratteri più vario, inclusi caratteri speciali della maggior parte delle lingue del mondo. Limiterò il mio trattamento delle stringhe Unicode a quanto segue:

#!/usr/bin/python

print u'Hello, world!'

Quando il codice sopra viene eseguito, produce il seguente risultato:

Hello, world!

Come puoi vedere, le stringhe Unicode usano il prefisso u, proprio come le stringhe grezze usano il prefisso r.

Metodi di stringa incorporati

Python include i seguenti metodi integrati per manipolare le stringhe:

Sr.No. Metodi con descrizione
1 capitalizzare()

Capitalizza la prima lettera della stringa

2 center (width, fillchar)

Restituisce una stringa riempita di spazio con la stringa originale centrata su un totale di colonne di larghezza.

3 count (str, beg = 0, end = len (string))

Conta quante volte str si verifica in string o in una sottostringa di string se vengono fornite l'indice iniziale beg e l'indice finale finale.

4 decodifica (codifica = 'UTF-8', errori = 'rigoroso')

Decodifica la stringa utilizzando il codec registrato per la codifica. encoding ha come impostazione predefinita la codifica stringa predefinita.

5 codifica (codifica = 'UTF-8', errori = 'rigoroso')

Restituisce la versione stringa codificata della stringa; in caso di errore, l'impostazione predefinita è sollevare un'eccezione ValueError a meno che gli errori non vengano forniti con 'ignore' o 'replace'.

6 Endswith (suffisso, beg = 0, end = len (stringa))

Determina se stringa o una sottostringa di stringa (se vengono forniti l'indice iniziale beg e l'indice finale end) finisce con suffisso; restituisce true se è così e false in caso contrario.

7 expandtabs (tabsize = 8)

Espande le tabulazioni nella stringa in più spazi; il valore predefinito è 8 spazi per tabulazione se tabsize non è fornito.

8 trova (str, beg = 0 end = len (string))

Determina se str ricorre in una stringa o in una sottostringa di stringa se l'indice iniziale beg e l'indice finale sono dati alla fine restituisce l'indice se trovato e -1 altrimenti.

9 index (str, beg = 0, end = len (stringa))

Uguale a find (), ma solleva un'eccezione se str non viene trovato.

10 isalnum ()

Restituisce vero se la stringa contiene almeno 1 carattere e tutti i caratteri sono alfanumerici e false in caso contrario.

11 isalpha ()

Restituisce true se la stringa contiene almeno 1 carattere e tutti i caratteri sono alfabetici e false in caso contrario.

12 isdigit ()

Restituisce true se la stringa contiene solo cifre e false in caso contrario.

13 è più basso()

Restituisce vero se la stringa contiene almeno 1 carattere maiuscolo e tutti i caratteri maiuscoli sono in minuscolo e falso in caso contrario.

14 isnumeric ()

Restituisce true se una stringa Unicode contiene solo caratteri numerici e false in caso contrario.

15 isspace ()

Restituisce true se la stringa contiene solo spazi vuoti e false in caso contrario.

16 istitle ()

Restituisce true se la stringa è correttamente "titlecased" e false in caso contrario.

17 isupper ()

Restituisce vero se la stringa ha almeno un carattere maiuscolo e tutti i caratteri maiuscoli sono in maiuscolo e falso in caso contrario.

18 join (seq)

Unisce (concatena) le rappresentazioni di stringa degli elementi in sequenza seq in una stringa, con una stringa di separazione.

19 len (stringa)

Restituisce la lunghezza della stringa

20 ljust (larghezza [, fillchar])

Restituisce una stringa riempita di spazio con la stringa originale giustificata a sinistra per un totale di colonne di larghezza.

21 inferiore()

Converte tutte le lettere maiuscole nella stringa in minuscolo.

22 lstrip ()

Rimuove tutti gli spazi bianchi iniziali nella stringa.

23 maketrans ()

Restituisce una tabella di traduzione da utilizzare nella funzione di traduzione.

24 max (str)

Restituisce il numero massimo di caratteri alfabetici dalla stringa str.

25 min (str)

Restituisce il carattere alfabetico minimo dalla stringa str.

26 sostituire (vecchio, nuovo [, max])

Sostituisce tutte le occorrenze del vecchio nella stringa con nuove o al massimo il numero massimo di occorrenze se il numero massimo specificato

27 rfind (str, beg = 0, end = len (stringa))

Uguale a find (), ma cerca all'indietro nella stringa.

28 rindex (str, beg = 0, end = len (stringa))

Come index (), ma cerca all'indietro nella stringa.

29 rjust (width, [, fillchar])

Restituisce una stringa riempita di spazio con la stringa originale giustificata a destra per un totale di colonne di larghezza.

30 rstrip ()

Rimuove tutti gli spazi vuoti finali della stringa.

31 split (str = "", num = string.count (str))

Divide la stringa in base al delimitatore str (spazio se non fornito) e restituisce l'elenco delle sottostringhe; suddiviso in al massimo num sottostringhe se fornite.

32 splitlines (num = string.count ('\ n'))

Divide la stringa in tutte (o num) le NEWLINE e restituisce un elenco di ogni riga con le NEWLINE rimosse.

33 inizia con (str, beg = 0, end = len (stringa))

Determina se stringa o una sottostringa di stringa (se vengono forniti indice iniziale beg e finale indice finale) inizia con sottostringa str; restituisce true se è così e false in caso contrario.

34 striscia ([chars])

Esegue sia lstrip () che rstrip () su string.

35 swapcase ()

Inverte le maiuscole e le minuscole per tutte le lettere nella stringa.

36 titolo()

Restituisce la versione "titlecased" della stringa, ovvero tutte le parole iniziano con le maiuscole e il resto sono in minuscolo.

37 translate (tabella, deletechars = "")

Traduce la stringa in base alla tabella di traduzione str (256 caratteri), rimuovendo quelli nella stringa del.

38 superiore()

Converte le lettere minuscole nella stringa in maiuscolo.

39 zfill (larghezza)

Restituisce la stringa originale riempita a sinistra con zeri per un totale di caratteri di larghezza; inteso per i numeri, zfill () mantiene qualsiasi segno dato (meno uno zero).

40 isdecimal ()

Restituisce true se una stringa Unicode contiene solo caratteri decimali e false in caso contrario.