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
Alapvető karakterlánc műveletek
A stringek szövegek darabjai. Bármilyen idézőjelbe tett szöveg stringnek tekinthető:
astring = "Hello world!"
astring2 = 'Hello world!'
Amint látható, az első dolog, amit megtanultál, egy egyszerű mondat kiíratása volt. Ezt a mondatot a Python egy stringként tárolta. Azonban, ahelyett hogy azonnal kiírnánk a stringeket, felfedezzük, hogy milyen különféle dolgokat tehetünk velük. Egyszeres idézőjeleket is használhatsz egy string hozzárendeléséhez. Ugyanakkor problémákba ütközhetsz, ha az érték, amit hozzárendelsz, maga is egyszeres idézőjeleket tartalmaz. Például ha a zárójelben lévő stringet (egyszeres idézőjelek vannak ' ') szeretnéd hozzárendelni, csakis dupla idézőjelek használatával teheted meg, így
astring = "Hello world!"
print("egyszeres idézőjelek vannak ' '")
print(len(astring))
Ez 12-t fog kiírni, mivel a "Hello world!" 12 karakter hosszú, beleértve az írásjeleket és a szóközöket.
astring = "Hello world!"
print(astring.index("o"))
Ez 4-et ír ki, mivel az "o" betű első előfordulásának helye 4 karakterre van az első karaktertől. Figyeld meg, hogy valójában két "o" is van a mondatban - ez a módszer csak az elsőt ismeri fel.
De miért nem 5-öt írt ki? Nem az "o" az ötödik karakter a stringben? Hogy egyszerűbb legyen, a Python (és a legtöbb más programozási nyelv) 0-tól kezdi a számozást, nem 1-től. Tehát az "o" indexe 4.
astring = "Hello world!"
print(astring.count("l"))
Azok számára, akik vicces betűtípusokat használnak, ez egy kisbetűs L, nem egyes szám. Ez megszámolja az "l" betűk számát a stringben. Ennélfogva 3-at kell kiírnia.
astring = "Hello world!"
print(astring[3:7])
Ez a string egy szeletét írja ki, a 3-as indextől kezdődően, és a 6-os indexig, de a 7-es indexet nem beleértve. De miért 6 és nem 7? Ismétlem, a legtöbb programozási nyelv így működik - ez megkönnyíti a számolást a zárójelek között.
Ha csak egy szám van a zárójelben, akkor az adott indexen lévő egyetlen karaktert adja vissza. Ha kihagyod az első számot, de a kettőspontot meghagyod, akkor egy szeletet ad vissza az elejétől a benne meghagyott számig. Ha kihagyod a második számot, akkor egy szeletet ad vissza az első számtól a végéig.
Még negatív számokat is betehetsz a zárójelbe. Ezek egy egyszerű módjai annak, hogy a string végéről kezdd a számolást az eleje helyett. Ily módon a -3 azt jelenti, hogy "a harmadik karakter a végétől".
astring = "Hello world!"
print(astring[3:7:2])
Ez a string karaktereinek kiírását jelenti a 3-tól 7-ig, minden második karaktert kihagyva. Ez egy kibővített szelet szintaxis. Az általános forma [kezdés:megállás:lépés].
astring = "Hello world!"
print(astring[3:7])
print(astring[3:7:1])
Megjegyzendő, hogy mindkettő ugyanazt az eredményt adja
Nincs olyan függvény, mint a strrev a C-ben, amely visszafordít egy stringet. De a fent említett szelet szintaxissal könnyen megfordíthatsz egy stringet így
astring = "Hello world!"
print(astring[::-1])
Ez
astring = "Hello world!"
print(astring.upper())
print(astring.lower())
Ezek egy új stringet hoznak létre, ahol az összes betű nagybetűsre, illetve kisbetűsre van alakítva.
astring = "Hello world!"
print(astring.startswith("Hello"))
print(astring.endswith("asdfasdfasdf"))
Ez arra van, hogy megállapítsd, hogy a string valamivel kezdődik vagy valamivel végződik. Az első kiírja, hogy True, mivel a string "Hello"-val kezdődik. A második kiírja, hogy False, mivel a string bizonyosan nem végződik "asdfasdfasdf"-fel.
astring = "Hello world!"
afewwords = astring.split(" ")
Ez a stringet több stringre darabolja, amelyeket egy listában csoportosít. Mivel ebben a példában szóköznél történik a darabolás, a lista első eleme "Hello", a második pedig "world!" lesz.
Exercise
Próbáld megjavítani a kódot, hogy a megfelelő információkat írassa ki a string megváltoztatásával.
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!