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
Operațiuni de bază cu șiruri de caractere
Strings sunt bucăți de text. Ele pot fi definite ca orice este între ghilimele:
astring = "Hello world!"
astring2 = 'Hello world!'
Așa cum poți vedea, primul lucru pe care l-ai învățat a fost să tipărești o propoziție simplă. Această propoziție a fost stocată de Python ca un șir de caractere. Totuși, în loc să tipărim imediat șiruri de caractere, vom explora diversele lucruri pe care le poți face cu ele. Poți folosi și ghilimele simple pentru a atribui un șir de caractere. Totuși, te vei confrunta cu probleme dacă valoarea de atribuit conține ea însăși ghilimele simple. De exemplu, pentru a atribui șirul în aceste paranteze (ghilimelele simple sunt ' '), trebuie să folosești doar ghilimele duble, astfel:
astring = "Hello world!"
print("single quotes are ' '")
print(len(astring))
Asta va afișa 12, deoarece "Hello world!" are 12 caractere, incluzând punctuația și spațiile.
astring = "Hello world!"
print(astring.index("o"))
Aceasta va afișa 4, deoarece locația primei apariții a literei "o" este la 4 caractere distanță de primul caracter. Observă cum există de fapt două "o" în frază - această metodă recunoaște doar prima.
Dar de ce nu a afișat 5? Nu este "o" al cincilea caracter în șir? Pentru a simplifica lucrurile, Python (și cele mai multe alte limbaje de programare) încep indexarea de la 0 în loc de 1. Astfel, indexul lui "o" este 4.
astring = "Hello world!"
print(astring.count("l"))
Pentru cei care folosesc fonturi amuzante, acesta este un L mic, nu un număr unu. Aceasta numără câte litere "l" sunt în șir. Prin urmare, ar trebui să afișeze 3.
astring = "Hello world!"
print(astring[3:7])
Aceasta afișează o secțiune a șirului, începând de la indexul 3 și terminând la indexul 6. Dar de ce 6 și nu 7? Din nou, majoritatea limbajelor de programare fac asta - face mai ușor calculul în interiorul acelor paranteze.
Dacă ai doar un număr în paranteze, îți va oferi singurul caracter de la acel index. Dacă omiți primul număr dar păstrezi colonul, îți va oferi o secțiune de la început până la numărul pe care l-ai lăsat. Dacă omiți al doilea număr, îți va oferi o secțiune de la numărul primit până la sfârșit.
Poți chiar pune numere negative în interiorul parantezelor. Ele sunt o cale ușoară de a începe de la sfârșitul șirului în loc de început. Astfel, -3 înseamnă "al treilea caracter de la sfârșit".
astring = "Hello world!"
print(astring[3:7:2])
Aceasta afișează caracterele șirului de la 3 la 7 sărind câte un caracter. Aceasta este o sintaxă extinsă pentru secțiuni. Forma generală este [start:stop:step].
astring = "Hello world!"
print(astring[3:7])
print(astring[3:7:1])
Observă că ambele produc același rezultat.
Nu există o funcție ca strrev în C pentru a inversa un șir. Dar cu tipul de sintaxă pentru secțiuni menționat mai sus poți inversa un șir astfel:
astring = "Hello world!"
print(astring[::-1])
Aceste
astring = "Hello world!"
print(astring.upper())
print(astring.lower())
Acestea fac un șir nou cu toate literele convertite la majuscule și, respectiv, la minuscule.
astring = "Hello world!"
print(astring.startswith("Hello"))
print(astring.endswith("asdfasdfasdf"))
Aceasta este folosită pentru a determina dacă șirul începe cu ceva sau se termină cu ceva, respectiv. Prima va afișa True, deoarece șirul începe cu "Hello". A doua va afișa False, deoarece sigur șirul nu se termină cu "asdfasdfasdf".
astring = "Hello world!"
afewwords = astring.split(" ")
Aceasta împarte șirul într-un grup de șiruri adunate într-o listă. Din moment ce acest exemplu împarte la un spațiu, primul element din listă va fi "Hello", iar al doilea va fi "world!".
Exercițiu
Încearcă să corectezi codul pentru a afișa informația corectă prin schimbarea șirului.
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!