Linee. Panoramica

Una stringa - è un elenco (o sequenza) di caratteri situati in un particolare va bene. L'intera sequenza di caratteri viene trattata come un singolo oggetto.

Un carattere è qualsiasi cosa tu possa digitare sulla tastiera con una sola pressione di un tasto (lettera, numero, barra rovesciata o qualche altro carattere).

Le stringhe possono contenere spazi: "Hello world!".

Una stringa vuota è una stringa che ha 0 caratteri.

Python accetta come stringhe qualsiasi cosa racchiusa tra virgolette (" ") o apostrofi (' ').

In Python, una stringa è di tipo str.
 
Devi ricordare!
Le stringhe in Python sono immutabili!


È possibile scrivere un nuovo valore in una stringa utilizzando l'istruzione input
s = input()

Puoi anche semplicemente assegnare un valore stringa alla variabile, ad esempio  
s = 'Python'
o giù di lì
s = "Pitone"

Puoi determinare la lunghezza di una stringa usando la funzione incorporata len()
n = lente(e)


Confronto di stringhe

Le stringhe possono essere confrontate tra loro proprio come i numeri. Puoi determinare quale delle linee è maggiore, quale è minore.

Quando si confrontano le stringhe, vengono confrontati i codici dei caratteri. Esistono dozzine, se non centinaia, di codifiche dei caratteri. Il modo più semplice per comprendere questo concetto è comprendere uno dei più semplici, ASCII (leggi qui).   ;

È necessario capire che nelle codifiche moderne sia le lettere russe che quelle inglesi sono disposte in ordine alfabetico, anche i numeri vanno dal più piccolo al più grande. 
Ad esempio, nella tabella dei codici ASCII, il codice per la lettera inglese 'A' - 65, lettere 'a' - 97, cifra '0' ha il codice 48. Le lettere russe si trovano nella parte estesa della tabella dei codici ASCII (numeri da 128 a 255). Le lettere maiuscole vengono prima (cioè hanno un codice più piccolo) rispetto alle lettere minuscole.

Nella maggior parte delle tabelle di codifica utilizzate, i modelli sono gli stessi, le lettere minuscole sono successive alle lettere maiuscole, i numeri sono precedenti alle lettere e le lettere russe sono successive a quelle inglesi.
 
Quando si confrontano caratteri o stringhe, Python converte i caratteri nei rispettivi valori ordinali e poi li confronta da sinistra a destra. 

Ad esempio: "locomotiva"  < "battello a vapore", perché le parole differiscono nella quinta lettera e "in" < "x".

Divisione di una linea in parti

Quando inserisci una stringa, puoi immediatamente dividerla in parti con qualsiasi separatore.
Lo abbiamo già fatto quando abbiamo inserito più variabili numeriche sulla stessa riga. Abbiamo usato il metodo split() per dividere una stringa in parti. Per impostazione predefinita, separa le stringhe in sottostringhe in base allo spazio.
Usando questo metodo, puoi dividere la stringa in parti, ad esempio per spazi. E scrivi ogni parte della stringa in una variabile separata.
 
Esempio
s1, s2 = input().split()

Nell'esempio, quando si immettono due parole separate da uno spazio, la prima parola viene memorizzata nella variabile s1, la seconda - nella variabile s2.

Addizione e moltiplicazione di stringhe

È possibile aggiungere stringhe, per questo viene utilizzato il segno "+". Questa operazione è chiamata concatenazione di stringhe o concatenazione
 
Esempio 
s = "Ciao,"
s1 = "mondo"
print(s + s1)
Lo schermo visualizzerà la frase "Hello world" (senza virgolette).

Python implementa l'operazione di moltiplicazione di una stringa per un numero: sostituisce l'addizione multipla.
 
Esempio 
corda
s = "mondo "+"mondo "+"mondo "+"mondo "
può essere sostituito da  
s = "mondo " *4

Riferimento agli indici di riga

Ogni carattere in una stringa ha un numero (chiamato indice) e la numerazione inizia sempre da zero in molte lingue.
In Python, puoi specificare indici negativi. Ciò significa che conta dalla fine della riga.
 
Esempio 
Stringa S H e l l o
Indice S[0] S[1] S[2] S[3] S[4]
Indice S[-5] S[-4] S[-3] S[-2] S[-1]

Se aggiungi la lunghezza della stringa all'indice negativo, ottieni un "normale" posizione del carattere.
 
Devi ricordare!
In Python, non puoi modificare un singolo carattere in una stringa, perché le stringhe stesse sono immutabili. 

Itera su tutti i caratteri

Poiché è possibile accedere a un carattere tramite l'indice, è possibile utilizzare un ciclo variabile per eseguire iterazioni su tutti i caratteri, che assumeranno possibili valori di indice. Ad esempio, un programma che visualizza tutti i codici dei caratteri della stringa s avrà questo aspetto
for i in range(len(s)):
    print(s[i], ord(s[i]))
Spiegazioni per il programma:
1) La funzione len(s) trova la lunghezza di una stringa. L'indice del primo carattere è 0 e l'indice dell'ultimo è len(s)-1. La variabile di ciclo i prenderà semplicemente i valori in sequenza da 0 a len(s)-1.
2) In ogni riga verrà visualizzato prima il simbolo stesso e poi il suo codice, che viene restituito dalla funzione built-in ord().

La stessa enumerazione può essere scritta più breve:
per c in s:
    print(c, ord(c))
In questo frammento, l'intestazione del ciclo scorre tutti i caratteri s, inserendoli a turno nella variabile c.

Come già accennato, la particolarità di Python quando si lavora con le stringhe è che le stringhe sono oggetti immutabili. In altre parole, non possiamo modificare i singoli caratteri di una stringa.

Ad esempio, la seguente istruzione non funzionerà
s[5]='a'
Ma puoi comporre una nuova riga dai caratteri con le modifiche richieste.
 
Attività
Nella stringa di input, sostituisci tutti i caratteri 'a' ai caratteri 'b'. 
s = ingresso()
sNuovo = ""
per c in s:
    se c == 'a': c = 'b'
    sNuovo += c
print(sNuovo)

In questo programma, il ciclo passa attraverso tutti i caratteri della stringa s. Nel corpo del ciclo, controlliamo il valore della variabile с: se il simbolo corrisponde al simbolo 'a', allora lo sostituiamo con 'b' e aggiungilo alla fine della nuova riga sNew utilizzando l'operatore di addizione.
Questa opzione è piuttosto lenta.

In futuro, daremo un'occhiata alle funzioni di manipolazione delle stringhe integrate e impareremo come farlo più velocemente.