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
Základní operace s řetězci
Řetězce jsou kousky textu. Mohou být definovány jako cokoli mezi uvozovkami:
astring = "Hello world!"
astring2 = 'Hello world!'
Jak vidíte, první věc, kterou jste se naučili, bylo tisk jednoduché věty. Tato věta byla v Pythonu uložena jako řetězec. Místo toho, abychom hned tiskli řetězce, prozkoumáme různé věci, které s nimi můžete dělat. Můžete také použít jednoduché uvozovky pro přiřazení řetězce. Budete ale mít problém, pokud hodnota, která má být přiřazena, samotná obsahuje jednoduché uvozovky. Například pro přiřazení řetězce v těchto závorkách (jednoduché uvozovky jsou ' ') potřebujete použít uvozovky dvojité, například takto:
astring = "Hello world!"
print("single quotes are ' '")
print(len(astring))
To vytiskne 12, protože "Hello world!" má 12 znaků, včetně interpunkce a mezer.
astring = "Hello world!"
print(astring.index("o"))
To vytiskne 4, protože první výskyt písmene "o" je 4 znaky od prvního znaku. Všimněte si, že ve frázi jsou vlastně dvě písmena o - tato metoda rozpozná pouze první.
Ale proč nevytisklo 5? Není "o" pátým znakem v řetězci? Aby to bylo jednodušší, Python (a většina dalších programovacích jazyků) začíná od 0 místo 1. Takže index "o" je 4.
astring = "Hello world!"
print(astring.count("l"))
Pro ty z vás, kteří používají vtipné fonty, je to malé L, ne číslo jedna. Tohle počítá počet l v řetězci. Proto by to mělo vytisknout 3.
astring = "Hello world!"
print(astring[3:7])
To vytiskne výřez z řetězce, začínající na indexu 3 a končící na indexu 6. Ale proč 6 a ne 7? Opět, většina programovacích jazyků to dělá - ulehčuje to matematiku uvnitř závorek.
Pokud máte v závorkách jen jedno číslo, získáte jednotlivý znak na daném indexu. Pokud vynecháte první číslo, ale ponecháte dvojtečku, získáte výřez od začátku až k číslu, které jste ponechali. Pokud vynecháte druhé číslo, získáte výřez od prvního čísla až do konce.
Můžete dokonce do závorek vložit záporná čísla. Jsou to snadný způsob, jak začít na konci řetězce místo na začátku. Takže -3 znamená "3. znak od konce".
astring = "Hello world!"
print(astring[3:7:2])
To vytiskne znaky z řetězce od 3 do 7 při vynechání jednoho znaku. Toto je rozšířená syntaxe výřezu. Obecný tvar je [start:stop:krok].
astring = "Hello world!"
print(astring[3:7])
print(astring[3:7:1])
Všimněte si, že oba vytisknou stejný výstup.
V jazyce C neexistuje funkce jako strrev pro otočení řetězce. Ale s výše uvedeným typem syntaxe výřezu můžete snadno otočit řetězec, například takto:
astring = "Hello world!"
print(astring[::-1])
Toto:
astring = "Hello world!"
print(astring.upper())
print(astring.lower())
Tato vytvářejí nový řetězec se všemi písmeny převedenými na velká a malá písmena, v uvedeném pořadí.
astring = "Hello world!"
print(astring.startswith("Hello"))
print(astring.endswith("asdfasdfasdf"))
Toto se používá k určení, zda řetězec začíná něčím nebo končí něčím, v uvedeném pořadí. První vytiskne True, protože řetězec začíná "Hello". Druhé vytiskne False, protože řetězec určitě nekončí "asdfasdfasdf".
astring = "Hello world!"
afewwords = astring.split(" ")
Toto rozděluje řetězec na hromadu řetězců seskupených dohromady v seznamu. Protože tento příklad se rozděluje podle mezery, první položka v seznamu bude "Hello" a druhá bude "world!".
Cvičení
Zkuste opravit kód tak, aby vytiskl správné informace změnou řetězce.
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!