Саптар жана алар боюнча операциялар
Сап түзүү
Сап түзүү
Python сапты түзүүнүн бир нече жолу бар.
Биринчиси – жалгыз апостроф 'текст'.Биринчи апостроф сапты ачат, андан кийин текст өзү келет, ал эми экинчи апостроф менен сапты жабасың.
Экинчи жол - "текст". цитата келтирүү. Ошондой эле, биринчи тырмакчалар менен сапты ачып, текст жазасыз жана тырмакчалар менен сапты жабасыз.
Эгер сиз апостроф менен ачып, цитата менен жапсаңыз, ката аласыз:
@E@'текст"
SyntaxError: unterminated string literal (detected at line 1)@E@
Эгер сиз эч кандай тырмакчаны кошпосоңуз, бул учурда ат катасын аласыз. Мунун себеби, Python бул сөздү сап катары эмес, өзгөрмөнүн аты катары карап, бул өзгөрмөнүн маанисин табууга аракет кылат. Биз аны түзбөгөндүктөн, биз бул катаны алабыз.
@E@текст
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
текст
NameError: name 'текст' is not defined@E@
Үчүнчү жол көп саптуу саптарды түзүү үчүн керек. Эгерде IDLEде сиз адегенде үч жалгыз апострофту терип, бир аз текстти терип, андан кийин Enter баскычын бассаңыз, программа сиздин андан ары теришиңизди күтөт. Андан кийин сиз текст жазып, жаңы сапка өтүп, андан кийин аны бир апостроф менен жаап, төмөнкүдөй сапты аласыз:
@A@'''hello
world
123'''
// 'hello\nworld\n123'@A@
Анда сиз адаттан тыш иконаларды көрөсүз. \n саптын үзүлүшүн билдирет. Бирок басып чыгаруу буйругун колдонууда, бул кызматтык символдор өздөрүнүн функционалдуулугуна, башкача айтканда, сап үзгүлтүккө айланат:
@A@print('hello\nworld\n123')
// hello
world
123@A@
Сиз ошондой эле өзгөрмөлөрдөгү саптарды оңой сактай аласыз. Мисалы, Hello сабын s өзгөрмөсүндө сактайлы:
@A@s = "Hello"
print(s)
// Hello@A@
Сапты өзгөрмөгө сактоонун дагы бир жолу - колдонуучудан input() буйругун колдонуп текст киргизүүнү сурануу.
@A@s = input()
Hello
print(s)
// Hello@A@
Өзгөрмөлөр 1 боштуктан жана бош саптардан турган саптарды да сактай алат:
@A@d = ' '
e = ''@A@
Конкатенация
Биз карап чыга турган биринчи операция сапты бириктирүү же бириктирүү же башка жол менен сап кошуу деп аталат. Ал мындай иштейт: биринчи сапты жазасыз, андан кийин кошуу белгисин (плюс) коесуз, андан кийин экинчи сапты жазасыз:
@A@'abc' + 'def'
//'abcdef'@A@
Биз ошондой эле өзгөрмөлөр менен бириктирүүнү колдоно алабыз:
@A@s = 'abc'
r = 'def'
s + r
//'abcdef'@A@
Байкаганыңыздай, бириктирүүдө саптардын ортосуна боштук салынбайт. Сиз муну төмөнкүдөй чече аласыз:
@A@s = 'Hello'
r = 'world'
s + ' ' + r
//'Hello world'@A@
Саптарды сан түрлөрү менен бириктирүүгө болбойт - бул катага алып келет
@E@s + 3
Traceback (most recent call last):
File "<pyshell#19>", line 1, in <module>
s + 3
TypeError: can only concatenate str (not "int") to str@E@
Бирок сиз ар дайым санды сапка чыгара аласыз. Python адегенде санды сап маалымат түрүнө айлантат, андан кийин бул 2 сапты бириктирет:
@A@s + str(3)
//'Hello3'@A@
Кайталанган сап(Дублирование строки)
Кийинки операция сапты кандайдыр бир санга көбөйтүү. Аткаруу натыйжасы көрсөтүлгөн санды кайталаган сап болот.
@A@'a' * 5
//'aaaaa'@A@
Биз, мисалы, s өзгөрмөсүн алып, аны 3кө көбөйтө алабыз:
@A@s
//'Hello'
s * 3
//'HelloHelloHello'@A@
Чыныгы сандарга көбөйтө албай турганыңызды эске алыңыз - сиз ката аласыз:
@E@s * 3.5
Traceback (most recent call last):
File "<pyshell#24>", line 1, in <module>
s * 3.5
TypeError: can't multiply sequence by non-int of type 'float'@E@
Узундугун табуу(нахождение длины)
Кийинки операция len() саптын узундугун англисче length табуу. Сиз бул len() функциясын жазып, ичиндеги сапты белгилейсиз. Сиз сапты түз көрсөтсөңүз болот же аны өзгөрмө катары өткөрө аласыз:
@A@s
//'Hello'
len('abc')
//3
len(s)
//5@A@
Боштуктар жана тыныш белгилери да эсептелет:
@A@len("!@#$")
//4
len(" ")
//1@A@
Сиз бул сыяктуу жөнөкөй программаны жаза аласыз:
@A@s = input()
print("Сиз киргиздиниз" , len(s),"символдорду")
print("Сиз киргиздиниз" , len(s),"символдорду")@A@
@T@Сиз киргиздиниз 47 символдорду@T@
Пайда болгонун текшерүү(проверка вхождение)
Кийинки операция биздин сапта кандайдыр бир субсаптын бар-жоктугун текшерет. Мисалы, биздин s өзгөрмө азыр Hello. деген сөздү камтыйт. Биз анда l белгисин же He камтыганын текшере алабыз. Ал символдун ирети жана регистр маанилүү экенин белгилей кетүү керек. Операциянын натыйжасы логикалык мааниге ээ болот:
@A@s
//'Hello'
"l" in s
//True
"He" in s
//True
"he" in s
//False@A@
Сапты салыштыруу(сравнение строк)
Саптарды бири-бири менен салыштырууга болот. Узундук жана символдор так дал келсе, саптар бирдей болот. Бул операцияда тамгалардын абалы да маанилүү:
@A@"aaa" == "aaa"
//True
"AAA" == "aaa"
//False
"aaa" == "aa"
//False@A@
Саптарды > жана < операторлору аркылуу да салыштырууга болот. Python саптарды символдор боюнча салыштырат. Алфавитте тамга канчалык алыс болсо, анын мааниси ошончолук жогору болот. Бирок туурараак айтканда, бул каармандардын коддору салыштырылат
@A@'a' > 'cde'
//False
'abc' > 'bc'
//False
'a' > 'A'
//True@A@
Эгерде саптар бирдей башталса, бирок алардын биринин аягында дагы 1 белги болсо, анда узунураак сызык чоңураак болот:
@A@'abcd' >'abc'
//True@A@