Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!
Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount
Operazioni di base sulle stringhe
I seguenti sono stringhe di testo. Possono essere definite come qualsiasi cosa tra virgolette:
astring = "Hello world!"
astring2 = 'Hello world!'
Come puoi vedere, la prima cosa che hai imparato è stata stampare una semplice frase. Questa frase è stata memorizzata da Python come una stringa. Tuttavia, invece di stampare immediatamente le stringhe, esploreremo le varie cose che puoi farci. Puoi anche usare virgolette singole per assegnare una stringa. Tuttavia, avrai problemi se il valore da assegnare contiene esse stesse virgolette singole. Ad esempio, per assegnare la stringa in queste parentesi (le virgolette singole sono ' '), devi usare solo le virgolette doppie in questo modo
astring = "Hello world!"
print("single quotes are ' '")
print(len(astring))
Questo stampa 12, perché "Hello world!" è lungo 12 caratteri, inclusi punteggiatura e spazi.
astring = "Hello world!"
print(astring.index("o"))
Questo stampa 4, perché la posizione della prima occorrenza della lettera "o" è 4 caratteri lontano dal primo carattere. Nota come ci sono effettivamente due "o" nella frase - questo metodo riconosce solo la prima.
Ma perché non ha stampato 5? Non è "o" il quinto carattere nella stringa? Per semplificare le cose, Python (e la maggior parte degli altri linguaggi di programmazione) inizia a contare da 0 invece che da 1. Quindi l'indice di "o" è 4.
astring = "Hello world!"
print(astring.count("l"))
Per quelli di voi che usano font strani, quello è una "L" minuscola, non un numero uno. Questo conta il numero di "l" nella stringa. Pertanto, dovrebbe stampare 3.
astring = "Hello world!"
print(astring[3:7])
Questo stampa una porzione di stringa, iniziando dall'indice 3 e terminando all'indice 6. Ma perché 6 e non 7? Ancora una volta, la maggior parte dei linguaggi di programmazione fa questo - rende più facile fare i calcoli all'interno di quelle parentesi.
Se hai solo un numero nelle parentesi, ti darà il singolo carattere a quell'indice. Se ometti il primo numero ma mantieni i due punti, ti darà una porzione dall'inizio fino al numero che hai lasciato. Se ometti il secondo numero, ti darà una porzione dal primo numero fino alla fine.
Puoi persino mettere numeri negativi all'interno delle parentesi. Sono un modo semplice per partire dalla fine della stringa invece che dall'inizio. In questo modo, -3 significa "3° carattere dalla fine".
astring = "Hello world!"
print(astring[3:7:2])
Questo stampa i caratteri della stringa da 3 a 7 saltando un carattere. Questa è una sintassi di porzione estesa. La forma generale è [start:stop:step].
astring = "Hello world!"
print(astring[3:7])
print(astring[3:7:1])
Nota che entrambi producono lo stesso output
Non esiste una funzione come strrev in C per invertire una stringa. Ma con il tipo di sintassi di porzione sopra menzionato puoi facilmente invertire una stringa in questo modo
astring = "Hello world!"
print(astring[::-1])
Questa
astring = "Hello world!"
print(astring.upper())
print(astring.lower())
Queste creano una nuova stringa con tutte le lettere convertite in maiuscole e minuscole, rispettivamente.
astring = "Hello world!"
print(astring.startswith("Hello"))
print(astring.endswith("asdfasdfasdf"))
Questo viene utilizzato per determinare se la stringa inizia con qualcosa o termina con qualcosa, rispettivamente. La prima stamperà True, poiché la stringa inizia con "Hello". La seconda stamperà False, poiché la stringa certamente non termina con "asdfasdfasdf".
astring = "Hello world!"
afewwords = astring.split(" ")
Questo divide la stringa in una serie di stringhe raggruppate insieme in una lista. Poiché questo esempio si divide a uno spazio, il primo elemento nella lista sarà "Hello" e il secondo sarà "world!".
Exercise
Cerca di correggere il codice per stampare le informazioni corrette modificando la stringa.
s = "Hey there! what should this string be?"
# Length should be 20
print("Length of s = %d" % len(s))
# First occurrence of "a" should be at index 8
print("The first occurrence of the letter a = %d" % s.index("a"))
# Number of a's should be 2
print("a occurs %d times" % s.count("a"))
# Slicing the string into bits
print("The first five characters are '%s'" % s[:5]) # Start to 5
print("The next five characters are '%s'" % s[5:10]) # 5 to 10
print("The thirteenth character is '%s'" % s[12]) # Just number 12
print("The characters with odd index are '%s'" %s[1::2]) #(0-based indexing)
print("The last five characters are '%s'" % s[-5:]) # 5th-from-last to end
# Convert everything to uppercase
print("String in uppercase: %s" % s.upper())
# Convert everything to lowercase
print("String in lowercase: %s" % s.lower())
# Check how a string starts
if s.startswith("Str"):
print("String starts with 'Str'. Good!")
# Check how a string ends
if s.endswith("ome!"):
print("String ends with 'ome!'. Good!")
# Split the string into three separate strings,
# each containing only a word
print("Split the words of the string: %s" % s.split(" "))
s = "Strings are awesome!"
# Length should be 20
print("Length of s = %d" % len(s))
# First occurrence of "a" should be at index 8
print("The first occurrence of the letter a = %d" % s.index("a"))
# Number of a's should be 2
print("a occurs %d times" % s.count("a"))
# Slicing the string into bits
print("The first five characters are '%s'" % s[:5]) # Start to 5
print("The next five characters are '%s'" % s[5:10]) # 5 to 10
print("The thirteenth character is '%s'" % s[12]) # Just number 12
print("The characters with odd index are '%s'" %s[1::2]) #(0-based indexing)
print("The last five characters are '%s'" % s[-5:]) # 5th-from-last to end
# Convert everything to uppercase
print("String in uppercase: %s" % s.upper())
# Convert everything to lowercase
print("String in lowercase: %s" % s.lower())
# Check how a string starts
if s.startswith("Str"):
print("String starts with 'Str'. Good!")
# Check how a string ends
if s.endswith("ome!"):
print("String ends with 'ome!'. Good!")
# Split the string into three separate strings,
# each containing only a word
print("Split the words of the string: %s" % s.split(" "))
test_object("s", incorrect_msg="Make sure you change the string assigned to `s` to match the exercise instructions.")
success_msg("Great work!")
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!