Python бағдарламалау тілі жайлы
Дәрістер кешені
Дәріс №1
Дәріс тақырыбы: Python бағдарламалау тілі туралы жалпы деректер. Python бағдарламалау тілінің шығу тарихы.
Дәрістің мақсаты: Python бағдарламалау тілі туралы жалпы деректер беру, тіл мүмкіндіктерін қарастыру.
Тақырып бойынша қарастырылатын сұрақтар:
1.Python бағдарламалау тілінің шығу тарихы.
2.Python тілінің мүмкіндіктері.
Python - жоғары дәрежелі кодтың оқылуын және әзірлеушінің өнімділігін арттыруға мақсатталған жалпы мақсаттағы бағдарламалау тілі. Python тілі аз синтаксисті талап етеді. Бірақ сол уақытта стандартты кітапханасы үлкен көлемді пайдалы функцияларды қамтиды.
Тілдің кеңейткіштері: .py, .pyw, .pyc, .pyo, .pyd болып келеді.
Python тілін әзірлеу голланд институтының қызметкері Гвидо ван Россуммен 1980 жылдың соңында басталған. Ол оны бос уақытында жаза бастаған. 1991 жылыдың 20 ақпанында алғашқы мәтіндерін жаңалықтар топтамасында жарыққа шығара бастады. Python тілі бастапқыдан объектіге бағытталған бағдарламалау тілі ретінде жобаланды.
Автор бағдарламаны 1970-жылдардағы танымал британ комедиялық Монти Пайтон Ұшатын циркі телешоуының құрметіне атаған. Көбі оны жыланның атымен байланыстырады. Бағдарламаның python.org сайтында (2.5 нұсқасына дейін) жыланның басы бейнеленген. Python әзірлеушісінің негізгі мақсаты - оны қолданушыға қызықты етіп жасау болды. Оны атауынан да байқауға болады. Оның бұл мақсаты бағдарламаны үйретуді ойын түрінде ұйымдастырып, ақпараттық материалдармен жабдықтағандығында. Бұл тілге деген қолданушылардың жақсы сын пікірлерінен Гвидоның дизайнерлік құрылымының да ұтымды болғанын дәлелдейді [13].
2008 жылдың 3 желтоқсанында ұзақ тестілеуден кейін Python 3000 (немесе Python 3.0) бірінші нұсқасы шыққан. Python 3000 бағдарламалау тілінде Python ескі нұсқаларымен сәйкестікті максимум сақтауға тырыса отырып, архитектурасы бойынша кемшіліктерді жойған. Қазіргі күні (Python 3.x және 2.x) екі даму бұтақтары да қолданып келе жатыр.
Python тілінің негізгі және аралық нұсқаларының уақыты:
Python 1.0-Қаңтар 1994;
Python 1.5 - 31 желтоқсан 1997;
Python 1.6-5 қыркүйек 2000;
Python 2.0 - 16 қазан 2000;
Python 2.1 - 17 сәуір 2001;
Python 2.2 - 21 желтоқсан 2001;
Python 2.3-29 шілде, 2003;
Python 2.4 - 30 қараша 2004;
Python 2.5-19 қыркүйек, 2006;
Python 2.6-1 қазан, 2008;
Python 2.7-3 шілде, 2010;
Python 3.0-3 желтоқсан, 2008;
Python 3.1-27 маусым 2009;
Python 3.2-20 ақпан, 2011;
Python 3.3-29 қыркүйек, 2012;
Python 3.4-16 наурыз, 2014.
Python тіліне басқа тілдердің ықпалы.
Python тілінің кешірек шыққандықтан оған көптеген тілдердің ықпалы болды. Мысалы келесі тілдердің:
ABC -- операторларды топтаудың шегіністері, жоғары деңгейлі деректер құрылымы. (Python тілі шындығында келегенде, ABC ОББ тілін жобалауда кеткен қателіктерді түзету үшін құрылған тіл болатын);
Modula-3 -- бумалары, модульдері;
С, C++ -- біршама синтаксистік конструкциялары;
Smalltalk -- объектіге бағытталған программалау;
Lisp -- (lambda, map, reduce, filter и другие) функционалды программалаудың айрықша белгілерін;
Fortran -- массивтер, кешенді арифметика;
Miranda -- тізімдік өрнектер;
Java -- logging, unittest, threading модульдерін, xml.sax стандартты библиотекасын, finally және except-тің ескерпелерді өңдеудегі біріктірілген қолданылуын;
Icon -- генераторларын [14].
Python тілінің басым бөлігі (мысалы, бастапқы кодтың байт-компиляциясы) бұрынырақта басқа бағдарламалау тілдерінде іске асырылатын.
2. Python тілінің мүмкіндіктері
Python тілін бағдарламалауда қолданудың қажеттігін дәлелдейтін көптеген мүмкіндіктері бар. Олар келесілер:
xmlhtml файлдарымен жұмыс жасау;
http сұраныстар жасау;
GUI (графикалық интерфейс)
Веб-сценарийлер құру;
FTP-мен жұмыс жасау;
Кескіндермен, аудио және видеомен жұмыс жасау;
Робототехникада қолдану;
Математикалық және ғылыми есептеулерді бағдарламалау және т.б.
Соған орай python бағдарламасы көптеген міндеттерді шешеді: резервті көшіру болсын, электронды поштаны оқу болсын немес қандай да ойынды құру болсын. Python бағдарламалау тілі ештеңемен шектелмегендіктен оны үлкен жобаларды пайдалануға болады. Мысалы ретінде, python тілі IT-дің алыптары болып табылатын, Google және Yandex жобаларында кеңінен қолданылады. Сонымен қатар, оның қарапайымдылығы мен әмбебаптығы бұл тілді ең үздік бағдарламалау тілдері қатарына қосады [15].
Тілін жүктеу және орнату. Python 3 бағдарламасын өз компьютеріңізге жүктеуді қарастырамыз. Ол тегін және еш тіркелусіз орындалады.
Windows жүйесіне Python тілін орнату
Алдымен оны ресми сайттан жүктеп алу керек. Басқа сайттардан көшіру қауіпті, яғни вирустық программалар болуы мүмкін. Программа тегін. Келесі сайттың адресіне кіру керек: https:python.orgdownloadswindow s, ішенен "latest python release" және python 3 таңдау керек.
Сурет 1 Бағдарламаны көшіруге арналған сайттың алғашқы бетінен үзінді
Таңдаған нұсқа бойынша сипаттамалары жазылған терезе пайда болады. Беттің соңына дейін көшіп, "download page" ашамыз.
Сурет 5 Жүктеуге болатын файлдар тізімі
Бұл жерден жүктеуге болатын файлдар тізімін байқауға болады. Сіздерге егер жүйе 32- биттік болса, онда Windows x86 MSI installer, егер жүйе 64-биттік болса, онда Windows x86-64 MSI installer файлын таңдау керек.
Сурет 2 Жүктеуге арналған файлдар тізімі
Python тілі жүктелгенше күтеміз. Жүктелген файлды ашу керек. Шығарушы қатарында Python Software Foundation жазуын көрсеңіздер, онда дұрыс таңдалды. Басқа жазу тұрса, ондай файлды ашпаған жөн [15].
Сурет 3 Хабарлама терезесі
Барлық қолданушыларға немесе тек бір қолданушыға орнатуды орындаймыз (өз қалауларыңызбен орнату керек).
Сурет 4 Орнату жағдайын таңдау терезесі
Орнатуға арналған буманы таңдау керек. Дискіден кез келген буманы таңдауға болады.
Сурет 5 Орнататын буманы таңдау терезесі
Компонентерін таңдауға болады. Егер таңдау білмеген жағдайда үнсіз келісім бойынша қалдыру керек.
Сурет 6 Компоненттерді таңдау терезесі
Python бағдарламасының орнатылғанын күту керек.
Finish батырмасын басқан соң бағдарлама орнатылды деп есептеу керек. Бұл нұсқада IDLE зірлеу ортасы ендірілген. Дәл қазір алғашқы бағдарлама жазуға болады.
Енді алғашқа бағдарламаны кез келген мәтіндік редакторда немесе IDLE әзірлеу ортасында жазуға болады.
IDLE әзірлеу ортасы. Алғашқы бағдарлама
Python бағдарламасын іске қосқан соң IDLE ортасын ашу керек (Python бағдарламалау тіліндегі әзірлеу ортасы).
Сурет 7 IDLE ортасын іске қосу терезесі
IDLE ортасы бастапқыда интерактивті режімде ашылады. Кейіннен программаны жазуды бастауға болады. Салт бойынша алғашқы программа "hello world" болады.
Python тілінде "hello world" сөз тіркесін жазу үшін тек бір ғана жолдың жазылуы жеткілікті:
----------------------------------- ----------------------------------- ----------
print("Hello world!")
Сурет 8 Python тілінде жазылған код
Бұл кодты IDLE ортасына енгізіп Enter батырмасына шертеміз.Нәтиже келесә суретте бейнеленген:
Сурет 9 Интерактивті режім терезесі
Осымен интерактивті режіммен таныс болдық. Келесі кодтарды да жазып тексеріп көруге болады.
print(3 + 4)
print(3 * 5)
print(3 ** 2)
Негізінде интерактивті режім ең негізгісі болып табылмайды, сондықтан көбінде бағдарламалық кодтарды файлға жазып, файлды тексеруге жіберіп отырып жұмыс жаслады. IDLE интерактивті режімінде жаңа файл құру үшін File -- New File (немесе Ctrl + N пернелер комбинациясын басу керек) [16].
Сурет 10 Жаңа файл құру терезесі
Ашылған терезеде келесі 15-суреттегі код теріледі:
----------------------------------- ----------------------------------- ----------
name = input("Атыңыз кім? ")
----------------------------------- ----------------------------------- ----------
print("Сәлем,", name)
Сурет 11 Алғашқы бағдарлама коды
Бірінші жол енгізуді талап етеді, яғни пернетақтадан жазған мәліметті енгізіп, Enter пернесін шерткенде енгізілген мәліметті name айнымалысына сақтайды..
Келесі жолда print функциясы қолданылады. Ол экранға Сәлем сөзінен кейін "name" айнымалысында сақталған сөзді шығарады.
Функционалды пернелерден F5 (немесе мәзірден IDLE Run -- Run Module командасын таңдап) басу және шыққан нәтиженің дұрыстығын тексеру керек.
Келесі суретте бейнеленген скриншотта оң бағанында нәтиже, сол жақ бағанында жазған бағдарлама көрсетіледі.
Сурет 12 Бағдарламаның нәтижесін шығару терезесі
Сонымен қарапайым бағдарламаның құрылуы іске асырылды. Енді тілдің синтаксисін қарастыруға болады.
Python тілінің синтаксисі. Негізгі ережелері:
Жолдың соңы интрукцияның соңы болып табылады (нүктелі үір қажет емес);
Ендірілген инструкциялар шегіністер өлшемі (көлемі) бойынша блоктарға біріктіріледі. Шегініс кезкелген болуы мүмкін, бастысы бір ендірілген блокқа бірдей шегініс өлшемі қолданылса болғаны. Кодтың оқылымы туралы да ұмытпау керек. 1 бос орын шегініс - ол ешқандай шешім болып табылмайды. Тым болмағанда 4 бос орын шегініс немесе табуляция белгісін қолданған дұрыс болады.
Python тілінде әр инструкциялар бір шаблонға сәйкес жазылады, негізгі инструкция қос нүктемен аяқталған соң, оның соңынан инструкцияның ендірілген блогы шегініс арқылы орналасады. Келесі суретте жазылуы бейнеленген:
----------------------------------- ----------------------------------- ----------
Негізгі инструкция:
----------------------------------- ----------------------------------- ----------
Инструкцияның ендірілген блогы
Сурет 13 Инструкцияның жазылуының бейнесі
Бірнеше арнайы жағдайлар бар. Олар:
Кейбір жағдайда бірнеше инструкцияны бір жолға нүктелі үтір арқылы жазуға болады:
----------------------------------- ----------------------------------- ----------
a = 1; b = 2; print(a, b)
Сурет 14 Бірнеше инструкцияны бір жолға жазу
Бұндайды көп қолдануға болмайды, әрқашан да оқылым туралы есте сақтау керек.
Бір инструкцияны бірнеше жолға да бөліп жазуға болады. Ол үшін бірнеше доғал, квардатты немесе жүйелі жақшаны қолдану керек.
----------------------------------- ----------------------------------- ----------
if (a == 1 and b == 2 and
----------------------------------- ----------------------------------- ----------
c == 3 and d == 4): # Не забываем про двоеточие
----------------------------------- ----------------------------------- ----------
print('spam' * 3)
Сурет 15 Бір инструкцияны бірнеше жолға бөліп жазу коды
Құрамдас интсрукцияның денесі сол негізгі дененің жазылған жолына орналасуы мүмкін, егер негізгі инструкцияның денесі құрамдас денені қамтымаса. Мысалы:
----------------------------------- ----------------------------------- ----------
if x y: print(x)
Сурет 16 Құрамдас және негізгі инчтрукцияның денесінің бір жолға жазылуы
Бағдарламалау тілінің толық синтаксисін түсіну үшін көптеген мысалдарды қарастыру керек. Бірнеше есептердің шығарылуын қарастырып барып түсінуге болады.
Дәріс №2
Дәріс тақырыбы: Негізгі Стандартты Python модульдері.
Дәрістің мақсаты: Негізгі Стандартты Python модульдерін қарастыру.
Тақырып бойынша қарастырылатын сұрақтар:
Модуль түсінігі.
Модуль түсінігі.
Стандартты кітапхананың модульдерін зерттеуге кіріспес бұрын, Python-да модуль деп аталады.
Модульдік тәсілге сәйкес бағдарламалау үлкен міндет бірнеше ұсақ болып бөлінеді, олардың әрқайсысын (Идеалда) жеке модуль шешеді. Әр түрлі әдістемелерде модуль өлшеміне әртүрлі шектеулер беріледі, алайда бағдарламаның модульдік құрылымын құру кезінде модульдердің композициясын құру маңызды, ол олардың арасындағы байланысты барынша азайтуға мүмкіндік береді. Өз элементтері арасында көптеген байланыстары бар сыныптар мен функциялар жиынтығы бір модульде қисынды орналастыру болар еді. Тағы бір пайдалы ескерту бар: модульдерді қайта жазудан гөрі пайдалану оңай болуы керек. Бұл дегеніміз, модуль ыңғайлы интерфейс болуы керек: функциялар жиынтығы, сыныптар және тұрақты, ол өз пайдаланушыларына ұсынады.
Python тілінде бір мәселеге арналған модульдер жиынтығын пакетке қоюға болады. Мұндай пакеттің жақсы мысалы-XML пакеті, онда XML өңдеудің әр түрлі аспектілеріне арналған модульдер жинақталған.
Python бағдарламасында модуль Модуль-нысан-модуль, Оның атрибуттары модульде анықталған атаулар болып табылады:
import datetime
d1 = datetime.date(2004, 11, 20)
Бұл мысалда datetime модулі импортталады. Import операторының жұмысы нәтижесінде ағымдағы атау кеңістігінде datetime атымен объект пайда болады.
Python тіліндегі бағдарламаларда қолдану үшін модульдер өзінің шығу тегі бойынша кәдімгі (Python-да жазылған) және басқа бағдарламалау тілінде жазылған кеңейту модульдеріне (әдетте C-да) бөлінеді. Пайдаланушы тұрғысынан олар жылдам әрекетпен ерекшеленуі мүмкін. Стандартты кітапханада модульдің екі нұсқасы бар: Python және C.бұл, мысалы, pickle және cPickle модульдері. Әдетте Python модульдері кеңейту модулдеріне қарағанда икемді.
Python модульдері
Модуль бастапқы коды бар жеке файл түрінде ресімделеді. Стандартты Модульдер тілдің тиісті интерпретаторын таба алатын каталогта болады. Python модульдерді іздейтін каталогтарға жолды sys айнымалысы мәнінен көруге болады.path:
sys.path
['', 'usrlocallibpython23.zip', 'usrlocallibpython2.3',
'usrlocallibpython2.3plat-linu x2', 'usrlocallibpython2.3lib-tk',
'usrlocallibpython2.3lib-dynlo ad',
'usrlocallibpython2.3site-pack ages']
Соңғы Python нұсқаларында модульдерді жинақы сақтау үшін zip-мұрағатына (Java-дағы jar-мұрағаттарға ұқсас) орналастыруға болады.
Модульдерді іздеу бағдарламасын іске қосқан кезде, ағымдағы каталогта жүреді. (Стандартты немесе қосымша орнатылған модульдермен аттар қақтығысы болмас үшін өз модульдерін Мұқият атауыңыз керек.)
Python бағдарламасына модульді қосу import операторының көмегімен жүзеге асырылады . Оның екі нысаны бар : import және from-import:
import os
import pre as re
from sys import argv, environ
from string import *
Бірінші пішін көмегімен ағымдағы көріну аймағымен тек модуль объектісіне сілтеме жасайтын атау ғана байланысады, ал екіншісін пайдаланған кезде модуль объектілерінің көрсетілген аттары (немесе қолданылса, барлық аттары * ) ағымдағы көріну аймағымен байланысады. Импорттау кезінде, as арқылы элементтің атын өзгертуге болады. Бірінші жағдайда модуль атаулары кеңістігі бөлек атауда қалады және модульден нақты атауына кіру үшін нүктені қолдану қажет. Екінші жағдайда аттар ағымдағы модульде анықталғандай қолданылады:
os.system("dir")
digits = re.compile("\d+")
print argv[0], environ
Модульді қайта импорттау әлдеқайда жылдам жүреді , себебі Модульдер интерпретатормен кэштеледі. Жүктелген модульді reload функциясы арқылы тағы да жүктеуге болады (мысалы, модуль дискіде өзгерсе)():
import mymodule
. . .
reload(mymodule)
Бірақ бұл жағдайда модульдің ескі нұсқасынан сыныптардың даналары болып табылатын барлық объектілер өз мінез-құлқын өзгертпейді.
Модульдермен жұмыс істеу кезінде басқа да қырлары бар . Мысалы, модульді импорттау процесін қайта анықтауға болады. Бұл туралы толығырақ түпнұсқа құжаттамадан білуге болады.
Дәріс №3
Дәріс тақырыбы: Python тіліндегі жолдар.
Дәрістің мақсаты: Python тіліндегі жолдар қарастыру.
Тақырып бойынша қарастырылатын сұрақтар:
Python тіліндегі жолдар.
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 len(s):
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- элементті алып тастап, содан соң жолдан бірінші таңбаны алады.
Дәріс №4
Дәріс тақырыбы: Python тіліндегі сандар.
Дәрістің мақсаты: Python тіліндегі сандар түрлерін қарастыру.
Тақырып бойынша қарастырылатын сұрақтар:
1.Python тіліндегі сандар.
1. Python тіліндегі сандар.
Python тілінде сандар келесі түрлері бар: бүтін, нақты, комплексті. Бүтін сандар (int). Python тіліндегі сандардың қарапайым сандардан еш айырмашылығы жоқ. Олар қарапайым математикалық операцияларды қолдайды және 5-кестеде көрсетілген.
Кесте 2
Математикалық операциялар
x + y
Қосу
x - y
Айырма
x * y
Көбейту
x y
Бөлу
x y
Бөлгендегі бүтін бөлік
2-кестенің жалғасы
x % y
Бөлгендегі қалдық
-x
Санның белгісін ауыстыру
abs(x)
Сан модулі
divmod(x, y)
(x y, x % y) жұп
x ** y
Дәрежеге шығару
pow(x, y[, z])
xy модулі бойынша (егер модулі берілсе)
Тағы бір айта кететіні, Python тіліндегі бүтін сандар, басқа бағдарламалау тілдеріне қарағанда ұзақ арифметиканы қолдайды (бірақ ол жадыдан көп орын талап етеді). Мысалы келесі 22-суретте бағдарламаның бөлігінің листингі көрсетілген.
----------------------------------- ----------------------------------- ----------
255 + 34
----------------------------------- ----------------------------------- ----------
289
----------------------------------- ----------------------------------- ----------
5 * 2
----------------------------------- ----------------------------------- ----------
10
----------------------------------- ----------------------------------- ----------
20 3
----------------------------------- ----------------------------------- ----------
6.666666666666667
----------------------------------- ----------------------------------- ----------
20 3
----------------------------------- ----------------------------------- ----------
6
----------------------------------- ----------------------------------- ----------
20 % 3
----------------------------------- ----------------------------------- ----------
2
----------------------------------- ----------------------------------- ----------
3 ** 4
----------------------------------- ----------------------------------- ----------
81
----------------------------------- ----------------------------------- ----------
pow(3, 4)
----------------------------------- ----------------------------------- ----------
81
----------------------------------- ----------------------------------- ----------
pow(3, 4, 27)
----------------------------------- ----------------------------------- ----------
0
----------------------------------- ----------------------------------- ----------
3 ** 150
----------------------------------- ----------------------------------- ----------
36998848503512697292470078245169664 41864731003897229738151844053017482 49
Сурет 18 Бүтін сандарға қолданылған операциялар
Биттік операциялар. Бүтін сандармен де биттік операцияларды орындауға болады.
Кесте 3
Биттік операциялар тізімі
x y
Биттік немесе
x ^ y
Биттік алып тастағыш немесе
x & y
Биттік и
x n
Солға биттік жылжу
x y
Оңға биттік жылжу
~x
Биттер инверсиясы
Қосымша әдістер. int.bit_length() - белгісі мен жетекші нөлдерін алып тастағандағы екілік жүйеде санды беру үшін қажетті биттер саны. Төменде көрсетілгендей:
n = -37
bin(n)
'-0b100101'
n.bit_length()
6
int.to_bytes(length, byteorder, *, signed=False) - осы санды беретін байттар жолын қайтарады. Ол келесі 23-суретте көрсетілді.
(1024).to_bytes(2, byteorder='big')
b'\x04\x00'
(1024).to_bytes(10, byteorder='big')
b'\x00\x00\x00\x00\x00\x00\x00\x00\ x04\x00'
(-1024).to_bytes(10, byteorder='big', signed=True)
b'\xff\xff\xff\xff\xff\xff\xff\xff\ xfc\x00'
x = 1000
x.to_bytes((x.bit_length() 8) + 1, byteorder='little')
b'\xe8\x03'
Сурет 19 Int.to_bytes әдісі
Келесі classmethod int.from_bytes(bytes, byteorder, *, signed=False) әдісі аталған байттар жолынан сандарды қайтарады.
int.from_bytes(b'\x00\x10', byteorder='big')
16
int.from_bytes(b'\x00\x10', byteorder='little')
4096
int.from_bytes(b'\xfc\x00', byteorder='big', signed=True)
-1024
int.from_bytes(b'\xfc\x00', byteorder='big', signed=False)
64512
int.from_bytes([255, 0, 0], byteorder='big')
16711680
Санау жүйелері. Сандар тек ғана ондық санау жүйесінде ғана емес сонымен қатар, басқа да санау жүйелерінде беріледі. Мысалы, компьютерде екілік санау жүйесі қолданылады. 19 саны екілік санау жүйесінде 10011 деп бейнеленеді. Кейбір жағдайда бір санау жүйесінен екіншіге көшу қажет болады. Оны орындауға Python тілі бірнеше функцияларды ұсынады:
int([object], [санау жүйесінің негізі]) - ондық санау жүйесіндегі бүтінге айналдыру. Бұл жерде үнсіз келісім бойынша ондық санау жүйесі қолданылады, бірақ негізін 2-ден 36-ға дейін таңдай отырып кез келген санау жүйесінде беруге болады.
bin(x) - бүтін санды екілік жолға айналдыру.
hex(х) - бүтін санды он алтылық жолға айналдыру.
oct(х) - бүтін санды сегіздік жолға айналдыру.
Келесі 20-суретте мысалдар көрсетілген.
a = int('19') # жоды санаға айналдыру
b = int('19.5') # жол бүтін сан болып табылмайды
Traceback (most recent call last):
File "", line 1, in
ValueError: invalid literal for int() with base 10: '19.5'
c = int(19.5) # жылжымалы нүктесі бар санға қолданылғанда бөлшек бөлігін алып тастайды
print(a, c)
19 19
bin(19)
'0b10011'
oct(19)
'0o23'
hex(19)
'0x13'
0b10011 # сандық тұрақтылықарды ослай да жазуға болады.
19
int('10011', 2)
19
int('0b10011', 2)
19
Сурет 20 Санау жүйесіне арналған мысалдар листингі
Нақты сандар (float). Нақты сандар да бүтін сандардағы сиқты операцияларды қолдайды, бірақ сандарды компьютерде бергендіктен нақты сандар нақты болмауы және қателіктерге соқтыруы мүмкін және оның өзі қателіктерге әкелуі мүмкін.
0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1
0.9999999999999999
Жоғары нақтылыққа қол жеткізу үшін басқа да объектілерді (Мысалы: Decimal және Fraction) қолдануға болады.
Сонымен қатар, нақты типтер ұзақ арифметиканы қолдамайды.
a = 3 ** 1000
a + 0.1
Traceback (most recent call last):
File "", line 1, in
OverflowError: int too large to convert to float
Сандармен қарапайым мысалдар:
c = 150
d = 12.9
c + d
162.9
p = abs(d - c) # сан модулі
print(p)
137.1
round(p) # Дөңгелектеу
137
Қосымша әдістері:
float.as_integer_ratio() - қатынасы осы санға тең болатын жұп сандар.
float.is_integer() - мән бүтін сан бола ма.
float.hex() - float-ты hex-ке түрлендіреді (он алтылық жүйеде).
classmethod float.fromhex(s) - он алтылық жолдағы float.
(10.5).hex()
'0x1.5000000000000p+3'
float.fromhex('0x1.5000000000000p+3 ')
10.5
Python тілінде сандармен жұмысқа қатысты стандартты өрнектерден басқа бірнеше қажетті модульдер бар. Келесі math модулі күрделі математикалық функцияларды қамтамасыз етеді. Оның қолданылуы төмендегідей.
import math
math.pi
3.141592653589793
math.sqrt(85)
9.219544457292887
Келесі random модулі - кездейсоқ сандар генераторы мен кездейсоқ функцияны таңдауды жүзеге асырады.
import random
random.random()
0.15651968855132303
Комплексті сандар (complex). Python тіліне сонымен қатар, комплекті сандар енгізілген.
21-суретте комплекс сандардың программада қолданылуы көрсетілген.
----------------------------------- ----------------------------------- ----------
x = complex(1, 2)
----------------------------------- ----------------------------------- ----------
print(x)
----------------------------------- ----------------------------------- ----------
(1+2j)
----------------------------------- ----------------------------------- ----------
y = complex(3, 4)
----------------------------------- ----------------------------------- ----------
print(y)
----------------------------------- ----------------------------------- ----------
(3+4j)
----------------------------------- ----------------------------------- ----------
z = x + y
----------------------------------- ----------------------------------- ----------
print(x)
----------------------------------- ----------------------------------- ----------
(1+2j)
----------------------------------- ----------------------------------- ----------
print(z)
----------------------------------- ----------------------------------- ----------
(4+6j)
----------------------------------- ----------------------------------- ----------
z = x * y
----------------------------------- ----------------------------------- ----------
print(z)
----------------------------------- ----------------------------------- ----------
(-5+10j)
----------------------------------- ----------------------------------- ----------
z = x y
----------------------------------- ----------------------------------- ----------
print(z)
----------------------------------- ----------------------------------- ----------
(0.44+0.08j)
----------------------------------- ----------------------------------- ----------
print(x.conjugate()) # түйіндес сан
----------------------------------- ----------------------------------- ----------
(1-2j)
----------------------------------- ----------------------------------- ----------
print(x.imag) # жорамал бөлігі
----------------------------------- ----------------------------------- ----------
2.0
----------------------------------- ----------------------------------- ----------
print(x.real) # нақты бөлігі
----------------------------------- ----------------------------------- ----------
1.0
----------------------------------- ----------------------------------- ----------
print(x y) # Комплексті санды салыстыруға болмайды
----------------------------------- ----------------------------------- ----------
Traceback (most recent call last):
----------------------------------- ----------------------------------- ----------
File "", line 1, in
----------------------------------- ----------------------------------- ----------
TypeError: unorderable types: complex() complex()
----------------------------------- ----------------------------------- ----------
print(x == y) # бірақ теңдікке тексеруге болады
----------------------------------- ----------------------------------- ----------
False
----------------------------------- ----------------------------------- ----------
abs(3 + 4j) # комплексті сан модулі
----------------------------------- ----------------------------------- ----------
5.0
----------------------------------- ----------------------------------- ----------
pow(3 + 4j, 2) # санның дәрежесін шығару
----------------------------------- ----------------------------------- ----------
(-7+24j)
Сурет 21 Комплексті сандар
Комплексті сандармен жұмыс жасау үшін сонымен қатар, cmath модулі де қолданылады.
Тізімдер (list). Тізімдердің функциялары мен әдістері. Тізімдер деген типке, олармен орындалатын операциялар және әдістерге, тізімдер генераторы және тізімдерді қолдануға тоқталайық.
Тізім дегеніміз не? Python-дағы тізім - ерікті түрдегі нысандардың (объектілердің) реттелген өзгертілетін топтамасы (массив сияқты, бірақ типтері әр басқа болуы мүмкін). Тізімдерді қолдану үшін оларды құрып алу керек. Тізімді бірнеше жолмен құруға болады. Мысалы, кез келген қайталанатын нысанды өңдеуге болады (мысалы, жолды list ендірілген функциясымен):
list('тізім')
['с', 'п', 'и', 'с', 'о', 'к']
Тізімді литералдардың да көмегімен құруға болады:
s = [] # Бос список
l = ['s', 'p', ['isok'], 2]
s
[]
l
['s', 'p', ['isok'], 2]
Мысалда көрсетілгендей, тізім кез-келген нысанның (кірістірілген тізімдерді қоса алғанда) кез келген санын қамтуы немесе ештеңені қамтымауы да мүмкін.
Тізімді құрудың тағы бір жолы - тізімдер генераторы. тізімдер генераторы - тізбектегі элементтің әрқайсысына өрнекті қолдана отырып жаңа тізімді құру тәсілі. Тізімдер генераторы for цикліне өте ұқсайды.
c = [c * 3 for c in 'list']
c
['lll', 'iii', 'sss', 'ttt']
Тізімдер генераторының бұдан да күрделі конструкциясы болуы мүмкін.
c = [c * 3 for c in 'list' if c != 'i']
c
['lll', 'sss', 'ttt']
c = [c + d for c in 'list' if c != 'i' for d in 'spam' if d != 'a']
c
['ls', 'lp', 'lm', 'ss', 'sp', 'sm', 'ts', 'tp', 'tm']
Бірақ күрделі жағдайларда тізімдерді жасау үшін әдеттегі for циклы қолданған жөн.
Тізімдердің функциялары мен әдістері. Тізімді құрып алған соң олармен жұмыс істеуге болады. Тізімдер үшін негізгі ендірілген функциялар мен әдістер бар.
Кесте 4
Тізімдер әдістері
Әдіс
Атқаратын қызметі
list.append(x)
Тізімнің соңына элемент қосады
list.extend(L)
L тізімінің барлық элементтерін соңына қосып list тізімін кеңейтеді
list.insert(i, x)
i-нші элементке x мәнін қояды
list.remove(x)
Х мәні бар тізімдегі бірінші элементті жояды. Егер ондай элемент жоқ болса ValueError деп шығады
list.pop([i])
i-ый элементті жояды және оны қайтарады. Егер индекс көрсетілмесе, соңғы элементті жояды
list.index(x, [start [, end]])
x мәні бар бірінші элементтің жағдайын қайтарады (бұнда іздеу start-тан end-қа дейін жүргізіледі)
list.count(x)
X мәні бар элементтердің санын қайтарады.
list.sort([key=функция])
Функциялар негізінде тізімді сұрыптайды
list.reverse()
Тізімді кеңейтеді (ашып жазады)
list.copy()
Тізімнің үстіңгі көшірмесі
list.clear()
Тізімді тазартады
Айта кету керек, тізімдер әдісі жолдың әдісіне қарағанда, тізімнің өзін өзгертеді, сондықтан орындаудың нәтижесін осы айнымалыға жазбауға болады.
l = [1, 2, 3, 5, 7]
l.sort()
l
[1, 2, 3, 5, 7]
l = l.sort()
print(l)
None
Тізімдермен жұмыстардың мысалдары::
a = [66.25, 333, 333, 1, 1234.5]
print(a.count(333), a.count(66.25), a.count('x'))
2 1 0
a.insert(2, -1)
a.append(333)
a
[66.25, 333, -1, 333, 1, 1234.5, 333]
a.index(333)
1
a.remove(333)
a
[66.25, -1, 333, 1, 1234.5, 333]
a.reverse()
a
[333, 1234.5, 1, 333, -1, 66.25]
a.sort()
a
[-1, 1, 66.25, 333, 333, 1234.5]
Кейбір кезде өнімділікті арттыру үшін тізімдерді әлдеқайда икемді массивтермен алмастырады (бұндай жағдайда әдетте ендірілген кітапханаларды қолданады. Мысалы NumPy).
Кортеждер (tuple). Келесі деректер типі кортеждер (tuple) деп аталады. Олар негізінен өзгертілмейтін тізімдер болып табылады.
Олар не үшін қажет?
Қорғау үшін. Кортеж әдейі және кездейсоқ өзгертулерден қорғалған.
Өлшемі аз. Негізі болмас үшін:
a = (1, 2, 3, 4, 5, 6)
b = [1, 2, 3, 4, 5, 6]
a.__sizeof__()
36
b.__sizeof__()
44
Кортеждерді сөздіктердің кілттері ретінде қолдану мүмкіндігі:
d = {(1, 1, 1) : 1}
d
{(1, 1, 1): 1}
d = {[1, 1, 1] : 1}
Traceback (most recent call last):
File "", line 1, in
d = {[1, 1, 1] : 1}
TypeError: unhashable type: 'list'
Кортеждармен қалай жұмыс істеу керек? Кортеждермен жұмыс тізімдермен сияқты жүзеге асырылады. Бос кортеж құру:
a = tuple() # tuple() ендірілген функциясы арқылы
a
()
a = () # кортеждің литералы арқылы
a
()
Бір элементтен кортеж құрамыз:
a = ('s')
a
's'
Бұл жерде жол пайда болды. Енді кортежді алу үшін келесі өзгерісті енгіземіз:
a = ('s', )
a
('s',)
Байқағандай барлық мәселе үтірде болды. Өз-өзімен жақшалар ештеңені бермейді. Кортежді келесі түрде де құруға болады.
a = 's',
a
('s',)
Әдетте жақша қою міндетті болады.
Қайталанатын объектісі бар кортежді де tuple() функциясы көмегімен қуруға болады.
a = tuple('hello, world!')
a
('h', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', '!')
Кортеждермен операциялар. Тізімдермен орындалатын барлық операциялар, өзгертілмейтін тізімдер(қосу, санға көбейту, index() және count() әдістері және бірнеше басқа да операциялар) орындалады.
Сонымен бірге, элементтердің орнын әр түрлі түрде ауыстыруға және т.с.с. атқаруға болады.
Мысалы: Python-да екі айнымалының мәнінің орнын ауыстыру :
a, b = b, a
Дәріс №5
Дәріс тақырыбы: Функциялар және файлдармен жұмыс.
Дәрістің мақсаты: Python бағдарламалау тілінде функциялар және файлдармен жұмыс жасауды қарастыру.
Тақырып бойынша қарастырылатын сұрақтар:
1.Функциялар және файлдармен жұмыс.
Функциялар және файлдармен жұмыс.
Бұнда атаулы мен анонимді функциялар және def, return және lambda интрукциялары қарастырылады. Сонымен қатар, функцияның міндетті және міндетті емес аргументтері, еркін санды аргументтері бар функциялар қарастырылады.
Атаулы функциялар, def инструкциясы. Python тіліндегі функция аргументтер қабылдайтын және мәнді қайтаратын нысан болып табылады. Әдетте функция def инструкциясы көмегімен анықталады.
Қарапайым функцияны анықтайық:
def add(x, y):
return x + y
return Инструкция мәнді қайтаруды талап етеді. Ал аталған жағдайда функция x пен y қосындысын қайтарады. Енді оны шақыруға болады
add(1, 10)
11
add('abc', 'def')
'abcdef'
Функция кез-келген күрделілікте болуы және барлық нысандарды (тізімдер, кортеждерді және тіпті функцияларды) қайтаруы мүмкін:
def newfunc(n):
... def myfunc(x):
... return x + n
... return myfunc
...
new = newfunc(100) # new - бұл функция
new(200)
300
Функция return инструкциясымен аяқталмауы да мүмкін, бірақ соның өзінде функция None мәнін қайтарады:
def func():
... pass
...
print(func())
None
Функция аргументтері. Функция кез келген сандағы аргументтерді қабылдауы мүмкін немесе мүлдем қабылдамауы да мүмкін. Сондай-ақ, аргументтер саны кез келген, позициялық және атаулы аргументтері бар функциялар, міндетті және міндетті емес функциялар кең таралған.
def func(a, b, c=2): # c - мінддетті емес аргумент
... return a + b + c
...
func(1, 2) # a = 1, b = 2, c = 2 (үнсіз жағдайда)
5
func(1, 2, 3) # a = 1, b = 2, c = 3
6
func(a=1, b=3) # a = 1, b = 3, c = 2
6
func(a=3, c=6) # a = 3, c = 6, b анықталмаған
Traceback (most recent call last):
File "", line 1, in
func(a=3, c=6)
TypeError: func() takes at least 2 arguments (2 given)
Функция позициялық аргументтердің айнымалы санын қабылдауы мүмкін, ондай жағдайда оның атауының алдына * қойылады:
def func(*args):
... return args
...
func(1, 2, 3, 'abc')
(1, 2, 3, 'abc')
func()
()
func(1)
(1,)
Мысалдан көргендей, функцияның барлық берілген аргументтерінің ішінен args - бұл кортеж, сонымен қатар айнымалының өзімен де кортежбен сияқты жұмыс істеуге болады.
Функция атаулы аргументтердің кез келген санын қабылдай алады, онда атудың алдына ** белгісі қойылады:
def func(**kwargs):
... return kwargs
...
func(a=1, b=2, c=3)
{'a': 1, 'c': 3, 'b': 2}
func()
{}
func(a='python')
{'a': 'python'}
Kwargs айнымалысында барлық әрекеттерді атқаруға болатын сөздік сақталады.
Анонимді функциялар, lambda инструкциясы. Анонимді функциялар тек бір ғана өрнекті қамтығандықтан тез орындалады. Анонимді функциялар lambda инструкциясының көмегімен құрылады. Сонымен қатар, оларды def func() инструкциясындағы сияқты міндетті түрде айнымалыларға меншіктеудің қажеті жоқ:
func = lambda x, y: x + y
func(1, 2)
3
func('a', 'b')
'ab'
(lambda x, y: x + y)(1, 2)
3
(lambda x, y: x + y)('a', 'b')
'ab'
lambda функциясы басқа функцияларға қарағанда return инструкциясын қажет етпейді, ал басқа жағынан еш айырмашылығы жоқ:
func = lambda *args: args
func(1, 2, 3, 4)
(1, 2, 3, 4)
Файлдар. Файлдармен жұмыс. Төменде python тілінің файлдармен әрекет жасауға арналған ендірілген құралдары қарастырылады: ашу жабу, оқу және жазу.
Файлмен жұмыс жасау үшін алдымен оны ашып алу керек. Ол үшін open ендірілген функциясы қолданылады:
f = open('text.txt', 'r')
Open функциясының көптеген өлшемдері бар, бірақ олардың ішінде ең қажетті 3 аргументі бар. Олардың біріншісі файлдың аты, файлға баратын жолдың өзі салыстырмалы немесе абсолютті болуы мүмкін. Екінші аргумент - ол файлды ашу режімі.
Кесте 4
Файлды ашу режімдері
Режім
Белгіленуі
'r'
Оқу үшін ашу (әдепкі мән болып табылады)
'w'
Жазу үшін ашу, файлдың ішіндегі мәні жойылады, файл жоқ болса, онда жаңадан құрылады
'x'
Жазу үшін ашу, егер файл жоқ болса, онда ерекше жағдай деп саналады
'a'
қосымша жазу үшін ашу, ақпарат файлдың соңына қосылады
'b'
Екілік режимде ашу
't'
мәтіндік режимде ашу (әдепкі мән болып табылады)
'+'
оқу және жазу үшін ашу
Режимдер біріктірілген болуы мүмкін, яғни, мысалы, 'rb' - екілік режімде оқу. Әдепкі жағдайда мәні 'rt' болады.
Соңғы аргумент encoding, ол тек мәтіндік режімде файлды оқу кезінде қажет. Бұл аргумент кодтауды анықтайды.
Файлдан оқу. Файлды ашқан соң одан ақпаратты оқуымыз керек. Ол үшін оның бірнеше тәсілі бар, бірақ соның ішінде екеуі ғана қажет болады.
Бірінші - егер аргументсіз болса файлды тұтастай, егер n (бүтін санмен) аргументімен шақырылса, онда n символымен оқылатын read әдісі.
f = open('text.txt')
f.read(1)
'H'
f.read()
'ello world!\nThe end.\n\n'
Тағы бір тәсілі - файлды - for циклін қолдану арқылы файлды жол жолымен оқу:
f = open('text.txt')
for line in f:
... line
...
'Hello world!\n'
'\n'
'The end.\n'
'\n'
Файлға жазу. Файлға келесі тізімді жазуды орындап көрейік:
l = [str(i)+str(i-1) for i in range(20)]
l
['0-1', '10', '21', '32', '43', '54', '65', '76', '87', '98', '109', '1110', '1211', '1312', '1413', '1514', '1615', '1716', '1817', '1918']
Файлды жазу үшін ашу:
f = open('text.txt', 'w')
Файлға жазу write әдісі арқылы жүзеге асырылады. Ол келесі 26-суретте көрсетілген:
for index in l:
... f.write(index + '\n')
...
4
3
3
3
3
Сурет 22 Write әдісі арқылы файлға жазу
Жоғарыда көрсетілген жазбалардан: write әдісі жазылған символдардың санын қайтарады [17].
Файлмен жұмыс жасап болған соң оны міндетті түрде close әдісі арқылы жабу керек:
f.close()
Енді осы тізімді құрылған файлдан қайта жасауға тырысайық. Ол үшін файлды оқу үшін ашып жолдарын оқу керек.
f = open('text.txt', 'r')
l = [line.strip() for line in f]
l
['0-1', '10', '21', '32', '43', '54', '65', '76', '87', '98', '109', '1110', '1211', '1312', '1413', '1514', '1615', '1716', '1817', '1918']
f.close()
Жоғарыда көрсетілгендей қайта сол тізім алынды. Күрделірек жағдайда жазу алгоритмін ойлап табу қиынға соғады. Сондықтан Python тілінде ондай жағдайлар үшін баяғыдан pickle немесе json сияқты құралдары ойлап табылған. Олар файлда анағұрлым күрделі құрылымдарды сақтауға мүмкіндік береді [17].
Дәріс №6
Дәріс тақырыбы: Сандық алгоритмдер. Матрицалық есептеулер.
Дәрістің мақсаты: Сандық алгоритмдер мен матрицалық есептеулерді қарастыру.
Тақырып бойынша қарастырылатын сұрақтар:
Numeric Python.
Numeric Модулі.
Массивті құру.
1. Numeric Python.
Бұл бөлім жеткілікті дәрежеде ескірген. Қазір модуль numpy деп аталады. Жалпы, Numeric-те болған барлық numpy-да қол жетімді, бірақ аттар сәйкес келмеуі мүмкін. Numeric NumPyoldnumeric сияқты қол жетімді. Сіздің құжаттама.
Numeric Python - көптеген сандық қосымшалар үшін қажетті көп өлшемді массивтерді есептеу үшін бірнеше модуль. Numeric модулі MatLab, Octave (MATLAB аналогы), APL, J, S+, ID сияқты пакеттер мен жүйелердің Python мүмкіндіктерін енгізеді. Пайдаланушылар Numeric-ті оңай және ыңғайлы табады. Кейбір Python синтаксистік мүмкіндіктері (кесіктерді пайдаланумен байланысты) Numeric үшін арнайы әзірленген.
Numeric Python үшін құралы бар:
матрицалық есептеулер;
FFT Фурье жылдам түрлендіру;
жетіспейтін ma эксперименталдық деректермен жұмыс істеу;
RNG статистикалық модельдеу;
MatLab бағдарламасының негізгі функцияларының эмуляциясы.
Numeric Модулі.
Numeric модулі толымды түрді анықтайды-массив және массив операцияларына арналған функциялардың көп санын қамтиды. Массив-бұл индекстер бойынша қолжетімді біртекті элементтер жиынтығы. Numeric Модулінің массивтері көп өлшемді, яғни бір мөлшерден артық болуы мүмкін.
Массивті құру.
Массивті жасау үшін, массивтің мазмұнын (ішкі тізімдер түрінде) және түрін көрсете отырып, array () функциясын пайдалануға болады. Array() функциясы дәлел - массив болса, көшірмесін жасайды. As array() функциясы ұқсас жұмыс істейді, бірақ оның аргументі массиві болған кезде жаңа массив жасамайды:
from Numeric import *
print array([[1, 2], [3, 4], [5, 6]])
[[1 2]
[3 4]
[5 6]]
print array([[1, 2, 3], [4, 5, 6]], float)
[[ 1. 2. 3.]
[ 4. 5. 6.]]
print array([78, 85, 77, 69, 82, 73, 67], 'c')
[N U M E R I C]
Массив элементтері ретінде келесі түрлерді пайдалануға болады: Int8-Int32, Unsigned Int 8-Unsigned Int32, Float 8-Float64, Complex8-Complex64 және PyObject. 8, 16, 32 және 64 сандар шаманы сақтауға арналған биттердің санын көрсетеді. Int, Unsigned Integer, Float және Complex түрлері осы платформада қабылданған мәндерге ... жалғасы
Дәріс №1
Дәріс тақырыбы: Python бағдарламалау тілі туралы жалпы деректер. Python бағдарламалау тілінің шығу тарихы.
Дәрістің мақсаты: Python бағдарламалау тілі туралы жалпы деректер беру, тіл мүмкіндіктерін қарастыру.
Тақырып бойынша қарастырылатын сұрақтар:
1.Python бағдарламалау тілінің шығу тарихы.
2.Python тілінің мүмкіндіктері.
Python - жоғары дәрежелі кодтың оқылуын және әзірлеушінің өнімділігін арттыруға мақсатталған жалпы мақсаттағы бағдарламалау тілі. Python тілі аз синтаксисті талап етеді. Бірақ сол уақытта стандартты кітапханасы үлкен көлемді пайдалы функцияларды қамтиды.
Тілдің кеңейткіштері: .py, .pyw, .pyc, .pyo, .pyd болып келеді.
Python тілін әзірлеу голланд институтының қызметкері Гвидо ван Россуммен 1980 жылдың соңында басталған. Ол оны бос уақытында жаза бастаған. 1991 жылыдың 20 ақпанында алғашқы мәтіндерін жаңалықтар топтамасында жарыққа шығара бастады. Python тілі бастапқыдан объектіге бағытталған бағдарламалау тілі ретінде жобаланды.
Автор бағдарламаны 1970-жылдардағы танымал британ комедиялық Монти Пайтон Ұшатын циркі телешоуының құрметіне атаған. Көбі оны жыланның атымен байланыстырады. Бағдарламаның python.org сайтында (2.5 нұсқасына дейін) жыланның басы бейнеленген. Python әзірлеушісінің негізгі мақсаты - оны қолданушыға қызықты етіп жасау болды. Оны атауынан да байқауға болады. Оның бұл мақсаты бағдарламаны үйретуді ойын түрінде ұйымдастырып, ақпараттық материалдармен жабдықтағандығында. Бұл тілге деген қолданушылардың жақсы сын пікірлерінен Гвидоның дизайнерлік құрылымының да ұтымды болғанын дәлелдейді [13].
2008 жылдың 3 желтоқсанында ұзақ тестілеуден кейін Python 3000 (немесе Python 3.0) бірінші нұсқасы шыққан. Python 3000 бағдарламалау тілінде Python ескі нұсқаларымен сәйкестікті максимум сақтауға тырыса отырып, архитектурасы бойынша кемшіліктерді жойған. Қазіргі күні (Python 3.x және 2.x) екі даму бұтақтары да қолданып келе жатыр.
Python тілінің негізгі және аралық нұсқаларының уақыты:
Python 1.0-Қаңтар 1994;
Python 1.5 - 31 желтоқсан 1997;
Python 1.6-5 қыркүйек 2000;
Python 2.0 - 16 қазан 2000;
Python 2.1 - 17 сәуір 2001;
Python 2.2 - 21 желтоқсан 2001;
Python 2.3-29 шілде, 2003;
Python 2.4 - 30 қараша 2004;
Python 2.5-19 қыркүйек, 2006;
Python 2.6-1 қазан, 2008;
Python 2.7-3 шілде, 2010;
Python 3.0-3 желтоқсан, 2008;
Python 3.1-27 маусым 2009;
Python 3.2-20 ақпан, 2011;
Python 3.3-29 қыркүйек, 2012;
Python 3.4-16 наурыз, 2014.
Python тіліне басқа тілдердің ықпалы.
Python тілінің кешірек шыққандықтан оған көптеген тілдердің ықпалы болды. Мысалы келесі тілдердің:
ABC -- операторларды топтаудың шегіністері, жоғары деңгейлі деректер құрылымы. (Python тілі шындығында келегенде, ABC ОББ тілін жобалауда кеткен қателіктерді түзету үшін құрылған тіл болатын);
Modula-3 -- бумалары, модульдері;
С, C++ -- біршама синтаксистік конструкциялары;
Smalltalk -- объектіге бағытталған программалау;
Lisp -- (lambda, map, reduce, filter и другие) функционалды программалаудың айрықша белгілерін;
Fortran -- массивтер, кешенді арифметика;
Miranda -- тізімдік өрнектер;
Java -- logging, unittest, threading модульдерін, xml.sax стандартты библиотекасын, finally және except-тің ескерпелерді өңдеудегі біріктірілген қолданылуын;
Icon -- генераторларын [14].
Python тілінің басым бөлігі (мысалы, бастапқы кодтың байт-компиляциясы) бұрынырақта басқа бағдарламалау тілдерінде іске асырылатын.
2. Python тілінің мүмкіндіктері
Python тілін бағдарламалауда қолданудың қажеттігін дәлелдейтін көптеген мүмкіндіктері бар. Олар келесілер:
xmlhtml файлдарымен жұмыс жасау;
http сұраныстар жасау;
GUI (графикалық интерфейс)
Веб-сценарийлер құру;
FTP-мен жұмыс жасау;
Кескіндермен, аудио және видеомен жұмыс жасау;
Робототехникада қолдану;
Математикалық және ғылыми есептеулерді бағдарламалау және т.б.
Соған орай python бағдарламасы көптеген міндеттерді шешеді: резервті көшіру болсын, электронды поштаны оқу болсын немес қандай да ойынды құру болсын. Python бағдарламалау тілі ештеңемен шектелмегендіктен оны үлкен жобаларды пайдалануға болады. Мысалы ретінде, python тілі IT-дің алыптары болып табылатын, Google және Yandex жобаларында кеңінен қолданылады. Сонымен қатар, оның қарапайымдылығы мен әмбебаптығы бұл тілді ең үздік бағдарламалау тілдері қатарына қосады [15].
Тілін жүктеу және орнату. Python 3 бағдарламасын өз компьютеріңізге жүктеуді қарастырамыз. Ол тегін және еш тіркелусіз орындалады.
Windows жүйесіне Python тілін орнату
Алдымен оны ресми сайттан жүктеп алу керек. Басқа сайттардан көшіру қауіпті, яғни вирустық программалар болуы мүмкін. Программа тегін. Келесі сайттың адресіне кіру керек: https:python.orgdownloadswindow s, ішенен "latest python release" және python 3 таңдау керек.
Сурет 1 Бағдарламаны көшіруге арналған сайттың алғашқы бетінен үзінді
Таңдаған нұсқа бойынша сипаттамалары жазылған терезе пайда болады. Беттің соңына дейін көшіп, "download page" ашамыз.
Сурет 5 Жүктеуге болатын файлдар тізімі
Бұл жерден жүктеуге болатын файлдар тізімін байқауға болады. Сіздерге егер жүйе 32- биттік болса, онда Windows x86 MSI installer, егер жүйе 64-биттік болса, онда Windows x86-64 MSI installer файлын таңдау керек.
Сурет 2 Жүктеуге арналған файлдар тізімі
Python тілі жүктелгенше күтеміз. Жүктелген файлды ашу керек. Шығарушы қатарында Python Software Foundation жазуын көрсеңіздер, онда дұрыс таңдалды. Басқа жазу тұрса, ондай файлды ашпаған жөн [15].
Сурет 3 Хабарлама терезесі
Барлық қолданушыларға немесе тек бір қолданушыға орнатуды орындаймыз (өз қалауларыңызбен орнату керек).
Сурет 4 Орнату жағдайын таңдау терезесі
Орнатуға арналған буманы таңдау керек. Дискіден кез келген буманы таңдауға болады.
Сурет 5 Орнататын буманы таңдау терезесі
Компонентерін таңдауға болады. Егер таңдау білмеген жағдайда үнсіз келісім бойынша қалдыру керек.
Сурет 6 Компоненттерді таңдау терезесі
Python бағдарламасының орнатылғанын күту керек.
Finish батырмасын басқан соң бағдарлама орнатылды деп есептеу керек. Бұл нұсқада IDLE зірлеу ортасы ендірілген. Дәл қазір алғашқы бағдарлама жазуға болады.
Енді алғашқа бағдарламаны кез келген мәтіндік редакторда немесе IDLE әзірлеу ортасында жазуға болады.
IDLE әзірлеу ортасы. Алғашқы бағдарлама
Python бағдарламасын іске қосқан соң IDLE ортасын ашу керек (Python бағдарламалау тіліндегі әзірлеу ортасы).
Сурет 7 IDLE ортасын іске қосу терезесі
IDLE ортасы бастапқыда интерактивті режімде ашылады. Кейіннен программаны жазуды бастауға болады. Салт бойынша алғашқы программа "hello world" болады.
Python тілінде "hello world" сөз тіркесін жазу үшін тек бір ғана жолдың жазылуы жеткілікті:
----------------------------------- ----------------------------------- ----------
print("Hello world!")
Сурет 8 Python тілінде жазылған код
Бұл кодты IDLE ортасына енгізіп Enter батырмасына шертеміз.Нәтиже келесә суретте бейнеленген:
Сурет 9 Интерактивті режім терезесі
Осымен интерактивті режіммен таныс болдық. Келесі кодтарды да жазып тексеріп көруге болады.
print(3 + 4)
print(3 * 5)
print(3 ** 2)
Негізінде интерактивті режім ең негізгісі болып табылмайды, сондықтан көбінде бағдарламалық кодтарды файлға жазып, файлды тексеруге жіберіп отырып жұмыс жаслады. IDLE интерактивті режімінде жаңа файл құру үшін File -- New File (немесе Ctrl + N пернелер комбинациясын басу керек) [16].
Сурет 10 Жаңа файл құру терезесі
Ашылған терезеде келесі 15-суреттегі код теріледі:
----------------------------------- ----------------------------------- ----------
name = input("Атыңыз кім? ")
----------------------------------- ----------------------------------- ----------
print("Сәлем,", name)
Сурет 11 Алғашқы бағдарлама коды
Бірінші жол енгізуді талап етеді, яғни пернетақтадан жазған мәліметті енгізіп, Enter пернесін шерткенде енгізілген мәліметті name айнымалысына сақтайды..
Келесі жолда print функциясы қолданылады. Ол экранға Сәлем сөзінен кейін "name" айнымалысында сақталған сөзді шығарады.
Функционалды пернелерден F5 (немесе мәзірден IDLE Run -- Run Module командасын таңдап) басу және шыққан нәтиженің дұрыстығын тексеру керек.
Келесі суретте бейнеленген скриншотта оң бағанында нәтиже, сол жақ бағанында жазған бағдарлама көрсетіледі.
Сурет 12 Бағдарламаның нәтижесін шығару терезесі
Сонымен қарапайым бағдарламаның құрылуы іске асырылды. Енді тілдің синтаксисін қарастыруға болады.
Python тілінің синтаксисі. Негізгі ережелері:
Жолдың соңы интрукцияның соңы болып табылады (нүктелі үір қажет емес);
Ендірілген инструкциялар шегіністер өлшемі (көлемі) бойынша блоктарға біріктіріледі. Шегініс кезкелген болуы мүмкін, бастысы бір ендірілген блокқа бірдей шегініс өлшемі қолданылса болғаны. Кодтың оқылымы туралы да ұмытпау керек. 1 бос орын шегініс - ол ешқандай шешім болып табылмайды. Тым болмағанда 4 бос орын шегініс немесе табуляция белгісін қолданған дұрыс болады.
Python тілінде әр инструкциялар бір шаблонға сәйкес жазылады, негізгі инструкция қос нүктемен аяқталған соң, оның соңынан инструкцияның ендірілген блогы шегініс арқылы орналасады. Келесі суретте жазылуы бейнеленген:
----------------------------------- ----------------------------------- ----------
Негізгі инструкция:
----------------------------------- ----------------------------------- ----------
Инструкцияның ендірілген блогы
Сурет 13 Инструкцияның жазылуының бейнесі
Бірнеше арнайы жағдайлар бар. Олар:
Кейбір жағдайда бірнеше инструкцияны бір жолға нүктелі үтір арқылы жазуға болады:
----------------------------------- ----------------------------------- ----------
a = 1; b = 2; print(a, b)
Сурет 14 Бірнеше инструкцияны бір жолға жазу
Бұндайды көп қолдануға болмайды, әрқашан да оқылым туралы есте сақтау керек.
Бір инструкцияны бірнеше жолға да бөліп жазуға болады. Ол үшін бірнеше доғал, квардатты немесе жүйелі жақшаны қолдану керек.
----------------------------------- ----------------------------------- ----------
if (a == 1 and b == 2 and
----------------------------------- ----------------------------------- ----------
c == 3 and d == 4): # Не забываем про двоеточие
----------------------------------- ----------------------------------- ----------
print('spam' * 3)
Сурет 15 Бір инструкцияны бірнеше жолға бөліп жазу коды
Құрамдас интсрукцияның денесі сол негізгі дененің жазылған жолына орналасуы мүмкін, егер негізгі инструкцияның денесі құрамдас денені қамтымаса. Мысалы:
----------------------------------- ----------------------------------- ----------
if x y: print(x)
Сурет 16 Құрамдас және негізгі инчтрукцияның денесінің бір жолға жазылуы
Бағдарламалау тілінің толық синтаксисін түсіну үшін көптеген мысалдарды қарастыру керек. Бірнеше есептердің шығарылуын қарастырып барып түсінуге болады.
Дәріс №2
Дәріс тақырыбы: Негізгі Стандартты Python модульдері.
Дәрістің мақсаты: Негізгі Стандартты Python модульдерін қарастыру.
Тақырып бойынша қарастырылатын сұрақтар:
Модуль түсінігі.
Модуль түсінігі.
Стандартты кітапхананың модульдерін зерттеуге кіріспес бұрын, Python-да модуль деп аталады.
Модульдік тәсілге сәйкес бағдарламалау үлкен міндет бірнеше ұсақ болып бөлінеді, олардың әрқайсысын (Идеалда) жеке модуль шешеді. Әр түрлі әдістемелерде модуль өлшеміне әртүрлі шектеулер беріледі, алайда бағдарламаның модульдік құрылымын құру кезінде модульдердің композициясын құру маңызды, ол олардың арасындағы байланысты барынша азайтуға мүмкіндік береді. Өз элементтері арасында көптеген байланыстары бар сыныптар мен функциялар жиынтығы бір модульде қисынды орналастыру болар еді. Тағы бір пайдалы ескерту бар: модульдерді қайта жазудан гөрі пайдалану оңай болуы керек. Бұл дегеніміз, модуль ыңғайлы интерфейс болуы керек: функциялар жиынтығы, сыныптар және тұрақты, ол өз пайдаланушыларына ұсынады.
Python тілінде бір мәселеге арналған модульдер жиынтығын пакетке қоюға болады. Мұндай пакеттің жақсы мысалы-XML пакеті, онда XML өңдеудің әр түрлі аспектілеріне арналған модульдер жинақталған.
Python бағдарламасында модуль Модуль-нысан-модуль, Оның атрибуттары модульде анықталған атаулар болып табылады:
import datetime
d1 = datetime.date(2004, 11, 20)
Бұл мысалда datetime модулі импортталады. Import операторының жұмысы нәтижесінде ағымдағы атау кеңістігінде datetime атымен объект пайда болады.
Python тіліндегі бағдарламаларда қолдану үшін модульдер өзінің шығу тегі бойынша кәдімгі (Python-да жазылған) және басқа бағдарламалау тілінде жазылған кеңейту модульдеріне (әдетте C-да) бөлінеді. Пайдаланушы тұрғысынан олар жылдам әрекетпен ерекшеленуі мүмкін. Стандартты кітапханада модульдің екі нұсқасы бар: Python және C.бұл, мысалы, pickle және cPickle модульдері. Әдетте Python модульдері кеңейту модулдеріне қарағанда икемді.
Python модульдері
Модуль бастапқы коды бар жеке файл түрінде ресімделеді. Стандартты Модульдер тілдің тиісті интерпретаторын таба алатын каталогта болады. Python модульдерді іздейтін каталогтарға жолды sys айнымалысы мәнінен көруге болады.path:
sys.path
['', 'usrlocallibpython23.zip', 'usrlocallibpython2.3',
'usrlocallibpython2.3plat-linu x2', 'usrlocallibpython2.3lib-tk',
'usrlocallibpython2.3lib-dynlo ad',
'usrlocallibpython2.3site-pack ages']
Соңғы Python нұсқаларында модульдерді жинақы сақтау үшін zip-мұрағатына (Java-дағы jar-мұрағаттарға ұқсас) орналастыруға болады.
Модульдерді іздеу бағдарламасын іске қосқан кезде, ағымдағы каталогта жүреді. (Стандартты немесе қосымша орнатылған модульдермен аттар қақтығысы болмас үшін өз модульдерін Мұқият атауыңыз керек.)
Python бағдарламасына модульді қосу import операторының көмегімен жүзеге асырылады . Оның екі нысаны бар : import және from-import:
import os
import pre as re
from sys import argv, environ
from string import *
Бірінші пішін көмегімен ағымдағы көріну аймағымен тек модуль объектісіне сілтеме жасайтын атау ғана байланысады, ал екіншісін пайдаланған кезде модуль объектілерінің көрсетілген аттары (немесе қолданылса, барлық аттары * ) ағымдағы көріну аймағымен байланысады. Импорттау кезінде, as арқылы элементтің атын өзгертуге болады. Бірінші жағдайда модуль атаулары кеңістігі бөлек атауда қалады және модульден нақты атауына кіру үшін нүктені қолдану қажет. Екінші жағдайда аттар ағымдағы модульде анықталғандай қолданылады:
os.system("dir")
digits = re.compile("\d+")
print argv[0], environ
Модульді қайта импорттау әлдеқайда жылдам жүреді , себебі Модульдер интерпретатормен кэштеледі. Жүктелген модульді reload функциясы арқылы тағы да жүктеуге болады (мысалы, модуль дискіде өзгерсе)():
import mymodule
. . .
reload(mymodule)
Бірақ бұл жағдайда модульдің ескі нұсқасынан сыныптардың даналары болып табылатын барлық объектілер өз мінез-құлқын өзгертпейді.
Модульдермен жұмыс істеу кезінде басқа да қырлары бар . Мысалы, модульді импорттау процесін қайта анықтауға болады. Бұл туралы толығырақ түпнұсқа құжаттамадан білуге болады.
Дәріс №3
Дәріс тақырыбы: Python тіліндегі жолдар.
Дәрістің мақсаты: Python тіліндегі жолдар қарастыру.
Тақырып бойынша қарастырылатын сұрақтар:
Python тіліндегі жолдар.
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 len(s):
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- элементті алып тастап, содан соң жолдан бірінші таңбаны алады.
Дәріс №4
Дәріс тақырыбы: Python тіліндегі сандар.
Дәрістің мақсаты: Python тіліндегі сандар түрлерін қарастыру.
Тақырып бойынша қарастырылатын сұрақтар:
1.Python тіліндегі сандар.
1. Python тіліндегі сандар.
Python тілінде сандар келесі түрлері бар: бүтін, нақты, комплексті. Бүтін сандар (int). Python тіліндегі сандардың қарапайым сандардан еш айырмашылығы жоқ. Олар қарапайым математикалық операцияларды қолдайды және 5-кестеде көрсетілген.
Кесте 2
Математикалық операциялар
x + y
Қосу
x - y
Айырма
x * y
Көбейту
x y
Бөлу
x y
Бөлгендегі бүтін бөлік
2-кестенің жалғасы
x % y
Бөлгендегі қалдық
-x
Санның белгісін ауыстыру
abs(x)
Сан модулі
divmod(x, y)
(x y, x % y) жұп
x ** y
Дәрежеге шығару
pow(x, y[, z])
xy модулі бойынша (егер модулі берілсе)
Тағы бір айта кететіні, Python тіліндегі бүтін сандар, басқа бағдарламалау тілдеріне қарағанда ұзақ арифметиканы қолдайды (бірақ ол жадыдан көп орын талап етеді). Мысалы келесі 22-суретте бағдарламаның бөлігінің листингі көрсетілген.
----------------------------------- ----------------------------------- ----------
255 + 34
----------------------------------- ----------------------------------- ----------
289
----------------------------------- ----------------------------------- ----------
5 * 2
----------------------------------- ----------------------------------- ----------
10
----------------------------------- ----------------------------------- ----------
20 3
----------------------------------- ----------------------------------- ----------
6.666666666666667
----------------------------------- ----------------------------------- ----------
20 3
----------------------------------- ----------------------------------- ----------
6
----------------------------------- ----------------------------------- ----------
20 % 3
----------------------------------- ----------------------------------- ----------
2
----------------------------------- ----------------------------------- ----------
3 ** 4
----------------------------------- ----------------------------------- ----------
81
----------------------------------- ----------------------------------- ----------
pow(3, 4)
----------------------------------- ----------------------------------- ----------
81
----------------------------------- ----------------------------------- ----------
pow(3, 4, 27)
----------------------------------- ----------------------------------- ----------
0
----------------------------------- ----------------------------------- ----------
3 ** 150
----------------------------------- ----------------------------------- ----------
36998848503512697292470078245169664 41864731003897229738151844053017482 49
Сурет 18 Бүтін сандарға қолданылған операциялар
Биттік операциялар. Бүтін сандармен де биттік операцияларды орындауға болады.
Кесте 3
Биттік операциялар тізімі
x y
Биттік немесе
x ^ y
Биттік алып тастағыш немесе
x & y
Биттік и
x n
Солға биттік жылжу
x y
Оңға биттік жылжу
~x
Биттер инверсиясы
Қосымша әдістер. int.bit_length() - белгісі мен жетекші нөлдерін алып тастағандағы екілік жүйеде санды беру үшін қажетті биттер саны. Төменде көрсетілгендей:
n = -37
bin(n)
'-0b100101'
n.bit_length()
6
int.to_bytes(length, byteorder, *, signed=False) - осы санды беретін байттар жолын қайтарады. Ол келесі 23-суретте көрсетілді.
(1024).to_bytes(2, byteorder='big')
b'\x04\x00'
(1024).to_bytes(10, byteorder='big')
b'\x00\x00\x00\x00\x00\x00\x00\x00\ x04\x00'
(-1024).to_bytes(10, byteorder='big', signed=True)
b'\xff\xff\xff\xff\xff\xff\xff\xff\ xfc\x00'
x = 1000
x.to_bytes((x.bit_length() 8) + 1, byteorder='little')
b'\xe8\x03'
Сурет 19 Int.to_bytes әдісі
Келесі classmethod int.from_bytes(bytes, byteorder, *, signed=False) әдісі аталған байттар жолынан сандарды қайтарады.
int.from_bytes(b'\x00\x10', byteorder='big')
16
int.from_bytes(b'\x00\x10', byteorder='little')
4096
int.from_bytes(b'\xfc\x00', byteorder='big', signed=True)
-1024
int.from_bytes(b'\xfc\x00', byteorder='big', signed=False)
64512
int.from_bytes([255, 0, 0], byteorder='big')
16711680
Санау жүйелері. Сандар тек ғана ондық санау жүйесінде ғана емес сонымен қатар, басқа да санау жүйелерінде беріледі. Мысалы, компьютерде екілік санау жүйесі қолданылады. 19 саны екілік санау жүйесінде 10011 деп бейнеленеді. Кейбір жағдайда бір санау жүйесінен екіншіге көшу қажет болады. Оны орындауға Python тілі бірнеше функцияларды ұсынады:
int([object], [санау жүйесінің негізі]) - ондық санау жүйесіндегі бүтінге айналдыру. Бұл жерде үнсіз келісім бойынша ондық санау жүйесі қолданылады, бірақ негізін 2-ден 36-ға дейін таңдай отырып кез келген санау жүйесінде беруге болады.
bin(x) - бүтін санды екілік жолға айналдыру.
hex(х) - бүтін санды он алтылық жолға айналдыру.
oct(х) - бүтін санды сегіздік жолға айналдыру.
Келесі 20-суретте мысалдар көрсетілген.
a = int('19') # жоды санаға айналдыру
b = int('19.5') # жол бүтін сан болып табылмайды
Traceback (most recent call last):
File "", line 1, in
ValueError: invalid literal for int() with base 10: '19.5'
c = int(19.5) # жылжымалы нүктесі бар санға қолданылғанда бөлшек бөлігін алып тастайды
print(a, c)
19 19
bin(19)
'0b10011'
oct(19)
'0o23'
hex(19)
'0x13'
0b10011 # сандық тұрақтылықарды ослай да жазуға болады.
19
int('10011', 2)
19
int('0b10011', 2)
19
Сурет 20 Санау жүйесіне арналған мысалдар листингі
Нақты сандар (float). Нақты сандар да бүтін сандардағы сиқты операцияларды қолдайды, бірақ сандарды компьютерде бергендіктен нақты сандар нақты болмауы және қателіктерге соқтыруы мүмкін және оның өзі қателіктерге әкелуі мүмкін.
0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1
0.9999999999999999
Жоғары нақтылыққа қол жеткізу үшін басқа да объектілерді (Мысалы: Decimal және Fraction) қолдануға болады.
Сонымен қатар, нақты типтер ұзақ арифметиканы қолдамайды.
a = 3 ** 1000
a + 0.1
Traceback (most recent call last):
File "", line 1, in
OverflowError: int too large to convert to float
Сандармен қарапайым мысалдар:
c = 150
d = 12.9
c + d
162.9
p = abs(d - c) # сан модулі
print(p)
137.1
round(p) # Дөңгелектеу
137
Қосымша әдістері:
float.as_integer_ratio() - қатынасы осы санға тең болатын жұп сандар.
float.is_integer() - мән бүтін сан бола ма.
float.hex() - float-ты hex-ке түрлендіреді (он алтылық жүйеде).
classmethod float.fromhex(s) - он алтылық жолдағы float.
(10.5).hex()
'0x1.5000000000000p+3'
float.fromhex('0x1.5000000000000p+3 ')
10.5
Python тілінде сандармен жұмысқа қатысты стандартты өрнектерден басқа бірнеше қажетті модульдер бар. Келесі math модулі күрделі математикалық функцияларды қамтамасыз етеді. Оның қолданылуы төмендегідей.
import math
math.pi
3.141592653589793
math.sqrt(85)
9.219544457292887
Келесі random модулі - кездейсоқ сандар генераторы мен кездейсоқ функцияны таңдауды жүзеге асырады.
import random
random.random()
0.15651968855132303
Комплексті сандар (complex). Python тіліне сонымен қатар, комплекті сандар енгізілген.
21-суретте комплекс сандардың программада қолданылуы көрсетілген.
----------------------------------- ----------------------------------- ----------
x = complex(1, 2)
----------------------------------- ----------------------------------- ----------
print(x)
----------------------------------- ----------------------------------- ----------
(1+2j)
----------------------------------- ----------------------------------- ----------
y = complex(3, 4)
----------------------------------- ----------------------------------- ----------
print(y)
----------------------------------- ----------------------------------- ----------
(3+4j)
----------------------------------- ----------------------------------- ----------
z = x + y
----------------------------------- ----------------------------------- ----------
print(x)
----------------------------------- ----------------------------------- ----------
(1+2j)
----------------------------------- ----------------------------------- ----------
print(z)
----------------------------------- ----------------------------------- ----------
(4+6j)
----------------------------------- ----------------------------------- ----------
z = x * y
----------------------------------- ----------------------------------- ----------
print(z)
----------------------------------- ----------------------------------- ----------
(-5+10j)
----------------------------------- ----------------------------------- ----------
z = x y
----------------------------------- ----------------------------------- ----------
print(z)
----------------------------------- ----------------------------------- ----------
(0.44+0.08j)
----------------------------------- ----------------------------------- ----------
print(x.conjugate()) # түйіндес сан
----------------------------------- ----------------------------------- ----------
(1-2j)
----------------------------------- ----------------------------------- ----------
print(x.imag) # жорамал бөлігі
----------------------------------- ----------------------------------- ----------
2.0
----------------------------------- ----------------------------------- ----------
print(x.real) # нақты бөлігі
----------------------------------- ----------------------------------- ----------
1.0
----------------------------------- ----------------------------------- ----------
print(x y) # Комплексті санды салыстыруға болмайды
----------------------------------- ----------------------------------- ----------
Traceback (most recent call last):
----------------------------------- ----------------------------------- ----------
File "", line 1, in
----------------------------------- ----------------------------------- ----------
TypeError: unorderable types: complex() complex()
----------------------------------- ----------------------------------- ----------
print(x == y) # бірақ теңдікке тексеруге болады
----------------------------------- ----------------------------------- ----------
False
----------------------------------- ----------------------------------- ----------
abs(3 + 4j) # комплексті сан модулі
----------------------------------- ----------------------------------- ----------
5.0
----------------------------------- ----------------------------------- ----------
pow(3 + 4j, 2) # санның дәрежесін шығару
----------------------------------- ----------------------------------- ----------
(-7+24j)
Сурет 21 Комплексті сандар
Комплексті сандармен жұмыс жасау үшін сонымен қатар, cmath модулі де қолданылады.
Тізімдер (list). Тізімдердің функциялары мен әдістері. Тізімдер деген типке, олармен орындалатын операциялар және әдістерге, тізімдер генераторы және тізімдерді қолдануға тоқталайық.
Тізім дегеніміз не? Python-дағы тізім - ерікті түрдегі нысандардың (объектілердің) реттелген өзгертілетін топтамасы (массив сияқты, бірақ типтері әр басқа болуы мүмкін). Тізімдерді қолдану үшін оларды құрып алу керек. Тізімді бірнеше жолмен құруға болады. Мысалы, кез келген қайталанатын нысанды өңдеуге болады (мысалы, жолды list ендірілген функциясымен):
list('тізім')
['с', 'п', 'и', 'с', 'о', 'к']
Тізімді литералдардың да көмегімен құруға болады:
s = [] # Бос список
l = ['s', 'p', ['isok'], 2]
s
[]
l
['s', 'p', ['isok'], 2]
Мысалда көрсетілгендей, тізім кез-келген нысанның (кірістірілген тізімдерді қоса алғанда) кез келген санын қамтуы немесе ештеңені қамтымауы да мүмкін.
Тізімді құрудың тағы бір жолы - тізімдер генераторы. тізімдер генераторы - тізбектегі элементтің әрқайсысына өрнекті қолдана отырып жаңа тізімді құру тәсілі. Тізімдер генераторы for цикліне өте ұқсайды.
c = [c * 3 for c in 'list']
c
['lll', 'iii', 'sss', 'ttt']
Тізімдер генераторының бұдан да күрделі конструкциясы болуы мүмкін.
c = [c * 3 for c in 'list' if c != 'i']
c
['lll', 'sss', 'ttt']
c = [c + d for c in 'list' if c != 'i' for d in 'spam' if d != 'a']
c
['ls', 'lp', 'lm', 'ss', 'sp', 'sm', 'ts', 'tp', 'tm']
Бірақ күрделі жағдайларда тізімдерді жасау үшін әдеттегі for циклы қолданған жөн.
Тізімдердің функциялары мен әдістері. Тізімді құрып алған соң олармен жұмыс істеуге болады. Тізімдер үшін негізгі ендірілген функциялар мен әдістер бар.
Кесте 4
Тізімдер әдістері
Әдіс
Атқаратын қызметі
list.append(x)
Тізімнің соңына элемент қосады
list.extend(L)
L тізімінің барлық элементтерін соңына қосып list тізімін кеңейтеді
list.insert(i, x)
i-нші элементке x мәнін қояды
list.remove(x)
Х мәні бар тізімдегі бірінші элементті жояды. Егер ондай элемент жоқ болса ValueError деп шығады
list.pop([i])
i-ый элементті жояды және оны қайтарады. Егер индекс көрсетілмесе, соңғы элементті жояды
list.index(x, [start [, end]])
x мәні бар бірінші элементтің жағдайын қайтарады (бұнда іздеу start-тан end-қа дейін жүргізіледі)
list.count(x)
X мәні бар элементтердің санын қайтарады.
list.sort([key=функция])
Функциялар негізінде тізімді сұрыптайды
list.reverse()
Тізімді кеңейтеді (ашып жазады)
list.copy()
Тізімнің үстіңгі көшірмесі
list.clear()
Тізімді тазартады
Айта кету керек, тізімдер әдісі жолдың әдісіне қарағанда, тізімнің өзін өзгертеді, сондықтан орындаудың нәтижесін осы айнымалыға жазбауға болады.
l = [1, 2, 3, 5, 7]
l.sort()
l
[1, 2, 3, 5, 7]
l = l.sort()
print(l)
None
Тізімдермен жұмыстардың мысалдары::
a = [66.25, 333, 333, 1, 1234.5]
print(a.count(333), a.count(66.25), a.count('x'))
2 1 0
a.insert(2, -1)
a.append(333)
a
[66.25, 333, -1, 333, 1, 1234.5, 333]
a.index(333)
1
a.remove(333)
a
[66.25, -1, 333, 1, 1234.5, 333]
a.reverse()
a
[333, 1234.5, 1, 333, -1, 66.25]
a.sort()
a
[-1, 1, 66.25, 333, 333, 1234.5]
Кейбір кезде өнімділікті арттыру үшін тізімдерді әлдеқайда икемді массивтермен алмастырады (бұндай жағдайда әдетте ендірілген кітапханаларды қолданады. Мысалы NumPy).
Кортеждер (tuple). Келесі деректер типі кортеждер (tuple) деп аталады. Олар негізінен өзгертілмейтін тізімдер болып табылады.
Олар не үшін қажет?
Қорғау үшін. Кортеж әдейі және кездейсоқ өзгертулерден қорғалған.
Өлшемі аз. Негізі болмас үшін:
a = (1, 2, 3, 4, 5, 6)
b = [1, 2, 3, 4, 5, 6]
a.__sizeof__()
36
b.__sizeof__()
44
Кортеждерді сөздіктердің кілттері ретінде қолдану мүмкіндігі:
d = {(1, 1, 1) : 1}
d
{(1, 1, 1): 1}
d = {[1, 1, 1] : 1}
Traceback (most recent call last):
File "", line 1, in
d = {[1, 1, 1] : 1}
TypeError: unhashable type: 'list'
Кортеждармен қалай жұмыс істеу керек? Кортеждермен жұмыс тізімдермен сияқты жүзеге асырылады. Бос кортеж құру:
a = tuple() # tuple() ендірілген функциясы арқылы
a
()
a = () # кортеждің литералы арқылы
a
()
Бір элементтен кортеж құрамыз:
a = ('s')
a
's'
Бұл жерде жол пайда болды. Енді кортежді алу үшін келесі өзгерісті енгіземіз:
a = ('s', )
a
('s',)
Байқағандай барлық мәселе үтірде болды. Өз-өзімен жақшалар ештеңені бермейді. Кортежді келесі түрде де құруға болады.
a = 's',
a
('s',)
Әдетте жақша қою міндетті болады.
Қайталанатын объектісі бар кортежді де tuple() функциясы көмегімен қуруға болады.
a = tuple('hello, world!')
a
('h', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', '!')
Кортеждермен операциялар. Тізімдермен орындалатын барлық операциялар, өзгертілмейтін тізімдер(қосу, санға көбейту, index() және count() әдістері және бірнеше басқа да операциялар) орындалады.
Сонымен бірге, элементтердің орнын әр түрлі түрде ауыстыруға және т.с.с. атқаруға болады.
Мысалы: Python-да екі айнымалының мәнінің орнын ауыстыру :
a, b = b, a
Дәріс №5
Дәріс тақырыбы: Функциялар және файлдармен жұмыс.
Дәрістің мақсаты: Python бағдарламалау тілінде функциялар және файлдармен жұмыс жасауды қарастыру.
Тақырып бойынша қарастырылатын сұрақтар:
1.Функциялар және файлдармен жұмыс.
Функциялар және файлдармен жұмыс.
Бұнда атаулы мен анонимді функциялар және def, return және lambda интрукциялары қарастырылады. Сонымен қатар, функцияның міндетті және міндетті емес аргументтері, еркін санды аргументтері бар функциялар қарастырылады.
Атаулы функциялар, def инструкциясы. Python тіліндегі функция аргументтер қабылдайтын және мәнді қайтаратын нысан болып табылады. Әдетте функция def инструкциясы көмегімен анықталады.
Қарапайым функцияны анықтайық:
def add(x, y):
return x + y
return Инструкция мәнді қайтаруды талап етеді. Ал аталған жағдайда функция x пен y қосындысын қайтарады. Енді оны шақыруға болады
add(1, 10)
11
add('abc', 'def')
'abcdef'
Функция кез-келген күрделілікте болуы және барлық нысандарды (тізімдер, кортеждерді және тіпті функцияларды) қайтаруы мүмкін:
def newfunc(n):
... def myfunc(x):
... return x + n
... return myfunc
...
new = newfunc(100) # new - бұл функция
new(200)
300
Функция return инструкциясымен аяқталмауы да мүмкін, бірақ соның өзінде функция None мәнін қайтарады:
def func():
... pass
...
print(func())
None
Функция аргументтері. Функция кез келген сандағы аргументтерді қабылдауы мүмкін немесе мүлдем қабылдамауы да мүмкін. Сондай-ақ, аргументтер саны кез келген, позициялық және атаулы аргументтері бар функциялар, міндетті және міндетті емес функциялар кең таралған.
def func(a, b, c=2): # c - мінддетті емес аргумент
... return a + b + c
...
func(1, 2) # a = 1, b = 2, c = 2 (үнсіз жағдайда)
5
func(1, 2, 3) # a = 1, b = 2, c = 3
6
func(a=1, b=3) # a = 1, b = 3, c = 2
6
func(a=3, c=6) # a = 3, c = 6, b анықталмаған
Traceback (most recent call last):
File "", line 1, in
func(a=3, c=6)
TypeError: func() takes at least 2 arguments (2 given)
Функция позициялық аргументтердің айнымалы санын қабылдауы мүмкін, ондай жағдайда оның атауының алдына * қойылады:
def func(*args):
... return args
...
func(1, 2, 3, 'abc')
(1, 2, 3, 'abc')
func()
()
func(1)
(1,)
Мысалдан көргендей, функцияның барлық берілген аргументтерінің ішінен args - бұл кортеж, сонымен қатар айнымалының өзімен де кортежбен сияқты жұмыс істеуге болады.
Функция атаулы аргументтердің кез келген санын қабылдай алады, онда атудың алдына ** белгісі қойылады:
def func(**kwargs):
... return kwargs
...
func(a=1, b=2, c=3)
{'a': 1, 'c': 3, 'b': 2}
func()
{}
func(a='python')
{'a': 'python'}
Kwargs айнымалысында барлық әрекеттерді атқаруға болатын сөздік сақталады.
Анонимді функциялар, lambda инструкциясы. Анонимді функциялар тек бір ғана өрнекті қамтығандықтан тез орындалады. Анонимді функциялар lambda инструкциясының көмегімен құрылады. Сонымен қатар, оларды def func() инструкциясындағы сияқты міндетті түрде айнымалыларға меншіктеудің қажеті жоқ:
func = lambda x, y: x + y
func(1, 2)
3
func('a', 'b')
'ab'
(lambda x, y: x + y)(1, 2)
3
(lambda x, y: x + y)('a', 'b')
'ab'
lambda функциясы басқа функцияларға қарағанда return инструкциясын қажет етпейді, ал басқа жағынан еш айырмашылығы жоқ:
func = lambda *args: args
func(1, 2, 3, 4)
(1, 2, 3, 4)
Файлдар. Файлдармен жұмыс. Төменде python тілінің файлдармен әрекет жасауға арналған ендірілген құралдары қарастырылады: ашу жабу, оқу және жазу.
Файлмен жұмыс жасау үшін алдымен оны ашып алу керек. Ол үшін open ендірілген функциясы қолданылады:
f = open('text.txt', 'r')
Open функциясының көптеген өлшемдері бар, бірақ олардың ішінде ең қажетті 3 аргументі бар. Олардың біріншісі файлдың аты, файлға баратын жолдың өзі салыстырмалы немесе абсолютті болуы мүмкін. Екінші аргумент - ол файлды ашу режімі.
Кесте 4
Файлды ашу режімдері
Режім
Белгіленуі
'r'
Оқу үшін ашу (әдепкі мән болып табылады)
'w'
Жазу үшін ашу, файлдың ішіндегі мәні жойылады, файл жоқ болса, онда жаңадан құрылады
'x'
Жазу үшін ашу, егер файл жоқ болса, онда ерекше жағдай деп саналады
'a'
қосымша жазу үшін ашу, ақпарат файлдың соңына қосылады
'b'
Екілік режимде ашу
't'
мәтіндік режимде ашу (әдепкі мән болып табылады)
'+'
оқу және жазу үшін ашу
Режимдер біріктірілген болуы мүмкін, яғни, мысалы, 'rb' - екілік режімде оқу. Әдепкі жағдайда мәні 'rt' болады.
Соңғы аргумент encoding, ол тек мәтіндік режімде файлды оқу кезінде қажет. Бұл аргумент кодтауды анықтайды.
Файлдан оқу. Файлды ашқан соң одан ақпаратты оқуымыз керек. Ол үшін оның бірнеше тәсілі бар, бірақ соның ішінде екеуі ғана қажет болады.
Бірінші - егер аргументсіз болса файлды тұтастай, егер n (бүтін санмен) аргументімен шақырылса, онда n символымен оқылатын read әдісі.
f = open('text.txt')
f.read(1)
'H'
f.read()
'ello world!\nThe end.\n\n'
Тағы бір тәсілі - файлды - for циклін қолдану арқылы файлды жол жолымен оқу:
f = open('text.txt')
for line in f:
... line
...
'Hello world!\n'
'\n'
'The end.\n'
'\n'
Файлға жазу. Файлға келесі тізімді жазуды орындап көрейік:
l = [str(i)+str(i-1) for i in range(20)]
l
['0-1', '10', '21', '32', '43', '54', '65', '76', '87', '98', '109', '1110', '1211', '1312', '1413', '1514', '1615', '1716', '1817', '1918']
Файлды жазу үшін ашу:
f = open('text.txt', 'w')
Файлға жазу write әдісі арқылы жүзеге асырылады. Ол келесі 26-суретте көрсетілген:
for index in l:
... f.write(index + '\n')
...
4
3
3
3
3
Сурет 22 Write әдісі арқылы файлға жазу
Жоғарыда көрсетілген жазбалардан: write әдісі жазылған символдардың санын қайтарады [17].
Файлмен жұмыс жасап болған соң оны міндетті түрде close әдісі арқылы жабу керек:
f.close()
Енді осы тізімді құрылған файлдан қайта жасауға тырысайық. Ол үшін файлды оқу үшін ашып жолдарын оқу керек.
f = open('text.txt', 'r')
l = [line.strip() for line in f]
l
['0-1', '10', '21', '32', '43', '54', '65', '76', '87', '98', '109', '1110', '1211', '1312', '1413', '1514', '1615', '1716', '1817', '1918']
f.close()
Жоғарыда көрсетілгендей қайта сол тізім алынды. Күрделірек жағдайда жазу алгоритмін ойлап табу қиынға соғады. Сондықтан Python тілінде ондай жағдайлар үшін баяғыдан pickle немесе json сияқты құралдары ойлап табылған. Олар файлда анағұрлым күрделі құрылымдарды сақтауға мүмкіндік береді [17].
Дәріс №6
Дәріс тақырыбы: Сандық алгоритмдер. Матрицалық есептеулер.
Дәрістің мақсаты: Сандық алгоритмдер мен матрицалық есептеулерді қарастыру.
Тақырып бойынша қарастырылатын сұрақтар:
Numeric Python.
Numeric Модулі.
Массивті құру.
1. Numeric Python.
Бұл бөлім жеткілікті дәрежеде ескірген. Қазір модуль numpy деп аталады. Жалпы, Numeric-те болған барлық numpy-да қол жетімді, бірақ аттар сәйкес келмеуі мүмкін. Numeric NumPyoldnumeric сияқты қол жетімді. Сіздің құжаттама.
Numeric Python - көптеген сандық қосымшалар үшін қажетті көп өлшемді массивтерді есептеу үшін бірнеше модуль. Numeric модулі MatLab, Octave (MATLAB аналогы), APL, J, S+, ID сияқты пакеттер мен жүйелердің Python мүмкіндіктерін енгізеді. Пайдаланушылар Numeric-ті оңай және ыңғайлы табады. Кейбір Python синтаксистік мүмкіндіктері (кесіктерді пайдаланумен байланысты) Numeric үшін арнайы әзірленген.
Numeric Python үшін құралы бар:
матрицалық есептеулер;
FFT Фурье жылдам түрлендіру;
жетіспейтін ma эксперименталдық деректермен жұмыс істеу;
RNG статистикалық модельдеу;
MatLab бағдарламасының негізгі функцияларының эмуляциясы.
Numeric Модулі.
Numeric модулі толымды түрді анықтайды-массив және массив операцияларына арналған функциялардың көп санын қамтиды. Массив-бұл индекстер бойынша қолжетімді біртекті элементтер жиынтығы. Numeric Модулінің массивтері көп өлшемді, яғни бір мөлшерден артық болуы мүмкін.
Массивті құру.
Массивті жасау үшін, массивтің мазмұнын (ішкі тізімдер түрінде) және түрін көрсете отырып, array () функциясын пайдалануға болады. Array() функциясы дәлел - массив болса, көшірмесін жасайды. As array() функциясы ұқсас жұмыс істейді, бірақ оның аргументі массиві болған кезде жаңа массив жасамайды:
from Numeric import *
print array([[1, 2], [3, 4], [5, 6]])
[[1 2]
[3 4]
[5 6]]
print array([[1, 2, 3], [4, 5, 6]], float)
[[ 1. 2. 3.]
[ 4. 5. 6.]]
print array([78, 85, 77, 69, 82, 73, 67], 'c')
[N U M E R I C]
Массив элементтері ретінде келесі түрлерді пайдалануға болады: Int8-Int32, Unsigned Int 8-Unsigned Int32, Float 8-Float64, Complex8-Complex64 және PyObject. 8, 16, 32 және 64 сандар шаманы сақтауға арналған биттердің санын көрсетеді. Int, Unsigned Integer, Float және Complex түрлері осы платформада қабылданған мәндерге ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz