Дәріс №3
Дәріс тақырыбы: Python тіліндегі жолдар.
Дәрістің мақсаты:Python тіліндегі жолдар қарастыру.
Тақырып бойынша қарастырылатын сұрақтар:
1. Python тіліндегі жолдар.
2. Python тіліндегі жолдар
Жолдар. Жолдағы бос орындарды немесе бірнеше бос орындарды «*»
таңбасымен алмастыруды қарастырайық.
Бұндай есепті шығару үшін бірінші алгоритмін құрып алу керек. Егер
жолда бірнеше бос орын кездессе оны бір «*» таңбасымен алмастырып, ал
жолдың басы мен соңындағы бос орындарды ою керек.
Есепті шығару алгоритмі:
Жолды басынан бастап әр таңбасын қарап шығу. Бірінші тұрған бос
орындық емес таңбаның нөмірін есте сақтау қажет. Жолдың босорындық емес
бірінші таңбасынан соңына дейін бір бөлікті алу.
Жолды соңынан бастап қарап шығу. Жолдың соңынан бастағандағы
босорындық емес таңбаның нөмірін есте сақтау. Жолдың басынан бастап
соңынан санағандағы бірінші босорындық емес таңбаға дейінгі жолдың бір
бөлігін алу.
Жаңа жолға ескі жолдың бірінші таңбасын меншіктеу (ол барлық
жағдайда бос орын емес).
Ескі жолдың әр таңбасын қарап шығу. Егер келесі таңба бос орын
болмаса, онда жаңа жолды осы таңбаны қосу арқылы форматтау керек.
elif бұтасына бос орын таңбалары орналасады, бірақ бұл кезде бұрынғы
таңба бос орынға тең болды ма сол тексеріледі. Егер олай болмаса, онда тек
қана сонда жаң жолға "*" қосылады. Артық бос орындар жаңа жолға қосылмай
алып тасталады.
Мысалы:
s =input()
i =0
while s[i]==' ': i+=1
s = s[i:]
i =len(s)
while s[i-1]==' ': i-=1
s = s[:i]
s1 = s[0]
i =1
while i if s[i]!=' ':
s1 += s[i]
elif s[i-1]!=' ':
s1 +='*'
i +=1
print(s1+'!')
Скриптің орындалу мысалы:
one two three four f*ve six seven
one*two*three*four*f*ve*six*seven!
Бірақ Python бағдарламалау тілінде жолды тізімге айналдыру арқылы
есепті шешу немесе тұрақты өрнектер арқылы шығару оңайға түседі.
Бұндағы split() әдісі арқылы жолдар бос орындар бойынша сөздерге
бөлінеді. Бұл жерде олардың саны маңызды емес. Ары қарай тек сөздерді
қайта жолға "*" таңбасы арқылы жинақтау қалады:
s =input()
l = s.split()
s1 =''
for i in l:
s1 += i + '*'
s1 = s1[:-1]# соңғысын жоямыз "*"
print(s1)
Жолдардан санды таңдап алу.Натурал сандар мен сөздерден тұратын
жолдар берілген. Бұл жолдардағы сандардантізім құрау керек. Ол үшін
жолдарды әрбір таңбасы бойынша қарап шығу керек.
Осы бағдарламаның листингі келесі суретте бейнеленген:
s =input()
l =len(s)
integ =[]
i =0
while i < l:
s_int =''
a = s[i]
while'0'<= a <='9':
s_int += a
i +=1
if i < l:
a = s[i]
else:
break
i +=1
if s_int !='':
integ.append(int(s_int))
print(integ)
5 dkfj78df 9 8 dkfj8
Жауабы: [5, 78, 9, 8, 8]
Сурет 17 Жолдардан санды таңдап алу бағдарламасының листингі
Егер келесі таңба сан болса оны жаңа жолға қосу керек. Ары қарай одан
кейінгі таңбаларды қарап шығу керек. Егер олар да сандар болса, оларды да
жолдың соңына тіркеп отыру қажет. Келесі таңба сан емес болып шыққан
жағдайда немесе жолдың соңына жетсек цифрларландан тұрған жолды
сандарға айналдырып тізімне қосу керек.
Нөмірі бойынша сөзді табу. Мәтіннен арнайы нөмірі бойынша сөзді
табу (мысалы, реттік нөмірі бесінші сөзді табу). Экранға ол сөздің бірінші
әрпін шығару керек.
Сөзді санау үшін төмендегі программада count айнымалысы
қолданылады, ал f – біздің сол сөзде тұрымыз ба, әлде келесі жаң сөз басталып
кетті ме соны анықтайды.
Егер жаңа сөз басталса, сөздер есептегіші арта түседі, ал егер есептегіш
ізделінудегі сөздің нөміріне тең болса цикл аяқталады.
s =input()
l =len(s)
n =int(input("Номерслова: "))
count =0
f =0
i =0
while i < l:
if s[i]!=' 'and f ==0:
count +=1
f =1
if count == n:
break
elif s[i]==' ':
f =0
i +=1
print(s[i])
Кодтың орындалу мысалы:
Келесі мәндер енгізіледі: один два три четы пять шесть
Сөздің нөмірі: 4
Жауабы: ч
Алайда бұл есепті Python тілінің көмегімен шығару әлдеқайда ауқымды
емес, яғни төмендегі кестеде көрсетілгендей жазып шығуға болады.
Кесте 1
Python тіліндегі есептің қысқаша жазылу кестесі
s =input()
l =len(s)
n =int(input("Номерслова: "))
s = s.split()
print(s[n][0])
Бұндағы split() әдісі аргументсіз болған жағдайда, жолды бос орындары
бойынша сөздерге бөледі. s[n][0] өрнегі тізімнен n- элементті алып тастап,
содан соң жолдан бірінші таңбаны алады.
Достарыңызбен бөлісу: |