Деректер құрылымы және алгоритмдер түсінігі



Жұмыс түрі:  Материал
Тегін:  Антиплагиат
Көлемі: 27 бет
Таңдаулыға:   
Дәріс 1. Деректер құрылымы және алгоритмдер түсінігі
Деректер құрылымы мен алгоритмдер бағдарламалар құрылатын материалдар болып табылады. Сонымен қатар, компьютердің ӛзі деректер құрылымдары мен алгоритмдерден тұрады. Кірістірілген деректер құрылымы екілік шамалар сақталатын жадтың тіркемелері мен сӛздерімен берілген. Аппаратураның конструкциясына салынған Алгоритмдер-бұл электрондық логикалық тізбектерде іске асырылған қатаң ережелер, олар бойынша жадқа енгізілген деректер орындалуға жататын командалар ретінде түсіндіріледі. Сондықтан әр компьютер жұмысының негізінде тек бір ғана деректер түрімен - жеке биттермен немесе екілік сандармен операция жасай білу жатыр. Осы деректермен компьютер орталық процессордың командалар жүйесімен анықталатын ӛзгермейтін Алгоритмдер жиынтығына сәйкес ғана жұмыс істейді.
Константаның немесе айнымалының аты программистке кӛмектеседі, бірақ компьютерге ештеңе айтпайды. Компилятор, транслирующий мәтін бағдарламаны екілік код байланыстырады, әрбір идентификатор белгілі бір мекен. Бірақ компилятор мұны орындау үшін әрбір атаулы шаманың "түрі" туралы хабарлау керек. "Қолмен" қандай да бір тапсырманы шешетін адам деректердің түрлері мен әрбір түрі үшін әділ операцияларды тез түсінуге интуитивті қабілеті бар. Алайда, компьютер үшін барлық деректер түрлері сайып келгенде, биттердің кезектілігіне түседі, сондықтан түрлердегі айырмашылықты анық жасау керек.
Программалаудың кейбір тілдерінде әрбір константаның немесе айнымалының типі берілген мәннің жазбасы бойынша компилятормен анықталады; ондық нүктенің болуы, мысалы, нақты санның белгісі болып табылады. Басқа тілдерде бағдарламашы анық әр айнымалының түрін және бұл бір маңызды артықшылық береді қажет. Бұл дегеніміз, компилятор осы айнымалы бойынша орындалатын операцияларды тексере алады, және олардың барлығы айнымалы түрі сипаттамасымен келісілетініне кӛз жеткізуі мүмкін. Мұндай тексеру бағдарламаның бүкіл мәтінін талдау жолымен жүргізілуі мүмкін және бұл жағдайда ол осы бағдарламада айқындалатын барлық ықтимал іс-қимылдарды қамтиды.
1.1. Санау жүйелері
Деректер құрылымын зерттеу үшін алдымен санау жүйесінің түрлерін: позициялық және позициялық емес талқылау қажет.
Санаудың позициялық емес жүйелері
Сандар объектілер санын символдық түрде ұсыну үшін пайдаланылады. Санды ұсынудың ӛте қарапайым әдісі-бірдей таңбаларды пайдалану. Мұндай жүйеде таңбалар мен қайта есептелетін объектілер арасында ӛзара бір мәнді сәйкестік белгіленеді. Мысалы, алты нысан ****** немесе 111111 ретінде ұсынылуы мүмкін. Мұндай жүйе, егер оның кӛмегімен кӛптеген объектілерді ұсынуға қажет болса, ӛте ыңғайсыз болып табылады.
Римдік санау жүйесі кӛптеген объектілерді ұсыну проблемасын ішінара шешуді қамтамасыз етеді. Рим жүйесінде қосымша таңбалар қолданылады. Мысалы, егер i=*, Y=IIIII, X=YY, L=XXXXX және т. б. берілген шама бірқатар ережелердің сәйкес символдарды біріктірудің кӛмегімен ұсынылады, олар кейбір дәрежеде символдардың санына байланысты болады. Ең басынан бастап, жаңа таңбаны қалыптастыру мақсатында кейбір таңбаларды топтастыруға негізделген жүйенің кемшілігі-ӛте үлкен сандарды ұсыну үшін кӛптеген бірегей таңбаларды қажет етуі.
2 Позициялық санау жүйелері
Позициялық санау жүйесінде R бірегей таңбалардың жиыны қолданылады. R шамасы жиі санау жүйесінің негізі деп аталады. Позициялық жүйеде сан символдардың ӛзі де, олардың Сан жазбасындағы позициясы да кӛрсетіледі. Он негізі бар есептеу жүйесі, немесе ондық жүйе позициялық болып табылады. Мысалы, 1303 санын қарастырайық. Оны былай ұсынуға болады:
1*103 + 3*102 + 0*101 + 3*100.

Позициялық жүйеде бӛлшек сандар да ұсынылады. Мысалы, тӛрттен бір 0.25 түрінде жазылады, бұл: 2*10[-1] + 5*10[-2]
Санаудың позициялық жүйесінің тағы бір мысалы-екілік санау жүйесі. 11001.101 екілік саны ондық жүйеде 26.625 дегенді білдіреді. Осы екілік санның позициялық ұсынысына сәйкес жіктелуі:
1*2[4]+1*2[3]+0*2[1]+1*2[0] +1*2[-1]+0*2[-2]+1*2[-3] =16+8+1+0.5+0.125 =26.625.
Ең жиі кездесетін санау жүйелері 2,8,10 және 16 (екілік, сегіздік, ондық және он алтылық) жүйелер деп аталады. Есептеу техникасының элементтері екі базалық күйде жұмыс атқаратындықтан, онда есептеулер екілік санау жүйесінде орындалады. Ал, сегіздік және он алтылық санау жүйелері үлкен екілік сандарды ұсынуда тиімді болып табылады.
3 сандарды бір санау жүйесінен екіншісіне ауыстыру
Бүтін санды (санның бүтін бӛлігін) бір санау жүйесінен екінші санау жүйесіне ауыстырған кезде аудару орындалатын санау жүйесінің негізіне бӛлу қажет. Есептеу сан жаңа жүйенің негізінен аз болғанға дейін орындалады. Түрлендіру нәтижесі бӛлуден қалған қалдықтармен анықталады: бірінші қалдық нәтижелік санның ең кіші , ал соңғы қалдық ең үлкен цифрын береді.
Дұрыс бӛлшекті бір санау жүйесінен екінші санау жүйесіне ауыстырғанда, бӛлшек аудару орындалатын санау жүйесінің негізіне кӛбейтіледі. Бірінші кӛбейтуден кейін алынған тұтас бӛлік нәтижелік санның үлкен разряды болып табылады. Кӛбейтуді нәтиже нӛлге тең болғанша немесе нүктеден кейін қажетті дәлдік алынғанша жүргізу керек.
Аралас сандарды ауыстыру кезінде санның бүтін және бӛлшек бӛліктері жеке жеке ауыстырылады.

Дәріс 2. Деректер құрылымын жіктеу
Енді машиналық деңгейде берілген ақпаратты нақты анықтауға болады. Мазмұны мен күрделілігіне қарамастан ЭЕМ жадындағы кез келген деректер екілік разрядтардың немесе биттердің тізбектерімен беріледі, ал олардың мәндері тиісті екілік сандар болып табылады.
Биттер тізбегі түрінде қарастырылатын деректер ӛте қарапайым немесе басқаша айтқанда, әлсіз құрылымдалған. Адам үшін бит тізбектерінің терминдерінде күрделі деректерді сипаттау және зерттеу ӛте ыңғайсыз. Кез келген деректерді ұйымдастыру үшін биттен гӛрі үлкен және мазмұнды "деректер құрылымы" ұғымы қарастырылады.
Деректер құрылымы деп жалпы жағдайда деректер элементтері жиыны мен олардың арасындағы байланыстарды түсінеді. Мұндай анықтама деректерді құрылымдаудың барлық ықтимал тәсілдерін қамтиды, бірақ әрбір нақты жағдайда оның қандай да бір аспектілері пайдаланылады.
Деректер құрылымын зерттеуге кіріспес бұрын, олардың бірнеше белгілері бойынша жалпы жіктемесін береміз.
"Деректердің физикалық құрылымы" ұғымы деректерді машинаның жадында физикалық ұсыну тәсілін береді және сақтау құрылымы, ішкі құрылымы немесе жады құрылымы деп аталады.
Деректер құрылымын, оны машиналық жадқа ұсынбай қарастыру абстрактілі немесе логикалық құрылым деп аталады. Жалпы жағдайда логикалық және оған сәйкес физикалық құрылымдар арасында дәрежесі сол ортаның құрылымы мен ерекшеліктеріне байланысты болатын айырмашылық бар. Бұл айырмашылықтың салдарынан логикалық құрылымды физикалық және керісінше, физикалық құрылымды логикалық түрде бейнелеуді жүзеге асыратын ережелер бар. Бұл ережелер, бұдан басқа, жеке құрылымдарға қол жеткізуді және оларға түрлі операцияларды орындауды қамтамасыз етеді, әрі әрбір операция деректердің логикалық немесе физикалық құрылымына қатысты қарастырылады.

Деректердің қарапайым (базалық, примитивті) және интеграцияланған (құрылымдалған, композиттік, күрделі) құрылымы (типтері)бар. Қарапайым деректер құрылымы олар құрамдық бӛліктерге бӛлінуі мүмкін емес, биттерге қарағанда үлкен. Физикалық құрылым тұрғысынан бұл машиналық сәулетте, осы бағдарламалау жүйесінде біз осы қарапайым түрдің мӛлшері қандай болатынын және оның жадыда орналасу құрылымы қандай болатынын алдын ала білу маңызды болып есептелінеді. Логикалық тұрғыдан қарапайым деректер бӛлінбейтін бірліктер болып табылады.
Құрамдас бӛліктері деректердің басқа құрылымдары - қарапайым немесе ӛз кезегінде интеграцияланған болып табылатын деректер құрылымы интеграцияланған деректер құрылымы деп аталады. Интеграцияланған деректер құрылымын программист бағдарламалау тілдерімен ұсынылатын деректерді интеграциялау құралдарын пайдалана отырып құрастырады.
Деректер элементтері арасында анық берілген байланыстардың болмауына немесе болуына байланысты байланыссыз құрылымдарды (векторлар, массивтер, жолдар, стектер, кезектер) және байланыс құрылымдарын (байланысқан тізімдер) ажырату қажет.
Деректер құрылымының ӛте маңызды белгісі - оның ӛзгергіштігі - элементтер санының және (немесе) құрылым элементтері арасындағы байланыстардың ӛзгеруі. Құрылымның ӛзгергіштігін анықтауда деректер элементтері мәндерінің ӛзгеру фактісі кӛрсетілмеген, себебі бұл жағдайда барлық деректер құрылымы ӛзгергіштік қасиетіне ие болады. Ӛзгергіштік белгісі бойынша статикалық, жартылай статикалық, динамикалық құрылымдар ажыратылады. Деректер құрылымының ӛзгергіштік белгісі бойынша жіктелуі 1.1-суретте келтірілген. Негізгі деректер құрылымы, статикалық, жартылай статикалық және динамикалық жедел жадқа тән және жедел құрылымдар деп аталады. Файлдық құрылымдар сыртқы жаддың деректер құрылымдарына сәйкес келеді.
Программалау тілдерінде "деректер құрылымы" ұғымы "деректер типтері" ұғымымен тығыз байланысты. Кез келген деректер, яғни тұрақтылар, айнымалылар, функциялардың немесе ӛрнектердің мәндері ӛз типтерімен беріледі.
Әрбір тип бойынша келесі мәліметтер:
1) кӛрсетілген типтегі деректерді сақтау құрылымын, яғни жадты бӛлу және онда деректерді ұсынумен екілік кӛріністі интерпретациялау;
2) сипатталған типтегі қандай да бір объект қабылдайтын рұқсат етілген мәндердің жиыны;
3) сипатталған типтені объектіге қолдануға рұқсат етілген операциялар жайында бір мәнді ақпарат алуға болады.
Деректер құрылымдарына қолданылатын операциялар
Барлық деректер құрылымдарына тӛрт операция орындалуы мүмкін:құру, жою, таңдау, жаңарту.
Құру әрекеті-деректер құрылымы үшін жадты бӛлу. Жад бастапқы бағдарламада немесе компиляция кезеңінде айнымалының атауы бірінші рет пайда болғанда, бағдарламаны орындау барысында бӛлінуі мүмкін. Бірқатар тілдерде (мысалы, С) программист құрастырған құрылымдалған деректерді құру үшін құрылатын құрылым параметрлерінің бастапқы мәндерін орнату қажет.
Деректер құрылымын жою операциясының әрекеті оны құру операциясына қарама-
қарсы.
Таңдау әрекетін программистер құрылым ішіндегі деректерді пайдалануға қолданады.
Қол жеткізу операциясының формасы деректер құрылымының типіне байланысты. Ал, қолдану әдісі - құрылымның ең маңызды қасиеттерінің бірі, әсіресе, бұл сипаттың нақты деректер құрылымын таңдауға тікелей қатысы бар.

Жаңарту операциясы деректер құрылымындағы деректер мәнін ӛзгертуге мүмкіндік береді. Жаңарту операциясының мысалы-тағайындау операциясы, немесе күрделі нысанда - параметрлерді беру.
Жоғарыда кӛрсетілген тӛрт операция барлық құрылымдар мен деректер типтері үшін міндетті. Осы жалпы операциялардан басқа әрбір деректер құрылымы үшін кӛрсетілген үлгінің (осы құрылымның) деректерімен ғана жұмыс істейтін ерекше операциялар айқындалуы мүмкін. Ерекше операциялар әрбір нақты деректер құрылымын қарау кезінде қарастырылады.

Дәріс 3. Python тіліне кіріспе
Python тіліндегі бағдарламалар интерпретатормен орындалады. Әдетте ин-Python интерпретатормен орындалады. Әдетте ин-интерпретатормен орындалады. Әдетте интерпретатор python пәрменінің қарапайым енгізуінен туындайды. Алайда, интерпретатордың әртүрлі реализмдері мен әртүрлі даму ортасы бар (мысалы, Jython, IronPython, IDLE, ActivePython,
Wing IDE, pydev және т. б.), сондықтан шақыру тәртібі туралы ақпарат құжаттан қарастырылады. Интерпретаторды іске қосқаннан кейін командалық қабықшада қарапайым Оқу-орындау циклінде орындалатын бағдарламаларды енгізуге болатын енгізуге шақыру пайда болады. Мысалы, тӛменде интерпретатор авторлық құқық туралы ескертілген хабарды кӛрсетеді және шақыруды шығарады
енгізу
print "Привет, Мир" Привет, Мир

Ескерту: егер алдыңғы үлгіні сынап кӛргенде қате пайда болса
Syntax Error, сіз Python 3 нұсқасын қолданып отырсыз дегенді білдіреді. Онда printf нұсқауы функцияға ӛзгергенін есте сақтау керек. Яғни, мәндер жай жақшаға алынады. Мысалы:
print ("Сәлем, Әлем") Сәлем, Әлем
Python интерпретаторының интерактивті жұмыс режимі оның
ең пайдалы ерекшеліктерінің бірі болып табылады. Интерактивті қабықта кез келген рұқсат етілген нұсқауларды немесе олардың бірізділігін енгізугіп, нәтижелерді алуға болады.
Интерактивті режимде Python интерпр етаторын үстел калькуляторы ретінде пайдалануға болады.
Мысалы:
6000 + 4523.50 + 134.12
10657.620000000001
_ + 8192.32 18849.940000000002

Python интерпретаторын интерактивті режимде қолданғанда, арнайы айнымалы _ қолдануға болады. Оны орындау кезінде аралық нәтижелер сақтау үшін пайдалануға болады
. Алайда
бұл айнымалы интерпретатордың интерактивті режимде жұмыс істеу кезінде ғана анықталғанын есте сақтау маңызды.
Егер сізге қолданылатын бағдарламаны бірнеше рет қолдансаңыз онда, нұсқауларды тӛменде кӛрсетілгендей файлға қойыңыз:

# helloworld.py
print "Привет, Мир"

Python тіліндегі бастапқы файлдар әдеттегідей мәтін файлдары болып табылады және кеңейтілімі .py. Ал, # таңбасы жолдың соңына дейін созылатын түсіндірменің басталуын кӛрсетеді.
Файлды орындау үшін тӛменде кӛрсетілгендей оны helloworld.py интерпретаторға беру керек :

% python helloworld.py Привет, Мир
%

Windows жүйесінде Python тіліндегі бағдарламаны іске қосу үшін кеңейтімі .рy файлға тінтуірді екі рет нұқыңыз немесе бағдарлама атауын
іске қосу терезесінде ... (Run command) енгізіңіз.
Нәтижесінде консоль терезесінде кӛрсетілген бағдарламаны орындайтын интерпретатор іске қосылады. Дегенмен, консоль терезесі бағдарлама жұмысы аяқталғаннан кейін бірден жабылатыны есте сақтау керек. Баптау кезінде idle құралдарын қолданған жақсы.

Дәріс 4. Айнымалы және арифметикалық өрнектер
1.1 листингінде айнымалыларды пайдаланатын бағдарлама келтіріледі Листинг 1.1. Күрделі пайыздарды есептеу

principal = 1000 # Бастапқы rate = 0.05 # Процент numyears = 5 # жылы year = 1
while year = numyears:
principal = principal * (1 + rate)
print year, principal # В Python 3: print(year, principal) year += 1

Бағдарлама жұмысының нәтижесінде келесі кесте алынады: 1 1050.0
2 1102.5
3 1157.625
4 1215.50625
5 1276.2815625

Python-динамикалық типтеу тілі, яғни бағдарламаларды орындау барысында
бір айнымалы әр түрлі мәндерді сақтай алады. Меншіктеу операторы жай ғана айнымалы және мән арасында байланыс орнатады. Әрбір мән бүтін сан немесе жол сияқты деректердің жеке типіне ие болса да, айнымалылар типі жоқ және бағдарламаны орындау процесінде олар кез келген мәндерге сілтеме жасай алады. Бұл Python тілінің C тілінен ерекшелігі, мысалы, С тілінде айнымалы жадтың белгілі бір типін алады, ӛлшемі және орналасуы бар. Python тілінің динамикалық табиғатын 1.1 листингінде principal айнымалысы

мысалында бақылауға болады. Бастапқыда оған бүтін санды мән беріледі. Алайда кейінірек бағдарламада келесі тағайындау орындалады:

principal = principal * (1 + rate)

Бұл нұсқаулық ӛрнекті есептейді және principal атауымен айнымалының нәтижесін береді. Principal айнымалысының бастапқы мәні 1000 бүтін санына қарамастан, жаңа мән нақты сан болып табылады. Яғни бағдарламаның ортасында principal айнымалысының типі бүтін саннан динамикалық түрде нақты санға ӛзгереді. Бірақ, онда principal айнымалысының типі емес, тек бұл айнымалы сілтеме жасайтын мәннің типі ӛзгереді.
Жолдың соңы нұсқаулықты аяқтайды. Алайда, бірнеше нұсқауларды бір жолда үтірмен бӛлектеу арқылы орналастыруға болады:

principal = 1000; rate = 0.05; numyears = 5;

While нұсқаулығы тікелей келесі шартты ӛрнекті есептейді
ол. Егер ӛрнек нәтижесі ақиқат болса, while онда нұсқаулық денесі орындалады. Шартты ӛрнек және цикл денесі жалған мән алынғанша қайтадан есептеледі. Циклдің денесі шегініспен бӛлінген, яғни 1.1 листингінде әрбір итерацияда while нұсқаулығынан кейінгі үш оператор орындалады. Python тілі шегініс кӛлеміне қатаң талаптар қоймайды, бір блоктың шегінде тек бір ӛлшемдегі шегіністерді қолдану қажет.

0.1 листингінде ұсынылған бағдарламаның кемшіліктерінің бірі деректерді шығару кезінде пішімдеудің болмауы. Оны түзету үшін айнымалы мәндердің туралануын қолдануға болады оң жақ шетінде principal және олардың екі дәлдігін шектеу үтірден кейін белгілермен. Мұндай пішімдеуге бірнеше жолмен қол жеткізуге болады. Осындай мақсаттар үшін жолдарды пішімдеу операторы ( % ), тӛменде кӛрсетілгендей қолданылады:

print "%3d %0.2f" % (year, principal)
print("%3d %0.2f" % (year, principal)) # Python 3

Енді бағдарламаны шығару тӛменде кӛрсетілгендей орындалады: 1 1050.00
2 1102.50
3 1157.63
4 1215.51
5 1276.28

Пішім жолдары әдеттегі мәтін мен арнайы спецификтордан "%d", "%s"және "%f" тұрады. Келтірілген спецификаторлар белгілі бір типтерді - бүтін сандардың, нақты сандар мен жолдардың деректер пішімін анықтайды. Формат спецификаторлары шығыс ӛрісінің енін және мәндердің дәлдігін анықтайтын модификаторлар болуы мүмкін. Мысалы, "%3d " бүтін санды, ал "%0.2 f " нақты санды форматтайды.
Қазіргі заманда жолдарды форматтау format() функцияның кӛмегімен орындалады: Мысалы:

print format(year,"3d"), format(principal,"0.2f") print(format(year,"3d"), format(principal,"0.2f")) # Python 3

format() функциясына арналған пішім спецификаторлары әдеттегі пішімдеу (%) спецификаторына ұқсас. Мысалы, "3d" бүтін санды, ал "0.2 f" нақты санды пішімдейді . Сонымен қатар, бірнеше мәндерді пішімдеу үшін пайдаланылатын format () жеке әдісі бар. Мысалы:

print "{0:3d} {1:0.2f}".format(year,principal) print("{0:3d} {1:0.2f}".format(year,principal)) # Python 3

Бұл мысалда қос нүкте алдындағы сан " {0: 3d} "және" {1:0.2 f}" format () әдісінің аргументінің реттік нӛмірін анықтайды, ал
қос нүктеден кейінгі мән-пішім спецификаторы.

Дәріс 5. Шартты операторлар
Қарапайым тексеру үшін if else нұсқауларын қолдануға болады. Мысалы:

if a b:
print "Компьютер говорит Да" else:
print "Компьютер говорит Нет"

емес.
f және else нұсқауларының денелері шегініспен бӛлінеді. еlse нұсқаулығы міндетті

Ешқандай әрекет жасамайтын бос денені құру үшін pass нұсқаулығын тӛменде

кӛрсетілгендей пайдалануға болады:

if a b:
pass # Не выполняет никаких действий else:
print "Компьютер говорит Нет"
Булдік ӛрнектерді or, and және not кілттік сӛздер арқылы форматтауға болады: if product == "игра" and type == "про пиратов" \
and not (age 4 or age 8):
print "Я беру это!"

Python тілінде switch немесе case сияқты арнайы мәндерді тексеру нұсқаулығы жоқ. Бірнеше мәндерге сәйкестігін тексеру үшін, мысалы, elif нұсқаулығын пайдалануға болады:

if suffix =".html":
content = "texthtml" elif suffix == ".jpg":
content = "imagejpeg" elif suffix == ".png":
content = "imagepng" else:
raise RuntimeError("Содержимое неизвестного типа")

Мәнді анықтау үшін Boolean типіндегі True және False мәндері қолданылады

Мысалы:

if „spam‟ in s:
has_spam = True else:
has_spam = False

және сияқты барлық қатынас операторлары True немесе False қайтарады. Алдыңғы мысалда іске қосылған in операторы, жол, тізім немесе сӛздік сияқты басқа нысанға кейбір мәндердің кіруін тексеру, жиі пайдаланылады. Ол сондай-ақ True немесе False мәнін қайтарады, соның арқасында алдыңғы Мысал тӛменде кӛрсетілгендей жазуға болады:

has_spam = „spam‟ in s

Дәріс 6. Файлдармен енгізу-шығару операциялары
Келесі бағдарлама файлды ашады және оның мазмұнын оқиды:

f = open("foo.txt") # файлдық объектіні қайтарады
line = f.readline() # файлдың readline() файлы шақырылады while line:
print line, # „,‟ келесі жолға кӛшу орындалмайды # print(line,end=‟‟) # Python 3
line = f.readline() f.close()

оpen()функциясы жаңа файл нысанын қайтарады. Бұл әдістерді шақыру
файлға әр түрлі әрекеттер жасауға мүмкіндік береді. readline әдісі () файлдың бір жолын оқиды, соның ішінде соңғы аударма символы жолдар. Файлдың соңына жеткенде бос жол қайтарылады.
Бұл мысалда бағдарлама файлдағы барлық жолдарды ӛтеді. Циклдегі бағдарлама кейбір деректер коллекцияларын (мысалы, файлдағы жолдар, сандар, жол белгілері және т.б.) ӛтуі, итерация деп аталады

Python тілінде осы мақсаттар үшін коллекция элементтерін ӛтетін арнайы for нұсқаулығы қарастырылған. Мысалы, алдыңғы бағдарлама қысқаша былай жазылуы мүмкін:

for line in open("foo.txt"):
print line,

Бағдарлама нәтижесін файлға жазу үшін, print нұсқауына келесі файлға қайта бағыттау операторын қосуға болады.
Мысалы:

f = open("out","w") # Открывает файл для записи while year = numyears:
principal = principal * (1 + rate)
print f,"%3d %0.2f" % (year,principal) year += 1

f.close()

Оператор тек Python 2 ішінде пайдалануға болады. Python 3 print нұсқаулығын тӛменде кӛрсетілгендей ӛзгерту керек:

print("%3d %0.2f" % (year,principal),file=f)

Сонымен қатар, файлдық нысандарда, форматталмаған деректерді жазу үшін, write () әдісін пайдалануға болады. Мысалы, алдыңғы мысалдағы print нұсқаулығын келесі нұсқаулықпен ауыстыруға болады:

f.write("%3d %0.2f\n" % (year,principal))

Осы мысалдарда операциялар файлдарға орындалса да, осы тәсілдерді
стандартты енгізу және шығару ағындарымен жұмыс істегенде пайдалануға болады. Мысалы, пайдаланушы кірісін интерактивті режимде оқығыңыз келсе, оны sys.stdin файлынан алуға болады. Қажет болғанда деректерді экранға шығарып, оларды sys.stdout файлына жазуға болады, бұлар
print нұсқауымен қолданылады. Мысалы:

import sys
sys.stdout.write(Введите свое имя :") name = sys.stdin.readline()

Python 2 пайдалану кезінде бұл мысалды қысқартуға болады: name = raw_input("Введите свое имя :")
raw_input ()функциясы Python 3 - те input () деп аталды.

қажет:
Дәріс 7. Жолдар
Жол литерін құру үшін оны апострофқа, тырнақшаға немесе үштік тырнақшаға алу

a = "Привет, Мир!"
b = „Python - прелесть‟
c = """Компьютер говорит „Нет‟"""

Жол литері басында қолданылған нақ сол үлгідегі тырнақшалармен аяқталуы тиіс.
Үштік тырнақшаларда еркін ұзындықтағы мәтінді жазуда қолданады:

print „‟‟Content-type: texthtml ѐѐ
h1 Hello World h1
Click a href="http:www.python.org"here a.
„‟‟

Жолдар таңбалар тізбегі ретінде сақталады, оған қол жеткізуге нӛлден басталатын бүтін индексттерді қолданады. Жолдан жалғыз таңбаны шығару үшін оператор қолдануға s[i] индекстеу қолданылады мысалы,:

a = "Привет, Мир" b = a[4] # b = „е‟

Жолдың бӛлігін алуға S[i:j] қима операторын пайдалануға болады. Ол
i мен j аралығындағы барлық мәндерді алады i= k j. Егер қандай да бір индекстер түсірілген болса, ол жолдың басына немесе соңына сәйкес келеді деп болжанады:

c = a[:6] # c = "Привет" d = a[8:] # d = "Мир"
e = a[3:9] # e = "вет, М"

Жол конкатенациясы қосу операторының кӛмегімен орындалады (+): g = a + " Это проверка"
Python интерпретаторы жолды сан ретінде қабылдамайды, тіпті
егер ол тек сандық таңбалар болса. Мысалы, +оператор жолдарға әрқашан конкатенациясы операциясын орындайды :

x = "37"
y = "42"
z = x + y # z = "3742" (конкатенация строк)

Жолдар түрінде сақталған мәндердің арифметикалық нәтижесін орындау үшін алдымен жолдарды, int() немесе float () функциясы арқылы, сандық түрге айналдыру керек мәндер. Мысалы:

z = int(x) + int(y) # z = 79

Жолдық емес мәндерді str(), repr()немесе format () функциясы арқылы жолға түрлендіруге болады . Мысалы:

s = "Значение переменной x: " + str(x) s = "Значение переменной x: " + repr(x)
s = "Значение переменной x: " + format(x,"4d")

s tr() және repr () екі функциясы да мәндерді жолдарға айналдыратынына қарамастан, шын мәнінде, олар қайтаратын нәтижелер әдетте сәл ӛзгеше.
str() функциясы print нұсқаулығын беретін нәтиже ретінде, ал repr()функциясы жолды объект мәнін дәл кӛрсету үшін қолданылады. Мысалы:

x = 3.4
str(x)
„3.4‟
repr(x)

„3.3999999999999999‟

алдыңғы мысалда 3.4 саны дӛңгелектеу қатесі емес. Бұл ӛзгермелі сандарды ұсыну ерекшеліктерінің салдары компьютердің аппараттық шектеулерінен ондық форматта дәл ұсынылуы мүмкін емес.

Мәндерді жолға түрлендіру үшін format () функциясы қолданылады пішімдеу
. Мысалы:

format(x,"0.5f")
„3.40000‟

Дәріс 8. Тізімдер
Тізімдер-бұл ерікті нысандардың реті. Тізімдер тізім элементтерін тӛртбұрышты жақшаларға алу арқылы жасалады.

names = [ "Dave", "Mark", "Ann", "Phil" ]

Тізім элементтері бүтін сандармен индекстеледі, тізімнің бірінші элементі
индексі нӛлге тең. Тізімнің жеке элементтерін қолдану үшін индекстеу операторы қолданылады:

a = names[2] # Вернет третий элемент списка, "Ann"
names[0] = "Jeff" # Запишет имя "Jeff" в первый элемент списка

Жаңа элементтерді тізімнің соңына қосу үшін append() әдісі қолданылады: names.append("Paula")
Элементті тізімнің ортасына енгізу үшін insert() әдісі қолданылады: names.insert(2, " Thomas")
Кесу операторының кӛмегімен тізімде тұтас фрагменттерді алуға және ӛзгертуге болады:

b = names[0:2] # Вернет ["Jeff", "Mark"]
c = names[2:] # Вернет ["Thomas", "Ann", "Phil", "Paula"] names[1] = „Jeff‟ # Во второй элемент запишет имя „Jeff‟ names[0:2] = [„Dave‟,‟Mark‟,‟Jeff‟] # Заменит первые два элемента
# списком справа.

Қосу операторы ( + ) тізімдерді конкатенациялауды орындайды: a = [1,2,3] + [4,5] # тізім жасайды [1,2,3,4,5]
Бос тізімді екі жолмен жасауға болады:

names = [] # Бос тізім names = list () # Бос тізім

Тізімде басқа тізімдерді қоса алғанда, кез келген түрдегі нысандар болуы мүмкін, келесі мысалда кӛрсетілгендей:

a = [1,"Dave",3.14, ["Mark", 7, 9, [100,101]], 10]

Ішкі тізімдердегі элементтерге кіру тӛменде кӛрсетілгендей қосымша индекстеу операторларын қолдану арқылы жүзеге асырылады:

a[1] # Вернет "Dave" a[3][2] # Вернет 9 a[3][3][1] # Вернет 101

0.2 листингіндегі бағдарлама тізімдегі қосымша ерекшеліктерді кӛрсетеді
. Ол атауы кӛрсетілген файлдағы сандардың мәндерін командалық жолдың аргументі түрінде оқиды және ең кіші және ең үлкен мәндерді шығарады.

Листинг 1.2

import sys # Загружает модуль sys
if len(sys.argv) != 2 : # Проверка количества аргументов командной строки: print "Пожалуйста, укажите имя файла"
raise SystemExit(1)
f = open(sys.argv[1]) # Имя файла, полученное из командной строки lines = f.readlines() # Читает все строки из файла в список
f.close()

# Преобразовать ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Алгоритмнің құрылымдық негіздері мен қолдану тәсілдері
Алгоритм және алгоритмдеу ұғымдары
Визуалды тілдерде графиканы программалау. Нұсқаулық
Үлкен деректерді талдаудың әдістемесі
Мультипрограммалаудағы есептеу жүйелері
Алгоритмдеу және программалау
Turbo Pascal жүйесінде жолдарды ұйымдастыру технологиясы
Алгоритмдер және деректер структурасы
Орта мектепте программалау негіздерін оқыту
Алгоритмдердің түрлері
Пәндер