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

Основни операции със стрингове


Strings са фрагменти от текст. Те могат да бъдат определени като всичко между кавички:

astring = "Hello world!"
astring2 = 'Hello world!'

Както виждате, първото нещо, което научихте, беше отпечатването на просто изречение. Това изречение беше съхранено от Python като низ. Вместо веднага да отпечатваме низове, ще изследваме различните неща, които можете да правите с тях. Можете също така да използвате единични кавички, за да зададете низ. Обаче ще срещнете проблеми, ако стойността, която трябва да бъде зададена, съдържа единични кавички. Например, за да зададете низа в тези скоби (единични кавички са ' '), трябва да използвате само двойни кавички, като този начин:

astring = "Hello world!"
print("single quotes are ' '")

print(len(astring))

Това отпечатва 12, защото "Hello world!" е дълъг 12 символа, включително пунктуация и интервали.

astring = "Hello world!"
print(astring.index("o"))

Това отпечатва 4, защото мястото на първото появяване на буквата "o" е 4 символа от първия символ. Обърнете внимание как всъщност има две "о" в фразата – този метод разпознава само първото.

Но защо не отпечатва 5? Не е ли "o" петият символ в низа? За да улесни нещата, Python (и повечето други езици за програмиране) започва от 0 вместо от 1. Така индексът на "o" е 4.

astring = "Hello world!"
print(astring.count("l"))

За тези от вас, които използват смешни шрифтове, това е малка "l", а не номер едно. Това преброява броя на "l"-тата в низа. Следователно трябва да отпечата 3.

astring = "Hello world!"
print(astring[3:7])

Това отпечатва изрязване на низа, започващо от индекс 3 и завършващо на индекс 6. Но защо 6, а не 7? Отново, повечето езици за програмиране правят това – улеснява провеждането на математически операции в тези скоби.

Ако имате само едно число в скобите, то ще ви даде единствения символ на този индекс. Ако пропуснете първото число, но оставите двоеточието, ще получите изрязване от началото до числото, което сте оставили вътре. Ако пропуснете второто число, ще получите изрязване от първото число до края.

Можете дори да поставите отрицателни числа в скобите. Те са лесен начин да започнете от края на низа, вместо от началото. По този начин, -3 означава "трети символ от края".

astring = "Hello world!"
print(astring[3:7:2])

Това отпечатва символите на низа от 3 до 7, като пропуска един символ. Това е разширена синтаксис за изрязване. Общата форма е [start:stop:step].

astring = "Hello world!"
print(astring[3:7])
print(astring[3:7:1])

Обърнете внимание, че и двете произвеждат един и същ изход.

Няма функция като strrev в C за обръщане на низ. Но с гореспоменатия тип синтаксис за изрязване можете лесно да обърнете низ като този

astring = "Hello world!"
print(astring[::-1])

Това

astring = "Hello world!"
print(astring.upper())
print(astring.lower())

Те създават нов низ с всички букви, преобразувани съответно в главни и малки букви.

astring = "Hello world!"
print(astring.startswith("Hello"))
print(astring.endswith("asdfasdfasdf"))

Това се използва за определяне дали низът започва с нещо или завършва с нещо, съответно. Първото ще отпечата "True", тъй като низът започва с "Hello". Второто ще отпечата "False", тъй като низът със сигурност не завършва с "asdfasdfasdf".

astring = "Hello world!"
afewwords = astring.split(" ")

Това разделя низа на група низове, събрани заедно в списък. Тъй като този пример разделя при интервал, първият елемент от списъка ще бъде "Hello", а вторият ще бъде "world!".

Exercise

Опитайте да поправите кода, за да отпечатате правилната информация, като промените низа.

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!

Previous Tutorial Next Tutorial Take the Test
Copyright © learnpython.org. Read our Terms of Use and Privacy Policy