Šioje pamokoje išmoksite kurti, formatuoti, modifikuoti ir ištrinti „Python“ eilutes. Be to, jums bus pristatytos įvairios eilutės operacijos ir funkcijos.
Vaizdo įrašas: „Python“ eilutės
Kas yra eilutė „Python“?
Stygos yra simbolių seka.
Veikėjas yra tiesiog simbolis. Pavyzdžiui, anglų kalba yra 26 simboliai.
Kompiuteriai neturi reikalų su simboliais, jie susiduria su skaičiais (dvejetainiais). Nors ekrane gali būti rodomi simboliai, viduje jis saugomas ir valdomas kaip 0 ir 1 derinys.
Šis simbolio pavertimas skaičiumi vadinamas kodavimu, o atvirkštinis procesas yra dekodavimas. ASCII ir „Unicode“ yra vieni populiariausių naudojamų koduočių.
„Python“ eilutė yra „Unicode“ simbolių seka. „Unicode“ buvo pristatytas siekiant įtraukti visus simbolius visomis kalbomis ir užtikrinti kodavimo vienodumą. Apie „Unicode“ galite sužinoti iš „Python Unicode“.
Kaip sukurti eilutę „Python“?
Stygos gali būti sukurtos įtraukiant simbolius į vieną citatą arba dvigubas kabutes. „Python“ gali būti naudojamos net trigubos kabutės, tačiau paprastai jos naudojamos daugialypėms eilutėms ir instrukcijoms pavaizduoti.
# defining strings in Python # all of the following are equivalent my_string = 'Hello' print(my_string) my_string = "Hello" print(my_string) my_string = '''Hello''' print(my_string) # triple quotes string can extend multiple lines my_string = """Hello, welcome to the world of Python""" print(my_string)
Kai paleisite programą, išvestis bus:
Sveiki Sveiki Sveiki Sveiki, sveiki atvykę į Python pasaulį
Kaip pasiekti simbolius eilutėje?
Atskirus simbolius galime pasiekti naudodami indeksavimą, o simbolių diapazoną - pjaustydami. Indeksas prasideda nuo 0. Bandant pasiekti simbolį, esantį už indekso ribų, pakils IndexError
. Indeksas turi būti sveikas skaičius. Mes negalime naudoti plūdžių ar kitų tipų, tai bus TypeError
.
„Python“ leidžia neigiamą savo sekų indeksavimą.
Indeksas -1
nurodo paskutinį elementą, -2
antrą paskutinį elementą ir pan. Mes galime pasiekti eilutės elementų asortimentą naudodami pjaustymo operatorių :
(dvitaškis).
#Accessing string characters in Python str = 'programiz' print('str = ', str) #first character print('str(0) = ', str(0)) #last character print('str(-1) = ', str(-1)) #slicing 2nd to 5th character print('str(1:5) = ', str(1:5)) #slicing 6th to 2nd last character print('str(5:-2) = ', str(5:-2))
Vykdydami pirmiau nurodytą programą, gauname tokį išėjimą:
str = programizuoti str (0) = p str (-1) = z str (1: 5) = rogr str (5: -2) = am
Jei bandysime pasiekti indeksą, kuris yra už diapazono ribų, arba naudosime kitus skaičius nei sveikasis skaičius, gausime klaidų.
# index must be in range >>> my_string(15)… IndexError: string index out of range # index must be an integer >>> my_string(1.5)… TypeError: string indices must be integers
Pjaustymą galima geriausiai vizualizuoti, laikant indeksą tarp elementų, kaip parodyta žemiau.
Jei norime pasiekti diapazoną, mums reikia indekso, kuris supjaustys dalį iš eilutės.

Kaip pakeisti ar ištrinti eilutę?
Stygos yra nekintamos. Tai reiškia, kad eilutės elementai negali būti pakeisti, kai jie yra priskirti. Skirtingas eilutes galime tiesiog priskirti tam pačiam pavadinimui.
>>> my_string = 'programiz' >>> my_string(5) = 'a'… TypeError: 'str' object does not support item assignment >>> my_string = 'Python' >>> my_string 'Python'
Negalime ištrinti ar pašalinti simbolių iš eilutės. Bet visiškai ištrinti eilutę galima naudojant del
raktinį žodį.
>>> del my_string(1)… TypeError: 'str' object doesn't support item deletion >>> del my_string >>> my_string… NameError: name 'my_string' is not defined
„Python“ styginių operacijos
Yra daugybė operacijų, kurias galima atlikti su eilutėmis, todėl tai yra vienas iš dažniausiai naudojamų „Python“ duomenų tipų.
Norėdami sužinoti daugiau apie „Python“ pasiekiamus duomenų tipus, apsilankykite: „Python“ duomenų tipai
Dviejų ar daugiau stygų sujungimas
Dviejų ar daugiau stygų sujungimas į vieną yra vadinamas sujungimas.
+ Operatorius tai daro Python. Paprasčiausiai parašius du eilutės literalus kartu, jie taip pat sujungiami.
* Operatorius gali būti naudojamas pakartoti eilutę tam tikrą skaičių kartų.
# Python String Operations str1 = 'Hello' str2 ='World!' # using + print('str1 + str2 = ', str1 + str2) # using * print('str1 * 3 =', str1 * 3)
Vykdydami pirmiau nurodytą programą, gauname tokį išėjimą:
str1 + str2 = HelloWorld! str1 * 3 = Sveiki Sveiki Sveiki
Kartu parašius du eilutės literalus, jie taip pat sujungiami kaip + operatorius.
Jei norime susieti eilutes skirtingose eilutėse, galime naudoti skliaustus.
>>> # two string literals together >>> 'Hello ''World!' 'Hello World!' >>> # using parentheses >>> s = ('Hello '… 'World') >>> s 'Hello World'
Kartojasi per stygą
Mes galime kartoti per eilutę naudodami „for loop“. Štai pavyzdys, kaip suskaičiuoti „l“ skaičių eilutėje.
# Iterating through a string count = 0 for letter in 'Hello World': if(letter == 'l'): count += 1 print(count,'letters found')
Vykdydami pirmiau nurodytą programą, gauname tokį išėjimą:
Rasta 3 raidės
Styginių narystės testas
We can test if a substring exists within a string or not, using the keyword in
.
>>> 'a' in 'program' True >>> 'at' not in 'battle' False
Built-in functions to Work with Python
Various built-in functions that work with sequence work with strings as well.
Some of the commonly used ones are enumerate()
and len()
. The enumerate()
function returns an enumerate object. It contains the index and value of all the items in the string as pairs. This can be useful for iteration.
Similarly, len()
returns the length (number of characters) of the string.
str = 'cold' # enumerate() list_enumerate = list(enumerate(str)) print('list(enumerate(str) = ', list_enumerate) #character count print('len(str) = ', len(str))
When we run the above program, we get the following output:
list(enumerate(str) = ((0, 'c'), (1, 'o'), (2, 'l'), (3, 'd')) len(str) = 4
Python String Formatting
Escape Sequence
If we want to print a text like He said, "What's there?", we can neither use single quotes nor double quotes. This will result in a SyntaxError
as the text itself contains both single and double quotes.
>>> print("He said, "What's there?"")… SyntaxError: invalid syntax >>> print('He said, "What's there?"')… SyntaxError: invalid syntax
One way to get around this problem is to use triple quotes. Alternatively, we can use escape sequences.
An escape sequence starts with a backslash and is interpreted differently. If we use a single quote to represent a string, all the single quotes inside the string must be escaped. Similar is the case with double quotes. Here is how it can be done to represent the above text.
# using triple quotes print('''He said, "What's there?"''') # escaping single quotes print('He said, "What\'s there?"') # escaping double quotes print("He said, "What's there? "")
When we run the above program, we get the following output:
He said, "What's there?" He said, "What's there?" He said, "What's there?"
Here is a list of all the escape sequences supported by Python.
Escape Sequence | Description |
---|---|
ewline | Backslash and newline ignored |
\ | Backslash |
\' | Single quote |
" | Double quote |
a | ASCII Bell |
ASCII Backspace | |
f | ASCII Formfeed |
ASCII Linefeed | |
ASCII Carriage Return | |
ASCII Horizontal Tab | |
v | ASCII Vertical Tab |
ooo | Character with octal value ooo |
xHH | Character with hexadecimal value HH |
Here are some examples
>>> print("C:\Python32\Lib") C:Python32Lib >>> print("This is printedin two lines") This is printed in two lines >>> print("This is x48x45x58 representation") This is HEX representation
Raw String to ignore escape sequence
Sometimes we may wish to ignore the escape sequences inside a string. To do this we can place r
or R
in front of the string. This will imply that it is a raw string and any escape sequence inside it will be ignored.
>>> print("This is x61 good example") This is a good example >>> print(r"This is x61 good example") This is x61 good example
The format() Method for Formatting Strings
The format()
method that is available with the string object is very versatile and powerful in formatting strings. Format strings contain curly braces ()
as placeholders or replacement fields which get replaced.
We can use positional arguments or keyword arguments to specify the order.
# Python string format() method # default(implicit) order default_order = "(), () and ()".format('John','Bill','Sean') print('--- Default Order ---') print(default_order) # order using positional argument positional_order = "(1), (0) and (2)".format('John','Bill','Sean') print('--- Positional Order ---') print(positional_order) # order using keyword argument keyword_order = "(s), (b) and (j)".format(j='John',b='Bill',s='Sean') print('--- Keyword Order ---') print(keyword_order)
When we run the above program, we get the following output:
--- Default Order --- John, Bill and Sean --- Positional Order --- Bill, John and Sean --- Keyword Order --- Sean, Bill and John
The format()
method can have optional format specifications. They are separated from the field name using colon. For example, we can left-justify <
, right-justify >
or center ^
a string in the given space.
Taip pat galime formatuoti sveikus skaičius kaip dvejetainius, šešioliktainius ir kt., O plūdės gali būti suapvalintos arba rodomos rodiklio formatu. Galite naudoti daug formatų. Apsilankykite čia, jei norite sužinoti apie visus eilučių formatavimo format()
būdus.
>>> # formatting integers >>> "Binary representation of (0) is (0:b)".format(12) 'Binary representation of 12 is 1100' >>> # formatting floats >>> "Exponent representation: (0:e)".format(1566.345) 'Exponent representation: 1.566345e+03' >>> # round off >>> "One third is: (0:.3f)".format(1/3) 'One third is: 0.333' >>> # string alignment >>> "|(:10)|".format('butter','bread','ham') '|butter | bread | ham|'
Senojo stiliaus formatavimas
Mes netgi galime suformatuoti eilutes kaip seną sprintf()
stilių, naudojamą C programavimo kalboje. Tam mes naudojame %
operatorių.
>>> x = 12.3456789 >>> print('The value of x is %3.2f' %x) The value of x is 12.35 >>> print('The value of x is %3.4f' %x) The value of x is 12.3457
Paplitę „Python“ stygų metodai
Su eilutės objektu yra daugybė metodų. format()
Metodas, kuris jau minėta aukščiau, yra vienas iš jų. Kai kurie iš dažniausiai naudojamų metodų yra lower()
, upper()
, join()
, split()
, find()
, replace()
ir tt Čia yra pilnas sąrašas visų built-in metodų dirbti su styginiams Python.
>>> "PrOgRaMiZ".lower() 'programiz' >>> "PrOgRaMiZ".upper() 'PROGRAMIZ' >>> "This will split all words into a list".split() ('This', 'will', 'split', 'all', 'words', 'into', 'a', 'list') >>> ' '.join(('This', 'will', 'join', 'all', 'words', 'into', 'a', 'string')) 'This will join all words into a string' >>> 'Happy New Year'.find('ew') 7 >>> 'Happy New Year'.replace('Happy','Brilliant') 'Brilliant New Year'