Pythondı úyreniw: 4-lekciya
Ámeliyatta, modul faylları ádette fayl ishinde hám sırtında qollanılatuǵın birden kóp attı anıqlaydı. Mine, úsh attı anıqlaytuǵın mısal:
a = dead # Úsh atributti anıqlaw
b = parrot # Basqa fayllarga eksport qılınadı
c = sketch
print(a, b, c) # Bul faylda da qollanıladı
Bul threenames.py faylı úsh ózgeriwshini belgileydi, sonlıqtan sırtqı dúnya ushın úsh atributti payda etedi. Ol sonday-aq óziniń úsh ózgeriwshisin print operatorında qollanadı, bunı biz bul fayldı joqarı dárejeli fayl sıpatında júrgizgenimizde kóremiz:
% python threenames.py
dead parrot sketch
Bul fayldıń barlıq kodı basqa jerde birinshi ret import qılınǵanda (import yamasa from arqalı) ádettegidey júrgiziledi. Bul fayldı import qollanıp paydalanǵan klientler atributları bar moduldi aladı, al from qollanǵan klientler fayl atlarınıń kóshirmelerin aladı:
% python
>>> import threenames # Pútkil moduldi alıw
dead parrot sketch
>>> threenames.b, threenames.c
(parrot, sketch)
>>> from threenames import a, b, c # Bir neshe attı kóshiriw
>>> b, c
(parrot, sketch)
Bul jerde nátiyjeler qawsırma ishinde basıp shıǵarıladı, sebebi olar haqıyqatında kortejler (bul kitaptıń keyingi bóliminde qaralatuǵın obyekt túri); házirshe olarǵa itibar bermey-aq qoyıwıńız múmkin.
Usınday bir neshe atı bar modullerdi kodlaw baslaǵanıńızda, qurılǵan dir funkciyası júdá paydalı bola baslaydı - onı modul ishinde bar bolǵan atlardıń dizimin alıw ushın qollanıwıńız múmkin. Tómendegi qatarlar Python qatarlar dizimin qaytaradı (biz dizimlerdi keyingi bapta úyrene baslaymız):
>>> dir(threenames)
[__builtins__, __doc__, __file__, __name__, __package__, a, b, c]
Men bunı Python 3.0 hám 2.6 nusqalarında orınladım; eskilew Python nusqaları azıraq at qaytarıwı múmkin. dir funkciyası usılay qawsırma ishinde berilgen import qılınǵan modul atı menen shaqırılǵanda, ol sol modul ishindegi barlıq atributlardı qaytaradı. Ol qaytaratuǵın atlardan gezeklesin "biypul" alasız: basında hám aqırında qos astın sızıq bar atlar Python tárepinen aldın ala belgilengen qurılǵan atlar bolıp, interpretator ushın arnawlı mánige iye. Biziń kodımız táriyiplengen ózgeriwshiler - a, b hám c - dir nátiyjesinde eń aqırında kórinedi.
Moduller hám at keńislikleri
Modul importları - kod faylların júrgiziw usılı, biraq, kitaptıń keyingi bólimlerinde talqılanatuǵınday, moduller Python baǵdarlamalarındaǵı eń úlken baǵdarlama strukturası bolıp tabıladı. Ulıwma alǵanda, Python baǵdarlamaları import operatorları arqalı baylanısqan bir neshe modul fayllarınan quralǵan. Hár bir modul faylı - ózgeriwshilerdiń ózine tán toplamı, yaǵnıy at keńisligi. Bir modul faylı basqa faylda anıqlanǵan atlardı, sol basqa fayldı anıq túrde import qılmaǵansha kóre almaydı, sonlıqtan moduller kodıńızdaǵı at dúgisiwlerin minimallastırıwǵa járdem beredi - hár bir fayl ózine tán at keńisligi bolǵanlıqtan, bir fayldaǵı atlar basqa fayldaǵı atlar menen, hatteki olar birdey jazılǵan bolsa da, dúgise almaydı.
Haqıyqatında da, kórip turǵanıńızday, moduller - Python siziń ózgeriwshilerińizdi at dúgisiwlerin boldırmaw ushın bólimlerge jıynawǵa úlken kúsh jumsaytuǵın bir neshe usıllardıń biri. Biz moduller hám basqa at keńisligi strukturaların (klaslar hám funkciya kólemlerin qosqanda) kitaptıń keyingi bólimlerinde tolıǵıraq talqılaymız. Házirge, moduller siziń kodıńızdı qayta terip shıǵıwǵa májbúr bolmay, kóp márte júrgiziw usılı sıpatında paydalı boladı.
import penen from salıstırması: Men from operatorınıń bir mániste modullerdiń at keńisligin bóliw maqsetin biykarlaytuǵının aytıp ótiwim kerek - sebebi from bir fayldan ekinshisine ózgeriwshilerdi kóshiredi, ol import qılıwshı fayldaǵı birdey atamalı ózgeriwshilerdiń ústinen jazılıwına alıp keliwi múmkin (hám bul haqqında eskertpeydi). Bul tiykarınan at keńisliklerin, hesh bolmaǵanda kóshirilgen ózgeriwshiler kóz-qarasınan, birlestiredi. Usı sebepli, ayırımlar from ornına import ti qollanıwdı usınıs etedi. Men bunshelli alısqa barmayman; from tek ǵana az jazıwdı talap etip qoymay, onıń gúman etilgen máselesi ámeliyatta siyrek ushırasadı. Onıń ústine, bul siz from da qáleytuǵın ózgeriwshilerdi kórsetiw arqalı basqaratuǵın nárse; olardıń mánisler menen belgileniwın túsinseńiz, bul tapsırma operatorların jazıwdan artıq qáwipli emes - bul sizge kerek bolatuǵın taǵı bir qásiyet!
import hám reload qollanıw boyınsha eskertiw
Qanday da bir sebeplerge kóre, adamlar faylların import hám reload arqalı júrgiziw haqqında bilgennen keyin, kópshilik tek usıǵan itibar berip, kodtıń házirgi versiyasın bárqulla júrgiziwge múmkinshilik beretuǵın basqa iske túsiriw variantların umıtıp qoyadı (mısalı, belgi basıw, IDLE menyusı opciyaları hám sistema buyrıq qatarları). Biraq, bul usıl tez arada aljasıwǵa alıp keliwi múmkin - import qılǵanıńızdı este saqlaw kerek, reload qollana alasız ba, bilesiz be, reload tı shaqqanda qawsırma qollanıwdı umıtpaw kerek (tek ǵana reload ushın), hám kodıńızdıń házirgi versiyasın júrgiziw ushın dáslep reload tı qollanıwdı umıtpaw kerek. Bunnan tısqarı, reload lar ótpeli emes - moduldi qayta júklew tek sol moduldi qayta júkleydi, ol import qılıwı múmkin bolǵan basqa modullerdi emes - sonlıqtan, geyde bir neshe fayldı qayta júklew kerek boladı.
Usı qıyınshılıqlar sebepli (hám basqalar, olardı keyinirek qarap shıǵamız, sonıń ishinde bul baptıń aldıńǵı eskertiwinde aytılǵan reload/from máselesi), házirshe import hám reload arqalı iske túsiriw beyimliginen saqlanıw jaqsı pikir. Mısalı, keyingi bólimde túsindirilgen IDLE Run→Run Module menyusı opciyası siziń fayllarıńızdı júrgiziwdiń ápiwayılıraq hám qátege azıraq ushıraytuǵın usılın beredi hám bárqulla kodıńızdıń házirgi versiyasın júrgizedi. Sistema komandalıq qatarı usaǵan artıqmashılıqlardı usınadı. Eger usı texnikalardı qollansańız, reload ti qollanıwıńız shárt emes.
Bunnan tısqarı, eger siz kitaptıń usı noqatında modullerdı ádettegiden tıs usıllarda qollansańız, qıyınshılıqlarǵa duwshar bolıwıńız múmkin. Mısalı, eger siz jumıs islep atırǵan direktoriyadan basqa jerde saqlanatuǵın modul faylın import qılıwdı qáleseńiz, 21-bapqa ótip, modul izlew jolı haqqında úyreniwińiz kerek boladı.
Házirshe, eger import qılıwıńız kerek bolsa, qıyınshılıqlardan saqlanıw ushın barlıq fayllarıńızdı jumıs islep atırǵan direktoriyada saqlawǵa háreket etiń. Sonday-aq, import hám reload lar Python sabaqlarda áhmiyetli sınaw usılı bolıp dálillengen, hám siz de bul usıldı qollanǵandı maqul kóriwińiz múmkin. Biraq, ádettegidey, eger ózińizdi diywalǵa urıp atırǵanday sezseńiz, diywalǵa urılıwdı toqtatıń!
Modul faylların júrgiziw ushın exec ti qollanıw
Shınında da, modul fayllarında saqlanǵan kodtı júrgiziwdiń bul jerde kórsetilgennen de kóbirek usılları bar. Mısalı, exec(open(module.py).read()) ornatılǵan funkciya shaqırıwı - bul interaktiv prompttan faylların import qılmay hám keyinirek qayta júklemey iske túsiriwdiń basqa bir usılı. Hár bir exec faydıń házirgi versiyasın júrgizedi, keyingi qayta júklewlerdi talap etpey (script1.py aldıńǵı bólimde qayta júklewden keyin qaldırǵanımızday):
C:\misc> c:\python30\python
>>> exec(open(script1.py).read())
win32
65536
Spam!Spam!Spam!Spam!Spam!Spam!Spam!Spam!
...script1.py di tekst redaktorında ózgertiń...
>>> exec(open(script1.py).read())
win32
4294967296
Spam!Spam!Spam!Spam!Spam!Spam!Spam!Spam!
exec shaqırıwı import qa uqsas tásir kórsetedi, biraq ol texnikalıq jaqtan moduldi import qılmaydı - ádette, hár sapar exec ti usılay shaqırǵanıńızda, ol faydı qaytadan júrgizedi, tap siz onı exec shaqırılǵan jerge jaylastırǵanday. Sonıń ushın, exec fayl ózgerislerinen keyin modullerdi qayta júklewdi talap etpeydi - ol normal modul import logikasın ótkizip jiberedi. Kemshiligi sıpatında, ol shaqırılǵan jerge kodtı jaylastırǵanday isleytuǵını sebepli, exec, aldın aytılǵan from operatorı sıyaqlı, házirgi waqıtta qollanıp atırǵan ózgeriwshilerińizdi únsiz túrde qayta jazıw múmkinshiligine iye. Mısalı, biziń script1.py x dep atalǵan ózgeriwshige mánisti belgileydi. Eger bul at exec shaqırılǵan jerde de qollanılıp atırǵan bolsa, attıń mánisi almastırıladı:
>>> x = 999
>>> exec(open(script1.py).read()) # Kod ádette usı namespace te júrgiziledi
...birdey shıǵıs...
>>> x # Onıń belgilewleri bul jerdegi atların qayta jazıwı múmkin
Spam!
Kerisinshe, tiykarǵı import operatorı faydı hár bir process ushın tek bir ret júrgizedi hám fayldı ózgeshe modul namespace etip, onıń belgilewleri siziń kóleminizde ózgeriwshilerdi ózgertpeydi. Modullerdiń namespace bóliniwi ushın tóleytuǵın baha - ózgerislerden keyin qayta júklew kerekligi bolıp tabıladı.
Versiya parqı eskertiw: Python 2.6 da execfile(module.py) ornatılǵan funkciyası bar, exec(open(module.py)) formasına qosımsha túrde, bular ekewi de avtomatik túrde fayl mazmunın oqıydı. Bul ekewi de exec(open(module.py).read()) formasına teń, ol quramalıraq, biraq 2.6 hám 3.0 de júredi. Tilekke qarsı, bul eki ápiwayı 2.6 formalarınıń hesh qaysısı 3.0 de joq, bul usı texnikanı búgin tolıq túsiniw ushın fayllar hám olardıń oqıw metodların túsiniw kerek degenin ańlatadı (átteń, bul 3.0 de estetikanıń ámeliylikti jeńgeni bolıwı múmkin). Shınında da, 3.0 degi exec forması sonshelli kóp jazıwdı talap etedi, eń jaqsı keńes - bunı islemew bolıwı múmkin - faylardı sistema shell komanda qatarların jazıw arqalı yamasa keyingi bólimde túsindiriletuǵın IDLE menyu opciyaların qollanıw arqalı iske túsiriw eń jaqsısı. 3.0 degi exec forması haqqında kóbirek maǵlıwmat ushın 9-bapqa qarań.
IDLE paydalanıwshı interfeysi
Usı waqıtqa shekem, biz Python kodın interaktiv prompt, sistema komanda qatarları, belgi basıw, modul import etiw hám exec shaqırıwları menen qáytip júrgiziw múmkinligin kórdik. Eger siz kóbirek vizual nárse izlep atırǵan bolsańız, IDLE Python rawajlandırıw ushın grafikli paydalanıwshı interfeysin usınadı hám ol Python sistemasınıń standart hám biypul bólegi bolıp tabıladı. Ol kóbinese birlestirgen rawajlandırıw ortalıǵı (IDE) dep ataladı, sebebi ol hár túrli rawajlandırıw wazıypaların bir kóriniske birlestiredi. Qısqasha aytqanda, IDLE - bul Python programmaların redaktorlaw, orınlaw, kóriw hám sazlaw imkaniyatın beretuǵın GUI, hámmesin bir interfeysten. Bunnan tısqarı, IDLE tkinter GUI qurallar toplamın (2.6 da Tkinter dep ataladı) paydalanatuǵın Python programması bolǵanlıqtan, ol kópshilik Python platformalarında, sonıń ishinde Microsoft Windows, X Windows (Linux, Unix hám Unix sıyaqlı platformalar ushın) hám Mac OS (Classic hám OS X ekewinde de) júre aladı. Kópshilik ushın IDLE komanda qatarların jazıwdıń ańsat alternativası hám belgilerde basıwǵa qaraǵanda az máseleli alternativa bolıp xızmet etedi.
IDLE tiykarları
Keliń, mısalǵa óteyik. IDLE dı Windows ta baslaw ańsat - ol Python ushın Start túymesiniń menyusında jazıwı bar (aldın kórsetilgen 2-1-súwrette), sonday-aq onı Python programması belgisine oń túyme menen basıp tańlaw múmkin. Bazı Unix sıyaqlı sistemalarda IDLE diń joqarı dárejeli skriptin komanda qatarınan yamasa Python nıń Lib katalogınıń idlelib ishki katalogında jaylasqan idle.pyw yamasa idle.py faylınıń belgisine basıw arqalı iske túsiriw kerek bolıwı múmkin. Windows ta IDLE házirgi waqıtta C:\Python30\Lib\idlelib (yamasa Python 2.6 da C:Python26\Lib\idlelib) de jaylasqan Python skripti bolıp tabıladı.
3-3-súwret Windows ta IDLE dı baslaǵannan keyingi kórinisti kórsetedi. Dáslepki ashılǵan Python shell aynası tiykarǵı ayna bolıp, ol interaktiv sessiya júrgizedi (>>> promptına itibar beriń). Bul barlıq interaktiv sessiyalar sıyaqlı isledi - bul jerde jazǵan kodıńız jazıp bolıwdan keyin birdey atqarıladı - hám sınaw quralı sıpatında xızmet etedi.
3-3-súwret. Windows ta júrip atırǵan IDLE rawajlandırıw GUI siniń tiykarǵı Python shell aynası. Derek faylın baslaw (New Window) yamasa ózgertiw (Open...) ushın File menyusın paydalanıń; sol aynada kodtı júrgiziw ushın tekst redaktorlaw aynasınıń Run menyusın paydalanıń (Run Module).
IDLE kópshilik operaciyaları ushın tanıs menyulardı hám klavishler kombinaciyaların paydalanbaydı. IDLE astında derek kodı faylın jaratıw (yamasa redaktorlaw) ushın, tekst redaktorlaw aynasın ashıń: tiykarǵı aynada File ashılmalı menyusın tańlań hám New Window dı tańlań (yamasa bar bolǵan fayldı redaktorlaw ushın ashıw ushın Open... dı tańlań). Bul kitaptıń grafikalarında tolıq kórinbewi múmkin bolsa da, IDLE tiykarǵı aynada hám barlıq tekst redaktorlaw aynalarında jazılǵan kod ushın sintaksiske baǵdarlanǵan reńlendiriwdi paydalanaydı - gilt sózler bir reńde, literallar basqa reńde hám taǵı basqalar. Bul sizge kodıńızdaǵı komponentlerdiń jaqsıraq kórinisin beriwge járdem beredi (hám hátte qátelikleriń tabıwǵa járdem beriwi múmkin - mısalı, úziliksiz qatarlar hámme bir reńde boladı).
IDLE de redaktorlap atırǵan kod faylın júrgiziw ushın, fayldıń tekst redaktorlaw aynasın tańlań, sol aynanıń Run ashılmalı menyusin ashıń hám ol jerde kórsetilgen Run Module variantın tańlań (yamasa menyuda berilgen ekvivalent klavishlar kombinaciyasın paydalanıń). Eger siz fayldı ashqanıńızdan yamasa aqırǵı ret saqlaǵanıńızdan beri ózgertken bolsańız hám ózgerislerińizdi saqlawdı umıtqan bolsańız - kodlastırıw barısında júz beretuǵın kóp ushırasatuǵın qátelik - Python sizge dáslep faydı saqlawıńız kerekligin bildiredi.
Usı jol menen júrgizilgende, skriptińizdiń nátiyjeleri hám ol payda etiwi múmkin bolǵan qátelik xabarları tiykarǵı interaktiv aynada (Python shell aynasında) payda boladı. Mısalı, 3-3-súwrette, aynanıń ortasına jaqın jerdegi "RESTART" qatarınan keyingi úsh qatar basqa redaktorlaw aynasında ashılǵan script1.py faylımızdıń orınlanıwın kórsetedi. "RESTART" xabarı bizge paydalanıwshı kodı processiniń redaktorlanǵan skriptti júrgiziw ushın qayta baslanǵanın bildiredi hám skript nátiyjelerin ajıratıwǵa xızmet etedi (eger IDLE paydalanıwshı kodı sub-processisiz baslanǵan bolsa, ol payda bolmaydı - bul rejim haqqında azdan keyin kóbirek).
IDLE kúndelikli másláháti: Eger siz IDLE niń tiykarǵı interaktiv aynasında aldınǵı buyrıqlardı qaytalaǵıńız kelse, buyrıqlar tariyxı boyınsha artqa qarap aylandırıw ushın Alt-P klavishler kombinaciyasın hám aldıǵa qarap aylandırıw ushın Alt-N di paydalana alasız (ayırım Mac kompyuterlerinde onıń ornına Ctrl-P hám Ctrl-N di qollanıp kóriń). Siziń aldınǵı buyrıqlarıńız esletiledi hám kórsetiledi, sonday-aq olardı redaktorlaw hám qayta júrgiziw múmkin. Sonıń menen birge, kursordı olardıń ústine jaylastırıp buyrıqlardı esletiwiń yamasa kesiw hám qoyıw operaciyaların paydalanıwıńız múmkin, biraq bul usıllar kóbirek jumıstı talap etedi. IDLE den tısqarı, Windows ta interaktiv sessiyada buyrıqlardı baǵıt klavishleri menen esletiwińiz múmkin boladı.
IDLE di paydalanıw
IDLE biypul, paydalanıwǵa ańsat, kóshirmeli hám kópshilik platformalarda avtomatik túrde qoljetimli. Men onı Pythondı jańa baslaǵanlarǵa usınıs etemen, sebebi ol ayırım detallardı jeńilletedi hám sistema buyrıq qatarları menen aldın tanıs bolıwdı talap etpeydi. Biraq, ol qımbatıraq kommerciyalıq IDE lerge salıstırǵanda bir qansha sheklengen. Ayırım keń tarqalǵan qıyınshılıqlardı saplastırıwǵa járdem beriw ushın, tómende IDLE di jańa paydalanıwshılar esapqa alıwı kerek bolǵan máseleler dizimi berilgen:
• Fayllarıńızdı saqlaǵanda ".py" di anıq qosıwıńız kerek. Men ulıwma fayllar haqqında aytqanımda bunı eskertken edim, biraq bul IDLE de jiyı ushırasatuǵın qıyınshılıq, ásirese Windows paydalanıwshıları ushın. IDLE fayllar saqlanǵanda fayl atlarına .py keńeytpesin avtomatik túrde qospaydı. Fayldı birinshi ret saqlaǵanda .py keńeytpesin ózińiz terip jazıwǵa itibarlı bolıń. Eger bulay islemeseńiz, faylıńızdı IDLE den (hám sistema buyrıq qatarlarınan) júrgize alasız, biraq onı interaktiv túrde yamasa basqa modullerden import ete almaysız.
• Skriptlerdi tekst redaktorlaw aynalarında Run→Run Module di tańlaw arqalı júrgizińiz, interaktiv import hám qayta júklew arqalı emes. Bul baptıń aldınǵı bóliminde faydı interaktiv import qılıw arqalı júrgiziw múmkin ekenin kórgen edik. Biraq, bul usıl quramalı bolıp ketiwi múmkin, sebebi ózgerislerden keyin fayllardı qolda qayta júklew talap etiledi. Buǵan salıstırǵanda, IDLE de Run→Run Module menyusin paydalanıw bárqulla faylıńızdıń eń sońǵı versiyasın júrgizedi, dál sistema qabıǵı buyrıq qatarı arqalı júrgizgendey. IDLE, sonday-aq, kerek bolsa, faylıńızdı birinshi saqlaw ushın sizge eskertiw beredi (IDLE den tısqarı jiyi ushırasatuǵın basqa bir qátelik).
• Tek ǵana interaktiv sınap atırǵan modullerdi qayta júklew kerek. Sistema qabıǵı buyrıq qatarları sıyaqlı, IDLE niń Run→Run Module menyu opciyası bárqulla joqarı dárejeli fayl hám ol import etken barlıq modullerdiń aǵımdaǵı versiyasın júrgizedi. Usıǵan baylanıslı, Run→Run Module import qılıwǵa baylanıslı keń tarqalǵan aljasıwlardı saplastıradı. IDLE de tek ǵana interaktiv import qılıp hám sınap atırǵan modullerińizdi qayta júklew kerek boladı. Eger Run→Run Module ornına import hám qayta júklew usılın qollanıwdı tańlasańız, aldınǵı buyrıqlardı esletip alıw ushın Alt-P/Alt-N klaviatura kombinaciyaların qollana alasız dep esińizde saqlań.
• Siz ILDEni ózińizge sáykeslestiriwińiz múmkin. IDLE daǵı tekst shriftleri hám reńlerin ózgertiwińiz ushın, qálegen IDLE aynasınıń Options menyusınan Configure variantın tańlań. Sonday-aq, klaviatura kombinaciyaları háreketlerin, abzac parametrlerin hám basqalardı da sáykeslestire alasız; qosımsha maǵlıwmat ushın IDLE niń járdem menyusın qarań.
• Házirgi waqıtta IDLE de ekrandı tazalaw opciyası joq. Bul jiyirek soralatuǵın soraw bolıp kórinedi (bálkim, usıǵan uqsas IDElerde bar bolǵanı ushın) hám waqtı kelgende qosılıwı múmkin. Biraq, házirgi kúnde interaktiv ayna tekstin tazalawdıń hesh qanday usılı joq. Eger ayna tekstiniń joǵalıwın qáleseńiz, Enter klavishin basıp turıwıńız yamasa bir qatar bos qatarlardı basıp shıǵarıw ushın Python ciklın jazıwıńız múmkin (álbette, hesh kim keyingi usıldı qollanbaydı, biraq bul Enter klavishin basıwdan góre kóbirek joqarı texnologiyalı bolıp esitiledi!).
• tkinter GUI hám kóp áwladlı baǵdarlamalar IDLE menen jaqsı islemewi múmkin. IDLE ózi Python/tkinter baǵdarlaması bolǵanlıqtan, onı ayırım túrdegi quramalı Python/tkinter baǵdarlamaların júrgiziw ushın qollanǵanda qatıp qalıwı múmkin. Bul mashqala IDLE niń keyingi versiyalarında, paydalanıwshı kodın bir processte hám IDLE GUI ózin basqa processte júrgiziwi arqalı azayǵan, biraq ayırım baǵdarlamalar (ásirese kóp áwladlı baǵdarlamalar) ele de GUI dı qatırıp qoyıwı múmkin. Siziń kodıńız bunday mashqalalardı kórsetpewi múmkin, biraq ulıwma qaǵıyda boyınsha, GUI baǵdarlamaların redaktorlaw ushın IDLE di qollanıw, al olardı basqa variantlar, mısalı belgi basıw yamasa sistema buyrıq qatarı arqalı iske túsiriw bárqulla qáwipsiz. Gúmanlı jaǵdaylarda, eger kodıńız IDLE de islemese, onı GUI sırtında sınap kóriń.
• Eger baylanıs qátelikleri payda bolsa, IDLE di bir processli rejimde iske túsirip kóriń. IDLE óziniń bóleklengen paydalanıwshı hám GUI processleri arasında baylanıstı talap etetuǵını sebepli, ol bazı platformalarda iske túsiwde qıyınshılıq keltiriwi múmkin (atap aytqanda, ol bazı Windows kompyuterlerinde baylanıslardı bloklaytuǵın firewall baǵdarlaması sebepli waqtı-waqtı menen iske túspey qaladı). Eger siz usınday baylanıs qáteliklerin ushıratsańız, IDLE di hámme waqıt sistema buyrıq qatarı menen iske túsirip, onı bir processli rejimde paydalanıwshı-kodı subprocesisiz jumıs islewge májbúrlewge hám sonıń menen baylanıs máselelerinen qutılıwǵa boladı: onıń -n buyrıq qatarı bayraǵı usı rejimdi májbúrleydi. Mısalı, Windows ta, Command Prompt aynasın ashıń hám C:\Python30\Lib\idlelib katalogı ishinen (kerek bolsa, dáslep cd arqalı sol jerge ótiń) idle.py -n sistema buyırıǵın orınlań.
• IDLE diń bazı qolaylı ózgesheliklerine dıqqat awdarıń. IDLE baslawshılar ushın ómirdi jeńillestiriw ushın kóp nárse isleydi, biraq onıń ayırım hiylelerı IDLE GUI sırtında qollanılmaydı. Mısalı, IDLE siziń skriptlerińizdi óziniń interaktiv atlar keńisliginde orınlaydı, sonlıqtan kodıńızdaǵı ózgeriwshiler avtomatik túrde IDLE interaktiv sessiyasında payda boladı - aldın orınlaǵan fayllarıńızdıń joqarı dárejesindegi atlarǵa kirisiw ushın import buyrıqların orınlawdıń hámme waqıt zárúrligi joq. Bul qolaylı bolıwı múmkin, biraq ol aljasıqlı da bolıwı múmkin, sebebi IDLE ortasınan tısqarıda atlar hámme waqıt paydalanıw ushın fayllardan import etilgen bolıwı kerek. IDLE sonday-aq avtomatik túrde jańa ǵana orınlanǵan fayl katalogına ótedi hám onıń katalogın modul import izlew jolına qosadı - bul izlew jolı sazlawlarısız sol jerdegi fayllardı import etiw imkaniyatın beretuǵın qolaylı ózgeshelik, biraq ol da IDLE sırtında fayllar orınlanǵanda birdey islemeydi. Bunday ózgesheliklerdi paydalanıw maqul, biraq olar IDLE háreketleri bolıp, Python háreketleri emes ekenin umıtpań.
IDLE diń qosımsha quralları
Tiykarǵı redaktorlaw hám orınlaw funkciyalarınan tısqarı, IDLE qosımsha múmkinshiliklerdi usınadı, sonıń ishinde kórsetiw hám basıw arqalı isleytuǵın programma otladshıgı hám obyekt kóriwshisi bar. IDLE otladshıgı Debug menyusi arqalı, al obyekt kóriwshisi File menyusi arqalı iske túsiriledi. Kóriwshi modul izlew jolı boyınsha fayllarǵa hám fayllardaǵı obyektlerge ótiw imkaniyatın beredi; fayl yamasa obyektke basıw onıń derek kodın tekst redaktorlaw aynasında ashadı.
IDLE de otladlaw bas aynada Debug→Debugger menyusin tańlaw arqalı baslanadı, keyin tekst redaktorlaw aynasında Run→Run Module variantın tańlaw arqalı skriptińizdi iske túsiresiz; otladshı iske túsirilgennen keyin, siz tekst redaktorlaw aynalarında qatarlarǵa oń túymesheni basıw arqalı kodıńızdıń orınlanıwın toqtatatuǵın úzilis noqatların ornatıwıńız, ózgeriwshiler mánislerin kórsetiwińiz hám basqa da ámellerdi orınlawıńız múmkin. Sonday-aq, otladlaw waqtında programmanıń orınlanıwın baqlawıńız múmkin - kodıńız boyınsha adımlap ótkenińizde házirgi kod qatarı belgilenedi.
Ápiwayıraq otladlaw ámeliyatları ushın siz qátelik xabarı tekstine tıshqannıń oń túymeshesin basıw arqalı qátelik júz bergen kod qatarına tez ótiw imkaniyatına iyesiz - bul hiyleniń járdeminde dúzetiw hám qayta orınlaw ápiwayı hám tez ámelge asırıladı.
Buǵan qosımsha, IDLE diń tekst redaktorı programmalaw ushın qolaylı qurallar toplamın usınadı, sonıń ishinde avtomatik sheginiw, joqarı dárejeli tekst hám fayl izlew ámeliyatları hám basqalar bar. IDLE intuitiv GUI tásirlesiwin qollanǵanı sebepli, onıń basqa quralların túsiniw ushın sistema menen tájiriybe ótkeriwińiz kerek.
Basqa IDE ler
IDLE biypul, kóshirmeli hám Python nıń standart bólegi bolǵanı ushın, eger siz IDE qollanıwdı qáleseńiz, onı úyreniwge arnalǵan jaqsı birinshi rawajlandırıw quralı. Jáne de, eger siz endi baslaǵan bolsańız, komanda qatarı tiykarlanǵan rawajlandırıw rejimin álleqashan bilseńiz hám qáleseńiz, usı kitaptıń shınıǵıwları ushın IDLE di paydalanıwdı usınıs etemen.
Biraq, Python rawajlandırıwshıları ushın bir neshe alternativ IDE ler bar, olardıń ayırımları IDLE ge qaraǵanda ádewir kúshli hám isenimli. Mine, eń kóp qollanılatuǵın IDE lerdiń ayırımları:
Eclipse hám PyDev
Eclipse - bul joqarı dárejeli ashıq derek kodlı IDE GUI. Dáslep Java IDE sıpatında islep shıǵılǵan Eclipse, PyDev (yamasa uqsas) plagindi ornatqanıńızda Python rawajlandırıwın da qollap-quwatlaydı. Eclipse - Python rawajlandırıw ushın keń tarqalǵan hám kúshli variant bolıp, ol IDLE diń funkciyalar toplamınan ádewir asıp ketedi. Ol kod tamamlaw, sintaksis belgilew, sintaksis analizi, qayta dúziw, otladlaw hám basqalardı qollap-quwatlaydı. Onıń kemshilikleri - bul úlken sistema bolıp, onı ornatıw kerek hám ayırım funkciyalar ushın shareware keńeytiwlerdi talap etiwi múmkin (bul waqıt ótiwi menen ózgeriwi múmkin). Sonda da, IDLE den ósip shıǵıwǵa tayar bolǵanıńızda, Eclipse/PyDev kombinaciyası itibarǵa ılayıq.
Komodo
Komodo - bul Python (hám basqa tiller) ushın tolıq funkciyalı rawajlandırıw ortalıǵı GUI bolıp, ol standart sintaksis-boyaw, tekst redaktorlaw, otladlaw hám basqa funkciyalardı óz ishine aladı. Buǵan qosımsha, Komodo IDLE de joq kóplegen joqarı dárejeli funkciyalardı usınadı, sonıń ishinde proekt faylları, derek-kodın basqarıw integraciyası, turaqlı ańlatpalar otladlawı hám interaktiv túrde joybarlaytuǵın GUI lerdi ámelge asırıw ushın Python/tkinter kodın generaciyalaydı. Házirgi waqıtta Komodo biypul emes; ol http://www.activestate.com saytında qoljetimli.
NetBeans IDE for Python
NetBeans - bul Python rawajlandırıwshıları ushın kóplegen joqarı dárejeli funkciyalardı qollap-quwatlaytuǵın kúshli ashıq kodlı rawajlandırıw ortalıǵı GUI: kod tamamlaw, avtomatik sheginiw hám kod boyaw, redaktor meńzewleri, kod búklew, qayta dúziw, otladlaw, kod qamtıw hám sınaw, proektler hám taǵı basqalar. Ol CPython hám Jython kodın rawajlandırıw ushın qollanılıwı múmkin. Eclipse sıyaqlı, NetBeans ti ornatıw ushın qosılǵan IDLE GUI den tısqarı qosımsha adımlar talap etiledi, biraq kóp adamlar bunı kúsh salıwǵa turatuǵın dep esaplaydı. Eń sońǵı maǵlıwmatlar hám siltemeler ushın internetten izlep kóriń.
PythonWin
PythonWin - bul ActiveState kompaniyasınıń ActivePython distribyuciyasınıń bir bólegi sıpatında jiberiletuǵın (hám http://www.python.org resurslarınan da bólek júklep alınıwı múmkin) Python ushın biypul, tek Windows ta isleytuǵın IDE. Ol shama menen IDLE ge uqsas, biraq oǵan bir qansha paydalı Windows qa tiyisli keńeytiwler qosılǵan; mısalı, PythonWin COM obyektlerin qollap-quwatlaydı. Búgingi kúnde IDLE PythonWin ge qaraǵanda kóbirek rawajlanǵan (mısalı, IDLE diń eki processli arxitekturası kóbinese onıń qatıp qalıwınıń aldın aladı). Degen menen, PythonWin ele de IDLE de joq Windows rawajlandırıwshıları ushın qurallar usınadı. Qosımsha maǵlıwmat ushın http://www.activestate.com saytına kiriń.
Basqalar
Men biletuǵın shama menen altı basqa keń qollanılatuǵın IDE bar (sonıń ishinde kommerciyalıq Wing IDE hám PythonCard), biraq olardı bul jerde tolıq súwretlew ushın orın joq, hám waqıt ótiw menen basqaları da payda bolıwı múmkin. Shınında da, házirgi waqıtta derlik barlıq baǵdarlamashılar ushın qolaylı tekst redaktorları, olar aldın ala ornatılǵan yamasa bólek júklep alınǵan bolsın, qanday da bir túrde Python dı rawajlandırıwdı qollap-quwatlaydı. Mısalı, Emacs hám Vim Python dı áhmiyetli dárejede qollap-quwatlaydı. Men bul jerde bunday barlıq variantlardı hújijetlestiriwge háreket etpeymen; qosımsha maǵlıwmat ushın http://www.python.org saytındaǵı resurslarǵa qarań yamasa internetten "Python IDE" dep izleń. Siz sonday-aq "Python redaktorları" dep izlep kóriwińiz múmkin - búgin bul sizdi Python programmalastırıw ushın kóplegen IDE hám tekst redaktorları variantları haqqında maǵlıwmatlardı saqlap turatuǵın wiki betine alıp baradı.
Basqa iske túsiriw variantları
Bul noqatta biz interaktiv túrde terilgen kodtı qalay orınlaw, hám fayllarǵa saqlanǵan kodtı hár túrli usıllar menen - sistema buyrıq qatarları, import hám exec funkciyaları, IDLE sıyaqlı grafikalıq interfeys hám basqalar arqalı qalay iske túsiriw múmkin ekenin kórdik. Bul kitapta kórsetiletuǵın kópshilik jaǵdaylardı qamtıydı. Degen menen, Python kodın orınlawdıń qosımsha usılları da bar, olardıń kópshiligi arnawlı yamasa tar qollanılıw orınlarına iye. Kelesi bir neshe bólimde bulardan ayırımlarına qısqasha itibar qaratamız.
Jaylastırılǵan shaqırıwlar
Ayırım arnawlı tarawlarda Python kodı qorshap turǵan sistema tárepinen avtomatik túrde orınlanıwı múmkin. Bunday jaǵdaylarda biz Python programmaları basqa bir programma ishinde jaylastırılǵan (yaǵnıy, basqa programma tárepinen orınlanatuǵın) dep aytamız. Python kodınıń ózi tekst faylına kiritilgen, maǵlıwmatlar bazasında saqlanǵan, HTML betinen alınǵan, XML hújjetinen parslanǵan hám basqa túrlerde bolıwı múmkin. Biraq operaciyalıq kóz-qarastan, basqa bir sistema - siz emes - Python ǵa siz jaratqan kodtı orınlawdı buyıradı.
Bunday jaylastırılǵan orınlaw rejimi kóbinese aqırǵı paydalanıwshı sazlawların qollap-quwatlaw ushın qollanıladı - mısalı, oyın programması strategiyalıq waqıt noqatlarında paydalanıwshı kiriwine bolǵan jaylastırılǵan Python kodın orınlaw arqalı oyın modifikaciyalarına ruqsat beriw múmkin. Paydalanıwshılar bunday sistemanı Python kodın berip yamasa ózgertip modifikaciyalaw múmkin. Python kodı interpretaciyalanatuǵın bolǵanlıqtan, ózgerislerdi kiritiwde pútkil sistemanı qayta kompilaciyalaw talap etilmeydi (Python kodınıń qalay orınlanıwı haqqında tolıǵıraq 2-baptan bilip alasız).
Bul rejimde, siziń kodıńızdı orınlaytuǵın qorshap turǵan sistema C, C++ yamasa hátte Jython sisteması qollanılǵanda Java tilinde jazılǵan bolıwı múmkin. Mısal ushın, C programmasınan Python orınlaw waqtı API-sındaǵı (siziń kompyuterińizde Python kompilaciya etilgende jaratılǵan kitapxanalarda eksport etilgen xızmetler toplamı) funkciyalardı shaqırıw arqalı Python kod qatarların jaratıw hám orınlaw múmkin:
#include ...
Py_Initialize(); // Bul C, Python emes
PyRun_SimpleString("x = batır + ser robin"); // Biraq ol Python kodın orınlaydı
Bul C kod úzindisinde, C tilinde kodlanǵan programma Python interpretatorın óz kitapxanalarına baylanıstırıw arqalı jaylastıradı hám oǵan orınlaw ushın Python operatorı qatarın jiberedi. C programmaları sonday-aq Python modulleri hám obyektlerine kiriwge hám olardı basqa Python API quralların qollanıp qayta islew yamasa orınlawǵa erisiw múmkin.
Bul kitap Python/C integraciyası haqqında emes, biraq siziń shólkemlestiriwińizdiń Pythondı qalay qollanıwdı joba etiwine baylanıslı, siz jaratqan Python programmaların haqıyqatında iske túsiretuǵın adam siz bolıwıńız yamasa bolmawıńız múmkin ekenligin biliwińiz kerek. Soǵan qaramastan, siz ádetde ele usı jerde táriyiplengen interaktiv hám fayl tiykarındaǵı iske túsiriw usılların qollanıp, kodtı aqırında onı qollanıwı múmkin bolǵan sol qorshap turǵan sistemalardan bóleklengen halda sınap kóriwińiz múmkin.*
Muzlatılǵan binar orınlanıwshı fayllar
Muzlatılǵan binar orınlanıwshı fayllar, 2-bapta táriyiplengenindey, siziń programmanızdıń bayt kodı menen Python interpretatorın bir orınlanıwshı programmaǵa birlestirgen paketler bolıp tabıladı. Bul usıl Python programmaların basqa hár qanday orınlanıwshı programmanı iske túsirgen sıyaqlı usıllar menen iske túsiriwge múmkinshilik beredi (belgi basıw, komanda qatarları t.b.). Bul variant ónimlerdi jetkizip beriw ushın jaqsı islegeni menen, ol haqıyqatında programmanı rawajlandırıw dáwirinde qollanıw ushın arnalmaǵan; siz ádette tek jóneltiw aldınan muzlatıwdı ámelge asırasız (rawajlandırıw juwmaqlanǵannan keyin). Bul variant haqqında kóbirek maǵlıwmat alıw ushın aldıńǵı baptı qarap shıǵıń.
Tekst redaktorın iske túsiriw variantları
Burın aytıp ótilgenindey, olar tolıq rawajlanǵan IDE GUI bolmasa da, kópshilik programmalastırıw ushın qolaylı tekst redaktorları Python programmaların redaktorlaw hám múmkin bolsa orınlaw ushın qollap-quwatlawǵa iye. Bunday qollap-quwatlaw ornatılǵan bolıwı yamasa internetten júklep alınıwı múmkin. Mısalı, eger siz Emacs tekst redaktorı menen tanıs bolsańız, barlıq Python redaktorlaw hám iske túsiriw jumısların usı tekst redaktorı ishinde orınlay alasız. Kóbirek maǵlıwmat ushın http://www.python.org/editors mánzilindegi tekst redaktorı resursları betine kirip kóriń yamasa internetten "Python redaktorları" sóz dizbegi boyınsha izlewdi ámelge asırıń.
Basqa da iske túsiriw variantları
Siziń platformańızǵa baylanıslı, Python programmaların baslaw ushın qosımsha usıllar bolıwı múmkin. Mısalı, ayırım Macintosh sistemalarında Python programma fayl belgisin Python interpretator belgisine súyrew arqalı olardı orınlata alasız, al Windowsta Python skriptlerin bárqulla Start menyusındaǵı "Orınlaw..." opciyası menen baslawıńız múmkin. Bunnan tısqarı, Python standart kitapxanasında Python programmaların basqa Python programmaları tárepinen ózinshe processlerde baslaw imkaniyatın beriwshi qurallar bar (mısalı, os.popen, os.system), hám Python skriptleri úlken kontekstlerde, mısalı, internette de iske túsirilwi múmkin (mısalı, veb-bet serverdegi skriptti shaqırıwı múmkin); biraq, bular házirgi baptıń kólemine kirmeydi.
Keleshektegi imkaniyatlar?
Bul bap házirgi ámeliyattı sáwlelendiredi, biraq materialdıń kóp bólimi hám platforma, hám waqıtqa baylanıslı. Haqıyqatında, usınılǵan orınlaw hám iske túsiriw detallarınıń kópshiligi usı kitaptıń hár qıylı basılımlarınıń ómiri dawamında payda boldı. Programmanı orınlaw variantları sıyaqlı, waqıt ótiwi menen jańa programmanı iske túsiriw variantlarınıń payda bolıwı da múmkin. Jańa operaciyalıq sistemalar hám bar sistemalardıń jańa versiyaları bul jerde kórsetilgennen tısqarı orınlaw usılların usınıwı múmkin. Ulıwma alǵanda, Python bunday ózgerislerge ılayıqlasqanı sebepli, siz házir de, keleshekte de qollanıp atırǵan kompyuterlerińiz ushın maqul kelgen usıllar menen Python programmaların iske túsire alıwıńız kerek - bul planshet kompyuterler yamasa PDAlarda sızıw, virtual realliqta belgilerdi tutıw yamasa kásipleslerińizdiń sáwbetleri arasında skripttiń atın basqarıw bolsın.
Ámelge asırıw ózgerisleriniń de iske túsiriw sxemalarına belgili dárejede tásiri bolıwı múmkin (mısalı, tolıq kompilyator házirgi muzlatılǵan binar fayllarǵa uqsas túrde iske túsirilgen normal orınlanatuǵın fayllardı payda etiw múmkin). Biraq, eger men keleshekte ne bolatuǵının haqıyqattan da bilgenimde, bálkim, bul sózlerdi jazıwdıń ornına birja brokeri menen sóylesip atırǵan bolar edim!
Qaysı varianttı qollanıwım kerek?
Barlıq usı variantlar menen bir soraw tábiyiy túrde payda boladı: qaysısı men ushın eń jaqsı? Ulıwma alǵanda, eger siz Python menen endi tanısıp atırǵan bolsańız, IDLE interfeysin qollanıp kóriwińiz kerek. Ol paydalanıwshıǵa qolaylı GUI ortalıq usınadı hám bazı tiykarǵı konfiguraciya detalların jasıradı. Ol sonday-aq skriptlerińizdi kodlaw ushın platformaǵa baylanıslı bolmaǵan tekst redaktorın usınadı hám Python sistemasınıń standart hám biypul bólegi bolıp tabıladı.
Ekinshi tárepten, eger siz tájiriybeli programmist bolsańız, bir aynada óz qálewińizdegi tekst redaktorı menen, al ekinshi aynada sistema buyrıq qatarları hám belgi basıwlar arqalı redaktorlaw qılǵan programmalardı iske túsiriw ushın qollanıw sizge qolaylıraq bolıwı múmkin (haqıyqatında, men Python programmaların usılay islep shıǵaraman, biraq meniń Unix-ke moyınlaǵan ótmishim bar).
Rawajlandırıw ortalıqların tańlaw júdá subyektiv bolǵanlıqtan, men ulıwma baǵdarlawshı retinde bunnan kóbirek usınıs bere almayman; ulıwma alǵanda, qaysı ortalıqtı qollanıwdı jaqsı kórseńiz, sol siz ushın eń jaqsısı boladı.
Python kodın saplastırıw
Tábiyiy, meniń oqıwshılarım yamasa studentlerimniń hesh qaysısında kodta qátelikler bolmaydı (bul jerge kúlimsirew belgisin qoyıń), biraq siziń onday baxıtsız doslarıńız ushın, mine, haqıyqıy dúnyadaǵı Python programmistleri kodtı saplastırıw ushın qollanatuǵın strategiyalarǵa qısqasha itibar:
• Hesh nárse islemeń. Bul arqalı men Python programmistleri óz kodların saplastırmaydı dep aytpayman - biraq Python programmasında qátelik islegenińizde, júdá paydalı hám oqıwǵa qolaylı qátelik xabarın alasız (eger ele kórmegen bolsańız, tez arada kóresiź). Eger siz Python tilin álleqashan biletuǵın bolsańız, ásirese óz kodıńız ushın, kóbinese usınıń ózi jetkilikli boladı - qátelik xabarın oqıń da, belgilengen qatardı hám fayldı dúzetiń. Kópshilik ushın Pythondaǵı saplastırıw sonnan ibarat. Degen menen, bul ózińiz jazbaǵan úlken sistemalar ushın bárqulla ideal bolmawı múmkin.
• Print operatorların qosıń. Python programmistleriniń kodtı saplastırıwdıń tiykarǵı usılı (hám meniń Python kodın saplastırıw usılım) - bul print operatorların qosıw hám qaytadan iske túsiriw. Python ózgerislerden keyin dárhal iske túsetuǵını sebepli, bul ádetde qátelik xabarları bergennen de kóbirek maǵlıwmat alıwdıń eń tez usılı. Print operatorları quramalı bolıwı shárt emes - ápiwayı "Men bul jerdemen" yamasa ózgeriwshiler mánislerin kórsetiw kóbinese sizge kerekli kontekstti beriw ushın jetkilikli boladı. Tek kodıńızdı jiberiwden aldın saplastırıw ushın qosılǵan print operatorların óshiriwdi yamasa kommentariyge aylandırıwdı (yaǵnıy, aldına # qosıwdı) umıtpań!
• IDE GUI saplastırıwshıların qollanıń. Ózińiz jazbaǵan úlken sistemalar ushın hám kodtı tolıǵıraq izlewdi qalewshi baslanıwshılar ushın, kópshilik Python rawajlandırıw GUIlerinde qanday da bir túrde basıw-basqarıw arqalı saplastırıw qollap-quwatlanıwı bar. IDLEde de saplastırıwshı bar, biraq ol ámeliyatta júdá az qollanılatuǵın kórinedi - bálkim, onda komanda qatarı joq bolǵanı ushın, yamasa print operatorların qosıw ádetde GUI saplastırıw sessiyasın ornatıwdan tezrek bolǵanı ushın shıǵar. Qosımsha maǵlıwmat alıw ushın IDLEniń járdemshisin kóriń yamasa ápiwayı túrde óziń sınap kóriń; onıń tiykarǵı interfeysi 62-betindegi "Qosımsha IDLE quralları" bóliminde túsindiriligen. Eclipse, NetBeans, Komodo hám Wing IDE sıyaqlı basqa IDEler de qádimgi basıw-basqarıw arqalı saplastırıwshılardı usınadı; olardan paydalansańız, olardıń qollanbasın kóriń.
• pdb komanda qatarı saplastırıwshısın qollanıń. Eń joqarı dárejeli basqarıw ushın Python pdb dep atalatuǵın derek kod saplastırıwshısı menen birge keledi, ol Pythonnıń standart kitapxanasında modul sıpatında jetkilikli. pdb-de siz qatarma-qatar júriw, ózgeriwshilerdi kórsetiw, toqtaw noqatların ornatıw hám óshiriw, toqtaw noqatına yamasa qátelikke shekem dawam etiw hám basqalar ushın komandalar teresiz. pdb interaktiv túrde onı import etiw arqalı yamasa joqarı dárejeli skript sıpatında iske túsiriledi. Qaysı usıl bolsa da, sessiyanı basqarıw ushın komandalar tere alatuǵınıńız sebepli, ol kúshli saplastırıw quralın bere aladı. Sonday-aq, pdb qátelik waqtınan maǵlıwmat alıw ushın ózgeshelik júz bergennen keyin iske túsire alatuǵınıńız postmortem funkciyasın óz ishine aladı. pdb haqqında qosımsha maǵlıwmat ushın Python kitapxana qollanbasın hám 35-babın kóriń.
• Basqa variantlar. Arnawlı saplastırıw talapları ushın, ashıq derek kodlı domende qosımsha qurallar taba alasız, sonıń ishinde kóp potokllı programmalardı, jaylastırılǵan kodtı hám processti biriktirilgen qollap-quwatlawdı óz ishine aladı. Mısalı, Winpdb sisteması - bul aldıńǵı qatardaǵı saplastırıw qollap-quwatlawı hám platformalar aralıq GUI hám konsol interfeysleri bar ózinshe saplastırıwshı. Biz úlkenirek skriptler jazıwdı baslaǵanımızda bul variantlar júdá áhmiyetli boladı. Biraq, saplastırıw maydanındaǵı eń jaqsı jańalıq, qátelikler Pythonda anıqlanadı hám xabarlanadı, únsiz ótip ketpeydi yamasa pútkil sistemanı ishten buzbaydı. Haqıyqatında, qáteliklerdiń ózi ayrıqshalıqlar dep atalatuǵın jaqsı anıqlanǵan mexanizm bolıp tabıladı, olardı uslap alıp qayta islew múmkin (ayrıqshalıqlar haqqında VII bólimde kóbirek maǵlıwmat berilgen). Álbette, qátelik jiberiw hesh qashan quwanıshlı emes, biraq saplastırıw degeni on altılıq kalkulyatordı alıp shıǵıw hám yadtı tógiw baspa shıǵarmaların úyrenip shıǵıwdı bildirgen waqıtlardı esleytuǵın adam sıpatında aytıwım múmkin, Pythonnıń saplastırıw qollap-quwatlawı qáteliklerin basqa jaǵdaylarǵa qaraǵanda ádewir az awır etedi.
Bap juwmaǵı
Bul bapta biz Python programmaların iske túsiriwdiń kóp tarqalǵan usılların kórip shıqtıq: interaktiv túrde terilgen kodtı orınlaw hám fayllarda saqlanǵan kodtı sistema buyrıq qatarları, fayl belgilerin basıw, modul importlaw, exec shaqırıwları hám IDLE sıyaqlı IDE GUI arqalı iske túsiriw. Biz bul jerde kóp ámeliy iske túsiriw máselelerdi qamtıp óttik.
Bul baptıń maqseti sizge biraz kod jazıwdı baslawǵa múmkinshilik beriw ushın jetkilikli maǵlıwmat beriw edi, bunı siz kitaptıń keyingi bóliminde isleysiz. Sol jerde biz Python tiliniń ózin úyreniwdi baslayıq, onıń tiykarǵı maǵlıwmat tiplerinen baslaymız.
Biraq, dáslep, bul jerde úyrengenlerińizdi bekkemlew ushın ádettegi bap sorawnamasın orınlań. Bul kitaptıń usı bólimindegi aqırǵı bap bolǵanlıqtan, ol usı pútkil bólimniń temaların ózlestirgenińizdi tekseretuǵın tolıǵıraq shınıǵıwlar toplamı menen juwmaqlanadı. Sorawnamanıń keyingi bólimi boyınsha járdem alıw ushın yamasa tek ǵana qaytalaw ushın, shınıǵıwlardı orınlap kórgenińizden keyin, B qosımshasına baylanısıwdı umıtpań.
Bilimińizdi tekseriń: Sorawnama
1. Interaktiv interpretator sessiyasın qáytip baslay alasız?
2. Skript faylın iske túsiriw ushın sistema buyrıq qatarın qay jerge teresiz?
3. Skript faylında saqlanǵan kodtı orınlawdıń tórt yamasa onnan kóp usılın atań.
4. Windowsta fayl belgilerin basıwǵa baylanıslı eki qáwipti atań.
5. Ne ushın moduldi qayta júklew kerek bolıwı múmkin?
6. IDLE ishinde skriptti qáytip orınlaysız?
7. IDLEdi paydalanıwǵa baylanıslı eki qáwipti atań.
8. Atlar keńisligi (namespace) degen ne hám ol modul fayllarına qalay baylanıslı?
Bilimińizdi tekseriń: Juwaplar
1. Interaktiv sessiyanı Windowsta baslaw ushın "Start" túymesin basıp, "Barlıq baǵdarlamalar" opciyasın tańlap, Python jazbasın basıp, "Python (buyrıq qatarı)" menyu opciyasın tańlawıńız múmkin. Sonday-aq, Windows hám basqa platformalarda sistema konsol aynasında (Windowsta Command Prompt aynası) python dep sistema buyrıq qatarın terip te usınday nátiyje alıwıńız múmkin. Taǵı bir alternativa - IDLEdi iske túsiriw, sebebi onıń tiykarǵı Python qabıq aynası interaktiv sessiya bolıp tabıladı. Eger sistemańızdıń PATH ózgeriwshisine Pythondı tabıw ushın jol kórsetilmegen bolsa, Python ornatılǵan jerge cd arqalı ótiwiń yamasa python ornına onıń tolıq katalog jolın teriwiń kerek bolıwı múmkin (mısalı, Windowsta C:\Python30\python).
2. Sistemalıq buyrıq qatarların platformańız usınǵan sistema konsolına teresiz: Windowsta Command Prompt aynası; Unix, Linux hám Mac OS Xte xterm yamasa terminal aynası; hám taǵı basqalar.
3. Skript (negizinde, modul) faylındaǵı kod tómendegi usıllar menen orınlanıwı múmkin:
- Sistemalıq buyrıq qatarları arqalı
- Fayl belgisine basıw arqalı
- Import hám qayta júklew arqalı
- exec qurılǵan funkciyası arqalı
- IDE grafikalıq interfeysi tańlawları arqalı, mısalı IDLEdiń Run→Run Module menyu opciyası
Unixte olar #! hiylesi menen atqarılıwshı sıpatında da orınlanıwı múmkin, al bazı platformalar qosımsha arnawlı iske túsiriw usılların qollap-quwatlaydı (mısalı, súyretiw hám taslawdı). Bunnan tısqarı, bazı tekst redaktorlarınıń Python kodın orınlawdıń ózine tán usılları bar, ayırım Python baǵdarlamaları ózinshe "muzlatılǵan binar" atqarılıwshı sıpatında beriledi, al bazı sistemalar Python kodın jaylastırılǵan rejimde paydalanıp, ol C, C++ yamasa Java sıyaqlı tillerde jazılǵan qorshaǵan baǵdarlama tárepinen avtomatik túrde orınlanadı. Sońǵı usıl kóbinese paydalanıwshı sazlawları qatlamın beriwde qollanıladı.
4. Shıǵarıp, keyin shıǵıp ketetuǵın skriptler shıǵarıw faylınıń dárhal joǵalıp ketiwine alıp keledi, siz shıǵarıwdı kóre almay qalasız (sonlıqtan input ámeli júdá paydalı); skriptińiz payda etken qáte xabarları da mazmunın tekseriwdiń aldınan jabılatuǵın shıǵarıw aynasında payda boladı (bul sistemalıq buyrıq qatarları hám IDLE sıyaqlı IDElerdiń kópshilik rawajlandırıw ushın jaqsıraq ekeniniń bir sebepleri).
5. Python, ádette, bir process dawamında moduldi tek bir ret import etedi (júkleydi). Eger siz onıń derek kodın ózgertken bolsańız hám Pythondı toqtatıp, qayta iske túsirmey jańa nusqasın iske qosqıńız kelse, onı qayta júklewiń kerek boladı. Qayta júklewden aldın moduldi keminde bir ret import etiwiń kerek. Kod faylların sistema qabıǵı buyrıq qatarınan, belgi basıw arqalı yamasa IDLE sıyaqlı IDE arqalı iske qosıw, ádette, bul máseleni joq etedi, sebebi bul iske túsiriw sxemaları kóbinese derek kod faylınıń házirgi nusqasın hárdayım iske qosadı.
6. Iske qosqıńız keletuǵın fayldıń tekst redaktorlaw aynasında, aynanıń Run→Run Module menyu opciyasın tańlań. Bul aynanıń derek kodın joqarı dárejeli skript faylı sıpatında iske qosadı hám onıń nátiyjesin interaktiv Python qabıǵı aynasında kórsetedi.
7. IDLE ele de bazı túrdegi baǵdarlamalar tárepinen ilinip qalıwı múmkin - ásirese kóp aǵımlı (bul kitaptıń kólemine sıymaytuǵın quramalı texnika) orınlaytuǵın GUI baǵdarlamalar. Sonıń menen birge, IDLEdiń bazı qolaylı ózgeshelikleri bar, olar IDLE GUIden shıqqanıńızdan keyin sizge zıyan keltiriwi múmkin: mısalı, IDLEde skripttiń ózgeriwshileri avtomatik túrde interaktiv kólemge import etiledi, biraq ulıwma Python bunı islemeydi.
8. Namespace - bul tek ǵana ózgeriwshilerdiń (yaǵnıy, atlardıń) jıyındısı. Pythonda ol atributları bar obyekt túrinde kórinedi. Hár bir modul faylı avtomatik túrde namespace bolıp tabıladı - yaǵnıy, fayldıń joqarı dárejesinde islengen tayınlawlardı sáwlelendiriwshi ózgeriwshiler jıyındısı. Namespaceler Python baǵdarlamalarında at dúgisiwleriniń aldın alıwǵa járdem beredi: hár bir modul faylı óz aldına namespace bolǵanlıqtan, fayllar basqa fayllardıń atların paydalanıw ushın olardı anıq import etiwi kerek.
Bilimińizdi Tekseriń: I Bólim Shınıǵıwları
Endi ózińiz azǵana kodlaw menen shuǵıllanıwdıń waqtı keldi. Bul birinshi shınıǵıw sessiyası ápiwayı, biraq bul sorawlardıń bazıları keyingi baplarda keliwshi temalardı itibarǵa aladı. Juwaplar ushın sheshimler qosımshasındaǵı (B Qosımshası) "I Bólim, Baslaw" bólimine (1101-bet) qarawdı umıtpań; shınıǵıwlar hám olardıń sheshimleri tiykarǵı tekstte talqılanbaǵan qosımsha maǵlıwmatlardı óz ishine alıwı múmkin, sonlıqtan hámme sorawlarǵa óz betińizshe juwap bere alsańız da, sheshimlerge kóz juwırtıp shıǵıwıńız kerek.
1. Tásirlesiw. Sistema buyrıq qatarın, IDLEdi yamasa basqa usıldı qollanıp, Python interaktiv buyrıq qatarın (>>> belgisi) iske túsiriń hám "Hello World!" ańlatpasın (tırnaqshaları menen birge) jazıń. Sózdiń sizge qayta kórsetiliwi kerek. Bul shınıǵıwdıń maqseti - ortalıǵıńızdı Python jumıs islewi ushın sazlaw. Bazı jaǵdaylarda, dáslep cd qabıq buyırıǵın orınlaw, Python orınlanıwshı faylınıń tolıq jolın jazıw yamasa onıń jolın PATH ortalıq ózgeriwshisine qosıw kerek bolıwı múmkin. Qáleseńiz, Unix sistemalarında Pythondı turaqlı túrde qoljetimli etiw ushın PATHti .cshrc yamasa .kshrc faylıńızda ornatıwıńızǵa boladı; Windowsta setup.bat, autoexec.bat yamasa ortalıq ózgeriwshiler GUIin qollanıń. Ortalıq ózgeriwshiler sazlawları boyınsha járdem alıw ushın A Qosımshasın qarań.
2. Baǵdarlamalar. Ózińiz qáleytuǵın tekst redaktorın qollanıp, tek ǵana print(Hello module world!) buyrıǵınan ibarat ápiwayı modul faylın jazıń hám onı module1.py dep saqlań. Endi, bul fayldı qáleytuǵın iske túsiriw variantıńızdı qollanıp iske túsiriń: onı IDLEde iske túsiriw, onıń fayl belgisine shertip, sistema qabıǵınıń buyrıq qatarında Python interpretatorına ótkeriw (mısalı, python module1.py), built-in exec shaqırıwları, import hám reloadlar hám basqalar arqalı. Haqıyqatında, faylıńızdı bul bapta talqılanǵan barlıq múmkin bolǵan iske túsiriw usılların qollanıp sınap kóriń. Qaysı usıl eń ańsat bolıp kórinedi? (Álbette, bul sorawǵa durıs juwap joq.)
3. Moduller. Python interaktiv buyrıq qatarın (>>> belgisi) iske túsiriń hám 2-shınıǵıwda jazǵan modulińizdi import qılıń. Fayldı basqa papkaǵa kóshirip, onı qaytadan dáslepki papkasınan import qılıp kóriń (yaǵnıy, import qılǵanıńızda Pythondı dáslepki papkada iske túsiriń). Ne boladı? (Kómek: dáslepki papkada ele de module1.pyc baut-kod faylı bar ma?)
4. Skriptler. Eger platformańız qollasa, module1.py modul faylıńızdıń basına #! qatarın qosıń, faylǵa orınlanıw huqıqların beriń hám onı tikkeley orınlanıwshı fayl sıpatında iske túsiriń. Birinshi qatarda ne bolıwı kerek? #! ádette tek Unix, Linux hám Mac OS X sıyaqlı Unix tárizli platformalarda áhmiyetke iye; eger Windowsta isleseńiz, onıń ornına faylıńızdı DOS konsol aynasında tek atın jazıp, aldına "python" sózin qoymay iske túsirip kóriń (bul Windowstıń sońǵı versiyalarında isledi) yamasa Start→Run... dialog aynası arqalı iske túsirip kóriń.
5. Qáteler hám sazlaw. Python interaktiv buyrıq qatarında matematikalıq ańlatpalar hám tayınlawlardı jazıp kóriń. Jolda, 2 ** 500 hám 1 / 0 ańlatpaların jazıń, hám biz bul bapta islegenimizdey anıqlanbaǵan ózgeriwshi atın paydalanıp kóriń. Ne boladı?
Siz ele bilmewińiz múmkin, biraq qáte islegenińizde, siz ózgesheliklerdi qayta islew processine kiresiz (bul temanı VII-bólimde tereń úyrenemiz). Sol jerde bilip alasız, texnikalıq jaqtan siz defolt ózgeshelik qayta islewshini iske túsiresiz - bul standart qáte xabarın shıǵaratuǵın logika. Eger qáteni uslamasańız, defolt qayta islewshi onı uslap aladı hám juwap retinde standart qáte xabarın shıǵaradı. Ózgeshelikler Pythonda sazlaw túsinigi menen de baylanıslı. Jańa baslaǵanıńızda, Pythonnıń ózgeshelik jaǵdaylarındaǵı defolt qáte xabarları sizge kerekli bolǵan qátelerdi qayta islew járdemin beredi - olar qáteniń sebeplerin kórsetedi, sonday-aq qáte júz bergen waqıtta kodıńızdıń qaysı qatarları aktiv bolǵanın kórsetedi. Sazlaw haqqında kóbirek maǵlıwmat alıw ushın 67-bette "Python kodın sazlaw" degen qosımsha maǵlıwmattı qarań.
6. Úzilisler hám dáwirler. Python buyrıq qatarında mınanı jazıń:
L = [1, 2] # 2 elementten turatuǵın dizim isleymiz
L.append(L) # L dizimin ózi ishinde bir element retinde qosamız
L # L dizimin basıp shıǵaramız
Ne boladı? Pythonnıń barlıq jańa versiyalarında, siz birtúrli nátiyje kóresiz, onı sheshimler qosımshasında túsindirip beremiz, hám kitaptıń keyingi bóliminde siltemelerdi úyrengenimizde bul kóbirek túsinikli boladı. Eger 1.5.1 versiyasınan eski Python versiyasın qollanıp atırǵan bolsańız, kóp platformalarda Ctrl-C túymeler kombinaciyası járdem beriwi múmkin. Siziń Python versiyańız ne ushın bul kodqa usılay juwap beredi dep oylaysız?
Eger sizde 1.5.1 versiyasınan eski Python bolsa (búgingi kúnde bul júdá siyrek jaǵday!), bul testti orınlawdan aldın kompyuterińizdiń qandayda bir Ctrl-C túymeler kombinaciyası menen baǵdarlamanı toqtata alatuǵınına isenimli bolıń, bolmasa uzaq waqıt kútiwińizge tuwrı keliwi múmkin.
7. Hújjetleme (dokumentaciya). Standart kitapxanadaǵı bar qurallar hám hújjetleme toplamınıń qurılısı menen tanısıw ushın aldıǵa ótiwden burın Python kitapxanası hám til qollanbasın keminde 17 minut dawamında kórip shıǵıń. Qollanba toplamındaǵı tiykarǵı temalar jaylasqan jerler menen tanısıw ushın keminde sonday waqıt kerek boladı; bunı islep bolǵanıńızdan keyin, sizge kerekli nárseni tabıw ańsat boladı. Bul qollanbanı Windowstaǵı Python Start túymesinen, IDLEdiń Help ashılmalı menyusındaǵı Python Docs opciyasınan yamasa onlayn túrde http://www.python.org/doc saytınan tabıwıńız múmkin. Men 15-bapda qollanba hám basqa da hújjetleme derekler (PyDoc hám járdem funkciyası qosılǵanı) haqqında qosımsha maǵlıwmat beremen. Eger ele waqtıńız bolsa, Python veb-saytın, sonday-aq onıń úshinshi tárep keńeytiwleri saqlanatuǵın PyPy repozitoriysin izertleń. Ásirese Python.org hújjetlemesi hám izlew betlerin tekserip kóriń; olar júdá áhmiyetli resurslar bola aladı.
Paydalanılǵan ádebiyat:
Learning Python, Fourth Edition by Mark Lutz CHAPTER 3
How You Run Programs
a = dead # Úsh atributti anıqlaw
b = parrot # Basqa fayllarga eksport qılınadı
c = sketch
print(a, b, c) # Bul faylda da qollanıladı
Bul threenames.py faylı úsh ózgeriwshini belgileydi, sonlıqtan sırtqı dúnya ushın úsh atributti payda etedi. Ol sonday-aq óziniń úsh ózgeriwshisin print operatorında qollanadı, bunı biz bul fayldı joqarı dárejeli fayl sıpatında júrgizgenimizde kóremiz:
% python threenames.py
dead parrot sketch
Bul fayldıń barlıq kodı basqa jerde birinshi ret import qılınǵanda (import yamasa from arqalı) ádettegidey júrgiziledi. Bul fayldı import qollanıp paydalanǵan klientler atributları bar moduldi aladı, al from qollanǵan klientler fayl atlarınıń kóshirmelerin aladı:
% python
>>> import threenames # Pútkil moduldi alıw
dead parrot sketch
>>> threenames.b, threenames.c
(parrot, sketch)
>>> from threenames import a, b, c # Bir neshe attı kóshiriw
>>> b, c
(parrot, sketch)
Bul jerde nátiyjeler qawsırma ishinde basıp shıǵarıladı, sebebi olar haqıyqatında kortejler (bul kitaptıń keyingi bóliminde qaralatuǵın obyekt túri); házirshe olarǵa itibar bermey-aq qoyıwıńız múmkin.
Usınday bir neshe atı bar modullerdi kodlaw baslaǵanıńızda, qurılǵan dir funkciyası júdá paydalı bola baslaydı - onı modul ishinde bar bolǵan atlardıń dizimin alıw ushın qollanıwıńız múmkin. Tómendegi qatarlar Python qatarlar dizimin qaytaradı (biz dizimlerdi keyingi bapta úyrene baslaymız):
>>> dir(threenames)
[__builtins__, __doc__, __file__, __name__, __package__, a, b, c]
Men bunı Python 3.0 hám 2.6 nusqalarında orınladım; eskilew Python nusqaları azıraq at qaytarıwı múmkin. dir funkciyası usılay qawsırma ishinde berilgen import qılınǵan modul atı menen shaqırılǵanda, ol sol modul ishindegi barlıq atributlardı qaytaradı. Ol qaytaratuǵın atlardan gezeklesin "biypul" alasız: basında hám aqırında qos astın sızıq bar atlar Python tárepinen aldın ala belgilengen qurılǵan atlar bolıp, interpretator ushın arnawlı mánige iye. Biziń kodımız táriyiplengen ózgeriwshiler - a, b hám c - dir nátiyjesinde eń aqırında kórinedi.
Moduller hám at keńislikleri
Modul importları - kod faylların júrgiziw usılı, biraq, kitaptıń keyingi bólimlerinde talqılanatuǵınday, moduller Python baǵdarlamalarındaǵı eń úlken baǵdarlama strukturası bolıp tabıladı. Ulıwma alǵanda, Python baǵdarlamaları import operatorları arqalı baylanısqan bir neshe modul fayllarınan quralǵan. Hár bir modul faylı - ózgeriwshilerdiń ózine tán toplamı, yaǵnıy at keńisligi. Bir modul faylı basqa faylda anıqlanǵan atlardı, sol basqa fayldı anıq túrde import qılmaǵansha kóre almaydı, sonlıqtan moduller kodıńızdaǵı at dúgisiwlerin minimallastırıwǵa járdem beredi - hár bir fayl ózine tán at keńisligi bolǵanlıqtan, bir fayldaǵı atlar basqa fayldaǵı atlar menen, hatteki olar birdey jazılǵan bolsa da, dúgise almaydı.
Haqıyqatında da, kórip turǵanıńızday, moduller - Python siziń ózgeriwshilerińizdi at dúgisiwlerin boldırmaw ushın bólimlerge jıynawǵa úlken kúsh jumsaytuǵın bir neshe usıllardıń biri. Biz moduller hám basqa at keńisligi strukturaların (klaslar hám funkciya kólemlerin qosqanda) kitaptıń keyingi bólimlerinde tolıǵıraq talqılaymız. Házirge, moduller siziń kodıńızdı qayta terip shıǵıwǵa májbúr bolmay, kóp márte júrgiziw usılı sıpatında paydalı boladı.
import penen from salıstırması: Men from operatorınıń bir mániste modullerdiń at keńisligin bóliw maqsetin biykarlaytuǵının aytıp ótiwim kerek - sebebi from bir fayldan ekinshisine ózgeriwshilerdi kóshiredi, ol import qılıwshı fayldaǵı birdey atamalı ózgeriwshilerdiń ústinen jazılıwına alıp keliwi múmkin (hám bul haqqında eskertpeydi). Bul tiykarınan at keńisliklerin, hesh bolmaǵanda kóshirilgen ózgeriwshiler kóz-qarasınan, birlestiredi. Usı sebepli, ayırımlar from ornına import ti qollanıwdı usınıs etedi. Men bunshelli alısqa barmayman; from tek ǵana az jazıwdı talap etip qoymay, onıń gúman etilgen máselesi ámeliyatta siyrek ushırasadı. Onıń ústine, bul siz from da qáleytuǵın ózgeriwshilerdi kórsetiw arqalı basqaratuǵın nárse; olardıń mánisler menen belgileniwın túsinseńiz, bul tapsırma operatorların jazıwdan artıq qáwipli emes - bul sizge kerek bolatuǵın taǵı bir qásiyet!
import hám reload qollanıw boyınsha eskertiw
Qanday da bir sebeplerge kóre, adamlar faylların import hám reload arqalı júrgiziw haqqında bilgennen keyin, kópshilik tek usıǵan itibar berip, kodtıń házirgi versiyasın bárqulla júrgiziwge múmkinshilik beretuǵın basqa iske túsiriw variantların umıtıp qoyadı (mısalı, belgi basıw, IDLE menyusı opciyaları hám sistema buyrıq qatarları). Biraq, bul usıl tez arada aljasıwǵa alıp keliwi múmkin - import qılǵanıńızdı este saqlaw kerek, reload qollana alasız ba, bilesiz be, reload tı shaqqanda qawsırma qollanıwdı umıtpaw kerek (tek ǵana reload ushın), hám kodıńızdıń házirgi versiyasın júrgiziw ushın dáslep reload tı qollanıwdı umıtpaw kerek. Bunnan tısqarı, reload lar ótpeli emes - moduldi qayta júklew tek sol moduldi qayta júkleydi, ol import qılıwı múmkin bolǵan basqa modullerdi emes - sonlıqtan, geyde bir neshe fayldı qayta júklew kerek boladı.
Usı qıyınshılıqlar sebepli (hám basqalar, olardı keyinirek qarap shıǵamız, sonıń ishinde bul baptıń aldıńǵı eskertiwinde aytılǵan reload/from máselesi), házirshe import hám reload arqalı iske túsiriw beyimliginen saqlanıw jaqsı pikir. Mısalı, keyingi bólimde túsindirilgen IDLE Run→Run Module menyusı opciyası siziń fayllarıńızdı júrgiziwdiń ápiwayılıraq hám qátege azıraq ushıraytuǵın usılın beredi hám bárqulla kodıńızdıń házirgi versiyasın júrgizedi. Sistema komandalıq qatarı usaǵan artıqmashılıqlardı usınadı. Eger usı texnikalardı qollansańız, reload ti qollanıwıńız shárt emes.
Bunnan tısqarı, eger siz kitaptıń usı noqatında modullerdı ádettegiden tıs usıllarda qollansańız, qıyınshılıqlarǵa duwshar bolıwıńız múmkin. Mısalı, eger siz jumıs islep atırǵan direktoriyadan basqa jerde saqlanatuǵın modul faylın import qılıwdı qáleseńiz, 21-bapqa ótip, modul izlew jolı haqqında úyreniwińiz kerek boladı.
Házirshe, eger import qılıwıńız kerek bolsa, qıyınshılıqlardan saqlanıw ushın barlıq fayllarıńızdı jumıs islep atırǵan direktoriyada saqlawǵa háreket etiń. Sonday-aq, import hám reload lar Python sabaqlarda áhmiyetli sınaw usılı bolıp dálillengen, hám siz de bul usıldı qollanǵandı maqul kóriwińiz múmkin. Biraq, ádettegidey, eger ózińizdi diywalǵa urıp atırǵanday sezseńiz, diywalǵa urılıwdı toqtatıń!
Modul faylların júrgiziw ushın exec ti qollanıw
Shınında da, modul fayllarında saqlanǵan kodtı júrgiziwdiń bul jerde kórsetilgennen de kóbirek usılları bar. Mısalı, exec(open(module.py).read()) ornatılǵan funkciya shaqırıwı - bul interaktiv prompttan faylların import qılmay hám keyinirek qayta júklemey iske túsiriwdiń basqa bir usılı. Hár bir exec faydıń házirgi versiyasın júrgizedi, keyingi qayta júklewlerdi talap etpey (script1.py aldıńǵı bólimde qayta júklewden keyin qaldırǵanımızday):
C:\misc> c:\python30\python
>>> exec(open(script1.py).read())
win32
65536
Spam!Spam!Spam!Spam!Spam!Spam!Spam!Spam!
...script1.py di tekst redaktorında ózgertiń...
>>> exec(open(script1.py).read())
win32
4294967296
Spam!Spam!Spam!Spam!Spam!Spam!Spam!Spam!
exec shaqırıwı import qa uqsas tásir kórsetedi, biraq ol texnikalıq jaqtan moduldi import qılmaydı - ádette, hár sapar exec ti usılay shaqırǵanıńızda, ol faydı qaytadan júrgizedi, tap siz onı exec shaqırılǵan jerge jaylastırǵanday. Sonıń ushın, exec fayl ózgerislerinen keyin modullerdi qayta júklewdi talap etpeydi - ol normal modul import logikasın ótkizip jiberedi. Kemshiligi sıpatında, ol shaqırılǵan jerge kodtı jaylastırǵanday isleytuǵını sebepli, exec, aldın aytılǵan from operatorı sıyaqlı, házirgi waqıtta qollanıp atırǵan ózgeriwshilerińizdi únsiz túrde qayta jazıw múmkinshiligine iye. Mısalı, biziń script1.py x dep atalǵan ózgeriwshige mánisti belgileydi. Eger bul at exec shaqırılǵan jerde de qollanılıp atırǵan bolsa, attıń mánisi almastırıladı:
>>> x = 999
>>> exec(open(script1.py).read()) # Kod ádette usı namespace te júrgiziledi
...birdey shıǵıs...
>>> x # Onıń belgilewleri bul jerdegi atların qayta jazıwı múmkin
Spam!
Kerisinshe, tiykarǵı import operatorı faydı hár bir process ushın tek bir ret júrgizedi hám fayldı ózgeshe modul namespace etip, onıń belgilewleri siziń kóleminizde ózgeriwshilerdi ózgertpeydi. Modullerdiń namespace bóliniwi ushın tóleytuǵın baha - ózgerislerden keyin qayta júklew kerekligi bolıp tabıladı.
Versiya parqı eskertiw: Python 2.6 da execfile(module.py) ornatılǵan funkciyası bar, exec(open(module.py)) formasına qosımsha túrde, bular ekewi de avtomatik túrde fayl mazmunın oqıydı. Bul ekewi de exec(open(module.py).read()) formasına teń, ol quramalıraq, biraq 2.6 hám 3.0 de júredi. Tilekke qarsı, bul eki ápiwayı 2.6 formalarınıń hesh qaysısı 3.0 de joq, bul usı texnikanı búgin tolıq túsiniw ushın fayllar hám olardıń oqıw metodların túsiniw kerek degenin ańlatadı (átteń, bul 3.0 de estetikanıń ámeliylikti jeńgeni bolıwı múmkin). Shınında da, 3.0 degi exec forması sonshelli kóp jazıwdı talap etedi, eń jaqsı keńes - bunı islemew bolıwı múmkin - faylardı sistema shell komanda qatarların jazıw arqalı yamasa keyingi bólimde túsindiriletuǵın IDLE menyu opciyaların qollanıw arqalı iske túsiriw eń jaqsısı. 3.0 degi exec forması haqqında kóbirek maǵlıwmat ushın 9-bapqa qarań.
IDLE paydalanıwshı interfeysi
Usı waqıtqa shekem, biz Python kodın interaktiv prompt, sistema komanda qatarları, belgi basıw, modul import etiw hám exec shaqırıwları menen qáytip júrgiziw múmkinligin kórdik. Eger siz kóbirek vizual nárse izlep atırǵan bolsańız, IDLE Python rawajlandırıw ushın grafikli paydalanıwshı interfeysin usınadı hám ol Python sistemasınıń standart hám biypul bólegi bolıp tabıladı. Ol kóbinese birlestirgen rawajlandırıw ortalıǵı (IDE) dep ataladı, sebebi ol hár túrli rawajlandırıw wazıypaların bir kóriniske birlestiredi. Qısqasha aytqanda, IDLE - bul Python programmaların redaktorlaw, orınlaw, kóriw hám sazlaw imkaniyatın beretuǵın GUI, hámmesin bir interfeysten. Bunnan tısqarı, IDLE tkinter GUI qurallar toplamın (2.6 da Tkinter dep ataladı) paydalanatuǵın Python programması bolǵanlıqtan, ol kópshilik Python platformalarında, sonıń ishinde Microsoft Windows, X Windows (Linux, Unix hám Unix sıyaqlı platformalar ushın) hám Mac OS (Classic hám OS X ekewinde de) júre aladı. Kópshilik ushın IDLE komanda qatarların jazıwdıń ańsat alternativası hám belgilerde basıwǵa qaraǵanda az máseleli alternativa bolıp xızmet etedi.
IDLE tiykarları
Keliń, mısalǵa óteyik. IDLE dı Windows ta baslaw ańsat - ol Python ushın Start túymesiniń menyusında jazıwı bar (aldın kórsetilgen 2-1-súwrette), sonday-aq onı Python programması belgisine oń túyme menen basıp tańlaw múmkin. Bazı Unix sıyaqlı sistemalarda IDLE diń joqarı dárejeli skriptin komanda qatarınan yamasa Python nıń Lib katalogınıń idlelib ishki katalogında jaylasqan idle.pyw yamasa idle.py faylınıń belgisine basıw arqalı iske túsiriw kerek bolıwı múmkin. Windows ta IDLE házirgi waqıtta C:\Python30\Lib\idlelib (yamasa Python 2.6 da C:Python26\Lib\idlelib) de jaylasqan Python skripti bolıp tabıladı.
3-3-súwret Windows ta IDLE dı baslaǵannan keyingi kórinisti kórsetedi. Dáslepki ashılǵan Python shell aynası tiykarǵı ayna bolıp, ol interaktiv sessiya júrgizedi (>>> promptına itibar beriń). Bul barlıq interaktiv sessiyalar sıyaqlı isledi - bul jerde jazǵan kodıńız jazıp bolıwdan keyin birdey atqarıladı - hám sınaw quralı sıpatında xızmet etedi.
3-3-súwret. Windows ta júrip atırǵan IDLE rawajlandırıw GUI siniń tiykarǵı Python shell aynası. Derek faylın baslaw (New Window) yamasa ózgertiw (Open...) ushın File menyusın paydalanıń; sol aynada kodtı júrgiziw ushın tekst redaktorlaw aynasınıń Run menyusın paydalanıń (Run Module).
IDLE kópshilik operaciyaları ushın tanıs menyulardı hám klavishler kombinaciyaların paydalanbaydı. IDLE astında derek kodı faylın jaratıw (yamasa redaktorlaw) ushın, tekst redaktorlaw aynasın ashıń: tiykarǵı aynada File ashılmalı menyusın tańlań hám New Window dı tańlań (yamasa bar bolǵan fayldı redaktorlaw ushın ashıw ushın Open... dı tańlań). Bul kitaptıń grafikalarında tolıq kórinbewi múmkin bolsa da, IDLE tiykarǵı aynada hám barlıq tekst redaktorlaw aynalarında jazılǵan kod ushın sintaksiske baǵdarlanǵan reńlendiriwdi paydalanaydı - gilt sózler bir reńde, literallar basqa reńde hám taǵı basqalar. Bul sizge kodıńızdaǵı komponentlerdiń jaqsıraq kórinisin beriwge járdem beredi (hám hátte qátelikleriń tabıwǵa járdem beriwi múmkin - mısalı, úziliksiz qatarlar hámme bir reńde boladı).
IDLE de redaktorlap atırǵan kod faylın júrgiziw ushın, fayldıń tekst redaktorlaw aynasın tańlań, sol aynanıń Run ashılmalı menyusin ashıń hám ol jerde kórsetilgen Run Module variantın tańlań (yamasa menyuda berilgen ekvivalent klavishlar kombinaciyasın paydalanıń). Eger siz fayldı ashqanıńızdan yamasa aqırǵı ret saqlaǵanıńızdan beri ózgertken bolsańız hám ózgerislerińizdi saqlawdı umıtqan bolsańız - kodlastırıw barısında júz beretuǵın kóp ushırasatuǵın qátelik - Python sizge dáslep faydı saqlawıńız kerekligin bildiredi.
Usı jol menen júrgizilgende, skriptińizdiń nátiyjeleri hám ol payda etiwi múmkin bolǵan qátelik xabarları tiykarǵı interaktiv aynada (Python shell aynasında) payda boladı. Mısalı, 3-3-súwrette, aynanıń ortasına jaqın jerdegi "RESTART" qatarınan keyingi úsh qatar basqa redaktorlaw aynasında ashılǵan script1.py faylımızdıń orınlanıwın kórsetedi. "RESTART" xabarı bizge paydalanıwshı kodı processiniń redaktorlanǵan skriptti júrgiziw ushın qayta baslanǵanın bildiredi hám skript nátiyjelerin ajıratıwǵa xızmet etedi (eger IDLE paydalanıwshı kodı sub-processisiz baslanǵan bolsa, ol payda bolmaydı - bul rejim haqqında azdan keyin kóbirek).
IDLE kúndelikli másláháti: Eger siz IDLE niń tiykarǵı interaktiv aynasında aldınǵı buyrıqlardı qaytalaǵıńız kelse, buyrıqlar tariyxı boyınsha artqa qarap aylandırıw ushın Alt-P klavishler kombinaciyasın hám aldıǵa qarap aylandırıw ushın Alt-N di paydalana alasız (ayırım Mac kompyuterlerinde onıń ornına Ctrl-P hám Ctrl-N di qollanıp kóriń). Siziń aldınǵı buyrıqlarıńız esletiledi hám kórsetiledi, sonday-aq olardı redaktorlaw hám qayta júrgiziw múmkin. Sonıń menen birge, kursordı olardıń ústine jaylastırıp buyrıqlardı esletiwiń yamasa kesiw hám qoyıw operaciyaların paydalanıwıńız múmkin, biraq bul usıllar kóbirek jumıstı talap etedi. IDLE den tısqarı, Windows ta interaktiv sessiyada buyrıqlardı baǵıt klavishleri menen esletiwińiz múmkin boladı.
IDLE di paydalanıw
IDLE biypul, paydalanıwǵa ańsat, kóshirmeli hám kópshilik platformalarda avtomatik túrde qoljetimli. Men onı Pythondı jańa baslaǵanlarǵa usınıs etemen, sebebi ol ayırım detallardı jeńilletedi hám sistema buyrıq qatarları menen aldın tanıs bolıwdı talap etpeydi. Biraq, ol qımbatıraq kommerciyalıq IDE lerge salıstırǵanda bir qansha sheklengen. Ayırım keń tarqalǵan qıyınshılıqlardı saplastırıwǵa járdem beriw ushın, tómende IDLE di jańa paydalanıwshılar esapqa alıwı kerek bolǵan máseleler dizimi berilgen:
• Fayllarıńızdı saqlaǵanda ".py" di anıq qosıwıńız kerek. Men ulıwma fayllar haqqında aytqanımda bunı eskertken edim, biraq bul IDLE de jiyı ushırasatuǵın qıyınshılıq, ásirese Windows paydalanıwshıları ushın. IDLE fayllar saqlanǵanda fayl atlarına .py keńeytpesin avtomatik túrde qospaydı. Fayldı birinshi ret saqlaǵanda .py keńeytpesin ózińiz terip jazıwǵa itibarlı bolıń. Eger bulay islemeseńiz, faylıńızdı IDLE den (hám sistema buyrıq qatarlarınan) júrgize alasız, biraq onı interaktiv túrde yamasa basqa modullerden import ete almaysız.
• Skriptlerdi tekst redaktorlaw aynalarında Run→Run Module di tańlaw arqalı júrgizińiz, interaktiv import hám qayta júklew arqalı emes. Bul baptıń aldınǵı bóliminde faydı interaktiv import qılıw arqalı júrgiziw múmkin ekenin kórgen edik. Biraq, bul usıl quramalı bolıp ketiwi múmkin, sebebi ózgerislerden keyin fayllardı qolda qayta júklew talap etiledi. Buǵan salıstırǵanda, IDLE de Run→Run Module menyusin paydalanıw bárqulla faylıńızdıń eń sońǵı versiyasın júrgizedi, dál sistema qabıǵı buyrıq qatarı arqalı júrgizgendey. IDLE, sonday-aq, kerek bolsa, faylıńızdı birinshi saqlaw ushın sizge eskertiw beredi (IDLE den tısqarı jiyi ushırasatuǵın basqa bir qátelik).
• Tek ǵana interaktiv sınap atırǵan modullerdi qayta júklew kerek. Sistema qabıǵı buyrıq qatarları sıyaqlı, IDLE niń Run→Run Module menyu opciyası bárqulla joqarı dárejeli fayl hám ol import etken barlıq modullerdiń aǵımdaǵı versiyasın júrgizedi. Usıǵan baylanıslı, Run→Run Module import qılıwǵa baylanıslı keń tarqalǵan aljasıwlardı saplastıradı. IDLE de tek ǵana interaktiv import qılıp hám sınap atırǵan modullerińizdi qayta júklew kerek boladı. Eger Run→Run Module ornına import hám qayta júklew usılın qollanıwdı tańlasańız, aldınǵı buyrıqlardı esletip alıw ushın Alt-P/Alt-N klaviatura kombinaciyaların qollana alasız dep esińizde saqlań.
• Siz ILDEni ózińizge sáykeslestiriwińiz múmkin. IDLE daǵı tekst shriftleri hám reńlerin ózgertiwińiz ushın, qálegen IDLE aynasınıń Options menyusınan Configure variantın tańlań. Sonday-aq, klaviatura kombinaciyaları háreketlerin, abzac parametrlerin hám basqalardı da sáykeslestire alasız; qosımsha maǵlıwmat ushın IDLE niń járdem menyusın qarań.
• Házirgi waqıtta IDLE de ekrandı tazalaw opciyası joq. Bul jiyirek soralatuǵın soraw bolıp kórinedi (bálkim, usıǵan uqsas IDElerde bar bolǵanı ushın) hám waqtı kelgende qosılıwı múmkin. Biraq, házirgi kúnde interaktiv ayna tekstin tazalawdıń hesh qanday usılı joq. Eger ayna tekstiniń joǵalıwın qáleseńiz, Enter klavishin basıp turıwıńız yamasa bir qatar bos qatarlardı basıp shıǵarıw ushın Python ciklın jazıwıńız múmkin (álbette, hesh kim keyingi usıldı qollanbaydı, biraq bul Enter klavishin basıwdan góre kóbirek joqarı texnologiyalı bolıp esitiledi!).
• tkinter GUI hám kóp áwladlı baǵdarlamalar IDLE menen jaqsı islemewi múmkin. IDLE ózi Python/tkinter baǵdarlaması bolǵanlıqtan, onı ayırım túrdegi quramalı Python/tkinter baǵdarlamaların júrgiziw ushın qollanǵanda qatıp qalıwı múmkin. Bul mashqala IDLE niń keyingi versiyalarında, paydalanıwshı kodın bir processte hám IDLE GUI ózin basqa processte júrgiziwi arqalı azayǵan, biraq ayırım baǵdarlamalar (ásirese kóp áwladlı baǵdarlamalar) ele de GUI dı qatırıp qoyıwı múmkin. Siziń kodıńız bunday mashqalalardı kórsetpewi múmkin, biraq ulıwma qaǵıyda boyınsha, GUI baǵdarlamaların redaktorlaw ushın IDLE di qollanıw, al olardı basqa variantlar, mısalı belgi basıw yamasa sistema buyrıq qatarı arqalı iske túsiriw bárqulla qáwipsiz. Gúmanlı jaǵdaylarda, eger kodıńız IDLE de islemese, onı GUI sırtında sınap kóriń.
• Eger baylanıs qátelikleri payda bolsa, IDLE di bir processli rejimde iske túsirip kóriń. IDLE óziniń bóleklengen paydalanıwshı hám GUI processleri arasında baylanıstı talap etetuǵını sebepli, ol bazı platformalarda iske túsiwde qıyınshılıq keltiriwi múmkin (atap aytqanda, ol bazı Windows kompyuterlerinde baylanıslardı bloklaytuǵın firewall baǵdarlaması sebepli waqtı-waqtı menen iske túspey qaladı). Eger siz usınday baylanıs qáteliklerin ushıratsańız, IDLE di hámme waqıt sistema buyrıq qatarı menen iske túsirip, onı bir processli rejimde paydalanıwshı-kodı subprocesisiz jumıs islewge májbúrlewge hám sonıń menen baylanıs máselelerinen qutılıwǵa boladı: onıń -n buyrıq qatarı bayraǵı usı rejimdi májbúrleydi. Mısalı, Windows ta, Command Prompt aynasın ashıń hám C:\Python30\Lib\idlelib katalogı ishinen (kerek bolsa, dáslep cd arqalı sol jerge ótiń) idle.py -n sistema buyırıǵın orınlań.
• IDLE diń bazı qolaylı ózgesheliklerine dıqqat awdarıń. IDLE baslawshılar ushın ómirdi jeńillestiriw ushın kóp nárse isleydi, biraq onıń ayırım hiylelerı IDLE GUI sırtında qollanılmaydı. Mısalı, IDLE siziń skriptlerińizdi óziniń interaktiv atlar keńisliginde orınlaydı, sonlıqtan kodıńızdaǵı ózgeriwshiler avtomatik túrde IDLE interaktiv sessiyasında payda boladı - aldın orınlaǵan fayllarıńızdıń joqarı dárejesindegi atlarǵa kirisiw ushın import buyrıqların orınlawdıń hámme waqıt zárúrligi joq. Bul qolaylı bolıwı múmkin, biraq ol aljasıqlı da bolıwı múmkin, sebebi IDLE ortasınan tısqarıda atlar hámme waqıt paydalanıw ushın fayllardan import etilgen bolıwı kerek. IDLE sonday-aq avtomatik túrde jańa ǵana orınlanǵan fayl katalogına ótedi hám onıń katalogın modul import izlew jolına qosadı - bul izlew jolı sazlawlarısız sol jerdegi fayllardı import etiw imkaniyatın beretuǵın qolaylı ózgeshelik, biraq ol da IDLE sırtında fayllar orınlanǵanda birdey islemeydi. Bunday ózgesheliklerdi paydalanıw maqul, biraq olar IDLE háreketleri bolıp, Python háreketleri emes ekenin umıtpań.
IDLE diń qosımsha quralları
Tiykarǵı redaktorlaw hám orınlaw funkciyalarınan tısqarı, IDLE qosımsha múmkinshiliklerdi usınadı, sonıń ishinde kórsetiw hám basıw arqalı isleytuǵın programma otladshıgı hám obyekt kóriwshisi bar. IDLE otladshıgı Debug menyusi arqalı, al obyekt kóriwshisi File menyusi arqalı iske túsiriledi. Kóriwshi modul izlew jolı boyınsha fayllarǵa hám fayllardaǵı obyektlerge ótiw imkaniyatın beredi; fayl yamasa obyektke basıw onıń derek kodın tekst redaktorlaw aynasında ashadı.
IDLE de otladlaw bas aynada Debug→Debugger menyusin tańlaw arqalı baslanadı, keyin tekst redaktorlaw aynasında Run→Run Module variantın tańlaw arqalı skriptińizdi iske túsiresiz; otladshı iske túsirilgennen keyin, siz tekst redaktorlaw aynalarında qatarlarǵa oń túymesheni basıw arqalı kodıńızdıń orınlanıwın toqtatatuǵın úzilis noqatların ornatıwıńız, ózgeriwshiler mánislerin kórsetiwińiz hám basqa da ámellerdi orınlawıńız múmkin. Sonday-aq, otladlaw waqtında programmanıń orınlanıwın baqlawıńız múmkin - kodıńız boyınsha adımlap ótkenińizde házirgi kod qatarı belgilenedi.
Ápiwayıraq otladlaw ámeliyatları ushın siz qátelik xabarı tekstine tıshqannıń oń túymeshesin basıw arqalı qátelik júz bergen kod qatarına tez ótiw imkaniyatına iyesiz - bul hiyleniń járdeminde dúzetiw hám qayta orınlaw ápiwayı hám tez ámelge asırıladı.
Buǵan qosımsha, IDLE diń tekst redaktorı programmalaw ushın qolaylı qurallar toplamın usınadı, sonıń ishinde avtomatik sheginiw, joqarı dárejeli tekst hám fayl izlew ámeliyatları hám basqalar bar. IDLE intuitiv GUI tásirlesiwin qollanǵanı sebepli, onıń basqa quralların túsiniw ushın sistema menen tájiriybe ótkeriwińiz kerek.
Basqa IDE ler
IDLE biypul, kóshirmeli hám Python nıń standart bólegi bolǵanı ushın, eger siz IDE qollanıwdı qáleseńiz, onı úyreniwge arnalǵan jaqsı birinshi rawajlandırıw quralı. Jáne de, eger siz endi baslaǵan bolsańız, komanda qatarı tiykarlanǵan rawajlandırıw rejimin álleqashan bilseńiz hám qáleseńiz, usı kitaptıń shınıǵıwları ushın IDLE di paydalanıwdı usınıs etemen.
Biraq, Python rawajlandırıwshıları ushın bir neshe alternativ IDE ler bar, olardıń ayırımları IDLE ge qaraǵanda ádewir kúshli hám isenimli. Mine, eń kóp qollanılatuǵın IDE lerdiń ayırımları:
Eclipse hám PyDev
Eclipse - bul joqarı dárejeli ashıq derek kodlı IDE GUI. Dáslep Java IDE sıpatında islep shıǵılǵan Eclipse, PyDev (yamasa uqsas) plagindi ornatqanıńızda Python rawajlandırıwın da qollap-quwatlaydı. Eclipse - Python rawajlandırıw ushın keń tarqalǵan hám kúshli variant bolıp, ol IDLE diń funkciyalar toplamınan ádewir asıp ketedi. Ol kod tamamlaw, sintaksis belgilew, sintaksis analizi, qayta dúziw, otladlaw hám basqalardı qollap-quwatlaydı. Onıń kemshilikleri - bul úlken sistema bolıp, onı ornatıw kerek hám ayırım funkciyalar ushın shareware keńeytiwlerdi talap etiwi múmkin (bul waqıt ótiwi menen ózgeriwi múmkin). Sonda da, IDLE den ósip shıǵıwǵa tayar bolǵanıńızda, Eclipse/PyDev kombinaciyası itibarǵa ılayıq.
Komodo
Komodo - bul Python (hám basqa tiller) ushın tolıq funkciyalı rawajlandırıw ortalıǵı GUI bolıp, ol standart sintaksis-boyaw, tekst redaktorlaw, otladlaw hám basqa funkciyalardı óz ishine aladı. Buǵan qosımsha, Komodo IDLE de joq kóplegen joqarı dárejeli funkciyalardı usınadı, sonıń ishinde proekt faylları, derek-kodın basqarıw integraciyası, turaqlı ańlatpalar otladlawı hám interaktiv túrde joybarlaytuǵın GUI lerdi ámelge asırıw ushın Python/tkinter kodın generaciyalaydı. Házirgi waqıtta Komodo biypul emes; ol http://www.activestate.com saytında qoljetimli.
NetBeans IDE for Python
NetBeans - bul Python rawajlandırıwshıları ushın kóplegen joqarı dárejeli funkciyalardı qollap-quwatlaytuǵın kúshli ashıq kodlı rawajlandırıw ortalıǵı GUI: kod tamamlaw, avtomatik sheginiw hám kod boyaw, redaktor meńzewleri, kod búklew, qayta dúziw, otladlaw, kod qamtıw hám sınaw, proektler hám taǵı basqalar. Ol CPython hám Jython kodın rawajlandırıw ushın qollanılıwı múmkin. Eclipse sıyaqlı, NetBeans ti ornatıw ushın qosılǵan IDLE GUI den tısqarı qosımsha adımlar talap etiledi, biraq kóp adamlar bunı kúsh salıwǵa turatuǵın dep esaplaydı. Eń sońǵı maǵlıwmatlar hám siltemeler ushın internetten izlep kóriń.
PythonWin
PythonWin - bul ActiveState kompaniyasınıń ActivePython distribyuciyasınıń bir bólegi sıpatında jiberiletuǵın (hám http://www.python.org resurslarınan da bólek júklep alınıwı múmkin) Python ushın biypul, tek Windows ta isleytuǵın IDE. Ol shama menen IDLE ge uqsas, biraq oǵan bir qansha paydalı Windows qa tiyisli keńeytiwler qosılǵan; mısalı, PythonWin COM obyektlerin qollap-quwatlaydı. Búgingi kúnde IDLE PythonWin ge qaraǵanda kóbirek rawajlanǵan (mısalı, IDLE diń eki processli arxitekturası kóbinese onıń qatıp qalıwınıń aldın aladı). Degen menen, PythonWin ele de IDLE de joq Windows rawajlandırıwshıları ushın qurallar usınadı. Qosımsha maǵlıwmat ushın http://www.activestate.com saytına kiriń.
Basqalar
Men biletuǵın shama menen altı basqa keń qollanılatuǵın IDE bar (sonıń ishinde kommerciyalıq Wing IDE hám PythonCard), biraq olardı bul jerde tolıq súwretlew ushın orın joq, hám waqıt ótiw menen basqaları da payda bolıwı múmkin. Shınında da, házirgi waqıtta derlik barlıq baǵdarlamashılar ushın qolaylı tekst redaktorları, olar aldın ala ornatılǵan yamasa bólek júklep alınǵan bolsın, qanday da bir túrde Python dı rawajlandırıwdı qollap-quwatlaydı. Mısalı, Emacs hám Vim Python dı áhmiyetli dárejede qollap-quwatlaydı. Men bul jerde bunday barlıq variantlardı hújijetlestiriwge háreket etpeymen; qosımsha maǵlıwmat ushın http://www.python.org saytındaǵı resurslarǵa qarań yamasa internetten "Python IDE" dep izleń. Siz sonday-aq "Python redaktorları" dep izlep kóriwińiz múmkin - búgin bul sizdi Python programmalastırıw ushın kóplegen IDE hám tekst redaktorları variantları haqqında maǵlıwmatlardı saqlap turatuǵın wiki betine alıp baradı.
Basqa iske túsiriw variantları
Bul noqatta biz interaktiv túrde terilgen kodtı qalay orınlaw, hám fayllarǵa saqlanǵan kodtı hár túrli usıllar menen - sistema buyrıq qatarları, import hám exec funkciyaları, IDLE sıyaqlı grafikalıq interfeys hám basqalar arqalı qalay iske túsiriw múmkin ekenin kórdik. Bul kitapta kórsetiletuǵın kópshilik jaǵdaylardı qamtıydı. Degen menen, Python kodın orınlawdıń qosımsha usılları da bar, olardıń kópshiligi arnawlı yamasa tar qollanılıw orınlarına iye. Kelesi bir neshe bólimde bulardan ayırımlarına qısqasha itibar qaratamız.
Jaylastırılǵan shaqırıwlar
Ayırım arnawlı tarawlarda Python kodı qorshap turǵan sistema tárepinen avtomatik túrde orınlanıwı múmkin. Bunday jaǵdaylarda biz Python programmaları basqa bir programma ishinde jaylastırılǵan (yaǵnıy, basqa programma tárepinen orınlanatuǵın) dep aytamız. Python kodınıń ózi tekst faylına kiritilgen, maǵlıwmatlar bazasında saqlanǵan, HTML betinen alınǵan, XML hújjetinen parslanǵan hám basqa túrlerde bolıwı múmkin. Biraq operaciyalıq kóz-qarastan, basqa bir sistema - siz emes - Python ǵa siz jaratqan kodtı orınlawdı buyıradı.
Bunday jaylastırılǵan orınlaw rejimi kóbinese aqırǵı paydalanıwshı sazlawların qollap-quwatlaw ushın qollanıladı - mısalı, oyın programması strategiyalıq waqıt noqatlarında paydalanıwshı kiriwine bolǵan jaylastırılǵan Python kodın orınlaw arqalı oyın modifikaciyalarına ruqsat beriw múmkin. Paydalanıwshılar bunday sistemanı Python kodın berip yamasa ózgertip modifikaciyalaw múmkin. Python kodı interpretaciyalanatuǵın bolǵanlıqtan, ózgerislerdi kiritiwde pútkil sistemanı qayta kompilaciyalaw talap etilmeydi (Python kodınıń qalay orınlanıwı haqqında tolıǵıraq 2-baptan bilip alasız).
Bul rejimde, siziń kodıńızdı orınlaytuǵın qorshap turǵan sistema C, C++ yamasa hátte Jython sisteması qollanılǵanda Java tilinde jazılǵan bolıwı múmkin. Mısal ushın, C programmasınan Python orınlaw waqtı API-sındaǵı (siziń kompyuterińizde Python kompilaciya etilgende jaratılǵan kitapxanalarda eksport etilgen xızmetler toplamı) funkciyalardı shaqırıw arqalı Python kod qatarların jaratıw hám orınlaw múmkin:
#include ...
Py_Initialize(); // Bul C, Python emes
PyRun_SimpleString("x = batır + ser robin"); // Biraq ol Python kodın orınlaydı
Bul C kod úzindisinde, C tilinde kodlanǵan programma Python interpretatorın óz kitapxanalarına baylanıstırıw arqalı jaylastıradı hám oǵan orınlaw ushın Python operatorı qatarın jiberedi. C programmaları sonday-aq Python modulleri hám obyektlerine kiriwge hám olardı basqa Python API quralların qollanıp qayta islew yamasa orınlawǵa erisiw múmkin.
Bul kitap Python/C integraciyası haqqında emes, biraq siziń shólkemlestiriwińizdiń Pythondı qalay qollanıwdı joba etiwine baylanıslı, siz jaratqan Python programmaların haqıyqatında iske túsiretuǵın adam siz bolıwıńız yamasa bolmawıńız múmkin ekenligin biliwińiz kerek. Soǵan qaramastan, siz ádetde ele usı jerde táriyiplengen interaktiv hám fayl tiykarındaǵı iske túsiriw usılların qollanıp, kodtı aqırında onı qollanıwı múmkin bolǵan sol qorshap turǵan sistemalardan bóleklengen halda sınap kóriwińiz múmkin.*
Muzlatılǵan binar orınlanıwshı fayllar
Muzlatılǵan binar orınlanıwshı fayllar, 2-bapta táriyiplengenindey, siziń programmanızdıń bayt kodı menen Python interpretatorın bir orınlanıwshı programmaǵa birlestirgen paketler bolıp tabıladı. Bul usıl Python programmaların basqa hár qanday orınlanıwshı programmanı iske túsirgen sıyaqlı usıllar menen iske túsiriwge múmkinshilik beredi (belgi basıw, komanda qatarları t.b.). Bul variant ónimlerdi jetkizip beriw ushın jaqsı islegeni menen, ol haqıyqatında programmanı rawajlandırıw dáwirinde qollanıw ushın arnalmaǵan; siz ádette tek jóneltiw aldınan muzlatıwdı ámelge asırasız (rawajlandırıw juwmaqlanǵannan keyin). Bul variant haqqında kóbirek maǵlıwmat alıw ushın aldıńǵı baptı qarap shıǵıń.
Tekst redaktorın iske túsiriw variantları
Burın aytıp ótilgenindey, olar tolıq rawajlanǵan IDE GUI bolmasa da, kópshilik programmalastırıw ushın qolaylı tekst redaktorları Python programmaların redaktorlaw hám múmkin bolsa orınlaw ushın qollap-quwatlawǵa iye. Bunday qollap-quwatlaw ornatılǵan bolıwı yamasa internetten júklep alınıwı múmkin. Mısalı, eger siz Emacs tekst redaktorı menen tanıs bolsańız, barlıq Python redaktorlaw hám iske túsiriw jumısların usı tekst redaktorı ishinde orınlay alasız. Kóbirek maǵlıwmat ushın http://www.python.org/editors mánzilindegi tekst redaktorı resursları betine kirip kóriń yamasa internetten "Python redaktorları" sóz dizbegi boyınsha izlewdi ámelge asırıń.
Basqa da iske túsiriw variantları
Siziń platformańızǵa baylanıslı, Python programmaların baslaw ushın qosımsha usıllar bolıwı múmkin. Mısalı, ayırım Macintosh sistemalarında Python programma fayl belgisin Python interpretator belgisine súyrew arqalı olardı orınlata alasız, al Windowsta Python skriptlerin bárqulla Start menyusındaǵı "Orınlaw..." opciyası menen baslawıńız múmkin. Bunnan tısqarı, Python standart kitapxanasında Python programmaların basqa Python programmaları tárepinen ózinshe processlerde baslaw imkaniyatın beriwshi qurallar bar (mısalı, os.popen, os.system), hám Python skriptleri úlken kontekstlerde, mısalı, internette de iske túsirilwi múmkin (mısalı, veb-bet serverdegi skriptti shaqırıwı múmkin); biraq, bular házirgi baptıń kólemine kirmeydi.
Keleshektegi imkaniyatlar?
Bul bap házirgi ámeliyattı sáwlelendiredi, biraq materialdıń kóp bólimi hám platforma, hám waqıtqa baylanıslı. Haqıyqatında, usınılǵan orınlaw hám iske túsiriw detallarınıń kópshiligi usı kitaptıń hár qıylı basılımlarınıń ómiri dawamında payda boldı. Programmanı orınlaw variantları sıyaqlı, waqıt ótiwi menen jańa programmanı iske túsiriw variantlarınıń payda bolıwı da múmkin. Jańa operaciyalıq sistemalar hám bar sistemalardıń jańa versiyaları bul jerde kórsetilgennen tısqarı orınlaw usılların usınıwı múmkin. Ulıwma alǵanda, Python bunday ózgerislerge ılayıqlasqanı sebepli, siz házir de, keleshekte de qollanıp atırǵan kompyuterlerińiz ushın maqul kelgen usıllar menen Python programmaların iske túsire alıwıńız kerek - bul planshet kompyuterler yamasa PDAlarda sızıw, virtual realliqta belgilerdi tutıw yamasa kásipleslerińizdiń sáwbetleri arasında skripttiń atın basqarıw bolsın.
Ámelge asırıw ózgerisleriniń de iske túsiriw sxemalarına belgili dárejede tásiri bolıwı múmkin (mısalı, tolıq kompilyator házirgi muzlatılǵan binar fayllarǵa uqsas túrde iske túsirilgen normal orınlanatuǵın fayllardı payda etiw múmkin). Biraq, eger men keleshekte ne bolatuǵının haqıyqattan da bilgenimde, bálkim, bul sózlerdi jazıwdıń ornına birja brokeri menen sóylesip atırǵan bolar edim!
Qaysı varianttı qollanıwım kerek?
Barlıq usı variantlar menen bir soraw tábiyiy túrde payda boladı: qaysısı men ushın eń jaqsı? Ulıwma alǵanda, eger siz Python menen endi tanısıp atırǵan bolsańız, IDLE interfeysin qollanıp kóriwińiz kerek. Ol paydalanıwshıǵa qolaylı GUI ortalıq usınadı hám bazı tiykarǵı konfiguraciya detalların jasıradı. Ol sonday-aq skriptlerińizdi kodlaw ushın platformaǵa baylanıslı bolmaǵan tekst redaktorın usınadı hám Python sistemasınıń standart hám biypul bólegi bolıp tabıladı.
Ekinshi tárepten, eger siz tájiriybeli programmist bolsańız, bir aynada óz qálewińizdegi tekst redaktorı menen, al ekinshi aynada sistema buyrıq qatarları hám belgi basıwlar arqalı redaktorlaw qılǵan programmalardı iske túsiriw ushın qollanıw sizge qolaylıraq bolıwı múmkin (haqıyqatında, men Python programmaların usılay islep shıǵaraman, biraq meniń Unix-ke moyınlaǵan ótmishim bar).
Rawajlandırıw ortalıqların tańlaw júdá subyektiv bolǵanlıqtan, men ulıwma baǵdarlawshı retinde bunnan kóbirek usınıs bere almayman; ulıwma alǵanda, qaysı ortalıqtı qollanıwdı jaqsı kórseńiz, sol siz ushın eń jaqsısı boladı.
Python kodın saplastırıw
Tábiyiy, meniń oqıwshılarım yamasa studentlerimniń hesh qaysısında kodta qátelikler bolmaydı (bul jerge kúlimsirew belgisin qoyıń), biraq siziń onday baxıtsız doslarıńız ushın, mine, haqıyqıy dúnyadaǵı Python programmistleri kodtı saplastırıw ushın qollanatuǵın strategiyalarǵa qısqasha itibar:
• Hesh nárse islemeń. Bul arqalı men Python programmistleri óz kodların saplastırmaydı dep aytpayman - biraq Python programmasında qátelik islegenińizde, júdá paydalı hám oqıwǵa qolaylı qátelik xabarın alasız (eger ele kórmegen bolsańız, tez arada kóresiź). Eger siz Python tilin álleqashan biletuǵın bolsańız, ásirese óz kodıńız ushın, kóbinese usınıń ózi jetkilikli boladı - qátelik xabarın oqıń da, belgilengen qatardı hám fayldı dúzetiń. Kópshilik ushın Pythondaǵı saplastırıw sonnan ibarat. Degen menen, bul ózińiz jazbaǵan úlken sistemalar ushın bárqulla ideal bolmawı múmkin.
• Print operatorların qosıń. Python programmistleriniń kodtı saplastırıwdıń tiykarǵı usılı (hám meniń Python kodın saplastırıw usılım) - bul print operatorların qosıw hám qaytadan iske túsiriw. Python ózgerislerden keyin dárhal iske túsetuǵını sebepli, bul ádetde qátelik xabarları bergennen de kóbirek maǵlıwmat alıwdıń eń tez usılı. Print operatorları quramalı bolıwı shárt emes - ápiwayı "Men bul jerdemen" yamasa ózgeriwshiler mánislerin kórsetiw kóbinese sizge kerekli kontekstti beriw ushın jetkilikli boladı. Tek kodıńızdı jiberiwden aldın saplastırıw ushın qosılǵan print operatorların óshiriwdi yamasa kommentariyge aylandırıwdı (yaǵnıy, aldına # qosıwdı) umıtpań!
• IDE GUI saplastırıwshıların qollanıń. Ózińiz jazbaǵan úlken sistemalar ushın hám kodtı tolıǵıraq izlewdi qalewshi baslanıwshılar ushın, kópshilik Python rawajlandırıw GUIlerinde qanday da bir túrde basıw-basqarıw arqalı saplastırıw qollap-quwatlanıwı bar. IDLEde de saplastırıwshı bar, biraq ol ámeliyatta júdá az qollanılatuǵın kórinedi - bálkim, onda komanda qatarı joq bolǵanı ushın, yamasa print operatorların qosıw ádetde GUI saplastırıw sessiyasın ornatıwdan tezrek bolǵanı ushın shıǵar. Qosımsha maǵlıwmat alıw ushın IDLEniń járdemshisin kóriń yamasa ápiwayı túrde óziń sınap kóriń; onıń tiykarǵı interfeysi 62-betindegi "Qosımsha IDLE quralları" bóliminde túsindiriligen. Eclipse, NetBeans, Komodo hám Wing IDE sıyaqlı basqa IDEler de qádimgi basıw-basqarıw arqalı saplastırıwshılardı usınadı; olardan paydalansańız, olardıń qollanbasın kóriń.
• pdb komanda qatarı saplastırıwshısın qollanıń. Eń joqarı dárejeli basqarıw ushın Python pdb dep atalatuǵın derek kod saplastırıwshısı menen birge keledi, ol Pythonnıń standart kitapxanasında modul sıpatında jetkilikli. pdb-de siz qatarma-qatar júriw, ózgeriwshilerdi kórsetiw, toqtaw noqatların ornatıw hám óshiriw, toqtaw noqatına yamasa qátelikke shekem dawam etiw hám basqalar ushın komandalar teresiz. pdb interaktiv túrde onı import etiw arqalı yamasa joqarı dárejeli skript sıpatında iske túsiriledi. Qaysı usıl bolsa da, sessiyanı basqarıw ushın komandalar tere alatuǵınıńız sebepli, ol kúshli saplastırıw quralın bere aladı. Sonday-aq, pdb qátelik waqtınan maǵlıwmat alıw ushın ózgeshelik júz bergennen keyin iske túsire alatuǵınıńız postmortem funkciyasın óz ishine aladı. pdb haqqında qosımsha maǵlıwmat ushın Python kitapxana qollanbasın hám 35-babın kóriń.
• Basqa variantlar. Arnawlı saplastırıw talapları ushın, ashıq derek kodlı domende qosımsha qurallar taba alasız, sonıń ishinde kóp potokllı programmalardı, jaylastırılǵan kodtı hám processti biriktirilgen qollap-quwatlawdı óz ishine aladı. Mısalı, Winpdb sisteması - bul aldıńǵı qatardaǵı saplastırıw qollap-quwatlawı hám platformalar aralıq GUI hám konsol interfeysleri bar ózinshe saplastırıwshı. Biz úlkenirek skriptler jazıwdı baslaǵanımızda bul variantlar júdá áhmiyetli boladı. Biraq, saplastırıw maydanındaǵı eń jaqsı jańalıq, qátelikler Pythonda anıqlanadı hám xabarlanadı, únsiz ótip ketpeydi yamasa pútkil sistemanı ishten buzbaydı. Haqıyqatında, qáteliklerdiń ózi ayrıqshalıqlar dep atalatuǵın jaqsı anıqlanǵan mexanizm bolıp tabıladı, olardı uslap alıp qayta islew múmkin (ayrıqshalıqlar haqqında VII bólimde kóbirek maǵlıwmat berilgen). Álbette, qátelik jiberiw hesh qashan quwanıshlı emes, biraq saplastırıw degeni on altılıq kalkulyatordı alıp shıǵıw hám yadtı tógiw baspa shıǵarmaların úyrenip shıǵıwdı bildirgen waqıtlardı esleytuǵın adam sıpatında aytıwım múmkin, Pythonnıń saplastırıw qollap-quwatlawı qáteliklerin basqa jaǵdaylarǵa qaraǵanda ádewir az awır etedi.
Bap juwmaǵı
Bul bapta biz Python programmaların iske túsiriwdiń kóp tarqalǵan usılların kórip shıqtıq: interaktiv túrde terilgen kodtı orınlaw hám fayllarda saqlanǵan kodtı sistema buyrıq qatarları, fayl belgilerin basıw, modul importlaw, exec shaqırıwları hám IDLE sıyaqlı IDE GUI arqalı iske túsiriw. Biz bul jerde kóp ámeliy iske túsiriw máselelerdi qamtıp óttik.
Bul baptıń maqseti sizge biraz kod jazıwdı baslawǵa múmkinshilik beriw ushın jetkilikli maǵlıwmat beriw edi, bunı siz kitaptıń keyingi bóliminde isleysiz. Sol jerde biz Python tiliniń ózin úyreniwdi baslayıq, onıń tiykarǵı maǵlıwmat tiplerinen baslaymız.
Biraq, dáslep, bul jerde úyrengenlerińizdi bekkemlew ushın ádettegi bap sorawnamasın orınlań. Bul kitaptıń usı bólimindegi aqırǵı bap bolǵanlıqtan, ol usı pútkil bólimniń temaların ózlestirgenińizdi tekseretuǵın tolıǵıraq shınıǵıwlar toplamı menen juwmaqlanadı. Sorawnamanıń keyingi bólimi boyınsha járdem alıw ushın yamasa tek ǵana qaytalaw ushın, shınıǵıwlardı orınlap kórgenińizden keyin, B qosımshasına baylanısıwdı umıtpań.
Bilimińizdi tekseriń: Sorawnama
1. Interaktiv interpretator sessiyasın qáytip baslay alasız?
2. Skript faylın iske túsiriw ushın sistema buyrıq qatarın qay jerge teresiz?
3. Skript faylında saqlanǵan kodtı orınlawdıń tórt yamasa onnan kóp usılın atań.
4. Windowsta fayl belgilerin basıwǵa baylanıslı eki qáwipti atań.
5. Ne ushın moduldi qayta júklew kerek bolıwı múmkin?
6. IDLE ishinde skriptti qáytip orınlaysız?
7. IDLEdi paydalanıwǵa baylanıslı eki qáwipti atań.
8. Atlar keńisligi (namespace) degen ne hám ol modul fayllarına qalay baylanıslı?
Bilimińizdi tekseriń: Juwaplar
1. Interaktiv sessiyanı Windowsta baslaw ushın "Start" túymesin basıp, "Barlıq baǵdarlamalar" opciyasın tańlap, Python jazbasın basıp, "Python (buyrıq qatarı)" menyu opciyasın tańlawıńız múmkin. Sonday-aq, Windows hám basqa platformalarda sistema konsol aynasında (Windowsta Command Prompt aynası) python dep sistema buyrıq qatarın terip te usınday nátiyje alıwıńız múmkin. Taǵı bir alternativa - IDLEdi iske túsiriw, sebebi onıń tiykarǵı Python qabıq aynası interaktiv sessiya bolıp tabıladı. Eger sistemańızdıń PATH ózgeriwshisine Pythondı tabıw ushın jol kórsetilmegen bolsa, Python ornatılǵan jerge cd arqalı ótiwiń yamasa python ornına onıń tolıq katalog jolın teriwiń kerek bolıwı múmkin (mısalı, Windowsta C:\Python30\python).
2. Sistemalıq buyrıq qatarların platformańız usınǵan sistema konsolına teresiz: Windowsta Command Prompt aynası; Unix, Linux hám Mac OS Xte xterm yamasa terminal aynası; hám taǵı basqalar.
3. Skript (negizinde, modul) faylındaǵı kod tómendegi usıllar menen orınlanıwı múmkin:
- Sistemalıq buyrıq qatarları arqalı
- Fayl belgisine basıw arqalı
- Import hám qayta júklew arqalı
- exec qurılǵan funkciyası arqalı
- IDE grafikalıq interfeysi tańlawları arqalı, mısalı IDLEdiń Run→Run Module menyu opciyası
Unixte olar #! hiylesi menen atqarılıwshı sıpatında da orınlanıwı múmkin, al bazı platformalar qosımsha arnawlı iske túsiriw usılların qollap-quwatlaydı (mısalı, súyretiw hám taslawdı). Bunnan tısqarı, bazı tekst redaktorlarınıń Python kodın orınlawdıń ózine tán usılları bar, ayırım Python baǵdarlamaları ózinshe "muzlatılǵan binar" atqarılıwshı sıpatında beriledi, al bazı sistemalar Python kodın jaylastırılǵan rejimde paydalanıp, ol C, C++ yamasa Java sıyaqlı tillerde jazılǵan qorshaǵan baǵdarlama tárepinen avtomatik túrde orınlanadı. Sońǵı usıl kóbinese paydalanıwshı sazlawları qatlamın beriwde qollanıladı.
4. Shıǵarıp, keyin shıǵıp ketetuǵın skriptler shıǵarıw faylınıń dárhal joǵalıp ketiwine alıp keledi, siz shıǵarıwdı kóre almay qalasız (sonlıqtan input ámeli júdá paydalı); skriptińiz payda etken qáte xabarları da mazmunın tekseriwdiń aldınan jabılatuǵın shıǵarıw aynasında payda boladı (bul sistemalıq buyrıq qatarları hám IDLE sıyaqlı IDElerdiń kópshilik rawajlandırıw ushın jaqsıraq ekeniniń bir sebepleri).
5. Python, ádette, bir process dawamında moduldi tek bir ret import etedi (júkleydi). Eger siz onıń derek kodın ózgertken bolsańız hám Pythondı toqtatıp, qayta iske túsirmey jańa nusqasın iske qosqıńız kelse, onı qayta júklewiń kerek boladı. Qayta júklewden aldın moduldi keminde bir ret import etiwiń kerek. Kod faylların sistema qabıǵı buyrıq qatarınan, belgi basıw arqalı yamasa IDLE sıyaqlı IDE arqalı iske qosıw, ádette, bul máseleni joq etedi, sebebi bul iske túsiriw sxemaları kóbinese derek kod faylınıń házirgi nusqasın hárdayım iske qosadı.
6. Iske qosqıńız keletuǵın fayldıń tekst redaktorlaw aynasında, aynanıń Run→Run Module menyu opciyasın tańlań. Bul aynanıń derek kodın joqarı dárejeli skript faylı sıpatında iske qosadı hám onıń nátiyjesin interaktiv Python qabıǵı aynasında kórsetedi.
7. IDLE ele de bazı túrdegi baǵdarlamalar tárepinen ilinip qalıwı múmkin - ásirese kóp aǵımlı (bul kitaptıń kólemine sıymaytuǵın quramalı texnika) orınlaytuǵın GUI baǵdarlamalar. Sonıń menen birge, IDLEdiń bazı qolaylı ózgeshelikleri bar, olar IDLE GUIden shıqqanıńızdan keyin sizge zıyan keltiriwi múmkin: mısalı, IDLEde skripttiń ózgeriwshileri avtomatik túrde interaktiv kólemge import etiledi, biraq ulıwma Python bunı islemeydi.
8. Namespace - bul tek ǵana ózgeriwshilerdiń (yaǵnıy, atlardıń) jıyındısı. Pythonda ol atributları bar obyekt túrinde kórinedi. Hár bir modul faylı avtomatik túrde namespace bolıp tabıladı - yaǵnıy, fayldıń joqarı dárejesinde islengen tayınlawlardı sáwlelendiriwshi ózgeriwshiler jıyındısı. Namespaceler Python baǵdarlamalarında at dúgisiwleriniń aldın alıwǵa járdem beredi: hár bir modul faylı óz aldına namespace bolǵanlıqtan, fayllar basqa fayllardıń atların paydalanıw ushın olardı anıq import etiwi kerek.
Bilimińizdi Tekseriń: I Bólim Shınıǵıwları
Endi ózińiz azǵana kodlaw menen shuǵıllanıwdıń waqtı keldi. Bul birinshi shınıǵıw sessiyası ápiwayı, biraq bul sorawlardıń bazıları keyingi baplarda keliwshi temalardı itibarǵa aladı. Juwaplar ushın sheshimler qosımshasındaǵı (B Qosımshası) "I Bólim, Baslaw" bólimine (1101-bet) qarawdı umıtpań; shınıǵıwlar hám olardıń sheshimleri tiykarǵı tekstte talqılanbaǵan qosımsha maǵlıwmatlardı óz ishine alıwı múmkin, sonlıqtan hámme sorawlarǵa óz betińizshe juwap bere alsańız da, sheshimlerge kóz juwırtıp shıǵıwıńız kerek.
1. Tásirlesiw. Sistema buyrıq qatarın, IDLEdi yamasa basqa usıldı qollanıp, Python interaktiv buyrıq qatarın (>>> belgisi) iske túsiriń hám "Hello World!" ańlatpasın (tırnaqshaları menen birge) jazıń. Sózdiń sizge qayta kórsetiliwi kerek. Bul shınıǵıwdıń maqseti - ortalıǵıńızdı Python jumıs islewi ushın sazlaw. Bazı jaǵdaylarda, dáslep cd qabıq buyırıǵın orınlaw, Python orınlanıwshı faylınıń tolıq jolın jazıw yamasa onıń jolın PATH ortalıq ózgeriwshisine qosıw kerek bolıwı múmkin. Qáleseńiz, Unix sistemalarında Pythondı turaqlı túrde qoljetimli etiw ushın PATHti .cshrc yamasa .kshrc faylıńızda ornatıwıńızǵa boladı; Windowsta setup.bat, autoexec.bat yamasa ortalıq ózgeriwshiler GUIin qollanıń. Ortalıq ózgeriwshiler sazlawları boyınsha járdem alıw ushın A Qosımshasın qarań.
2. Baǵdarlamalar. Ózińiz qáleytuǵın tekst redaktorın qollanıp, tek ǵana print(Hello module world!) buyrıǵınan ibarat ápiwayı modul faylın jazıń hám onı module1.py dep saqlań. Endi, bul fayldı qáleytuǵın iske túsiriw variantıńızdı qollanıp iske túsiriń: onı IDLEde iske túsiriw, onıń fayl belgisine shertip, sistema qabıǵınıń buyrıq qatarında Python interpretatorına ótkeriw (mısalı, python module1.py), built-in exec shaqırıwları, import hám reloadlar hám basqalar arqalı. Haqıyqatında, faylıńızdı bul bapta talqılanǵan barlıq múmkin bolǵan iske túsiriw usılların qollanıp sınap kóriń. Qaysı usıl eń ańsat bolıp kórinedi? (Álbette, bul sorawǵa durıs juwap joq.)
3. Moduller. Python interaktiv buyrıq qatarın (>>> belgisi) iske túsiriń hám 2-shınıǵıwda jazǵan modulińizdi import qılıń. Fayldı basqa papkaǵa kóshirip, onı qaytadan dáslepki papkasınan import qılıp kóriń (yaǵnıy, import qılǵanıńızda Pythondı dáslepki papkada iske túsiriń). Ne boladı? (Kómek: dáslepki papkada ele de module1.pyc baut-kod faylı bar ma?)
4. Skriptler. Eger platformańız qollasa, module1.py modul faylıńızdıń basına #! qatarın qosıń, faylǵa orınlanıw huqıqların beriń hám onı tikkeley orınlanıwshı fayl sıpatında iske túsiriń. Birinshi qatarda ne bolıwı kerek? #! ádette tek Unix, Linux hám Mac OS X sıyaqlı Unix tárizli platformalarda áhmiyetke iye; eger Windowsta isleseńiz, onıń ornına faylıńızdı DOS konsol aynasında tek atın jazıp, aldına "python" sózin qoymay iske túsirip kóriń (bul Windowstıń sońǵı versiyalarında isledi) yamasa Start→Run... dialog aynası arqalı iske túsirip kóriń.
5. Qáteler hám sazlaw. Python interaktiv buyrıq qatarında matematikalıq ańlatpalar hám tayınlawlardı jazıp kóriń. Jolda, 2 ** 500 hám 1 / 0 ańlatpaların jazıń, hám biz bul bapta islegenimizdey anıqlanbaǵan ózgeriwshi atın paydalanıp kóriń. Ne boladı?
Siz ele bilmewińiz múmkin, biraq qáte islegenińizde, siz ózgesheliklerdi qayta islew processine kiresiz (bul temanı VII-bólimde tereń úyrenemiz). Sol jerde bilip alasız, texnikalıq jaqtan siz defolt ózgeshelik qayta islewshini iske túsiresiz - bul standart qáte xabarın shıǵaratuǵın logika. Eger qáteni uslamasańız, defolt qayta islewshi onı uslap aladı hám juwap retinde standart qáte xabarın shıǵaradı. Ózgeshelikler Pythonda sazlaw túsinigi menen de baylanıslı. Jańa baslaǵanıńızda, Pythonnıń ózgeshelik jaǵdaylarındaǵı defolt qáte xabarları sizge kerekli bolǵan qátelerdi qayta islew járdemin beredi - olar qáteniń sebeplerin kórsetedi, sonday-aq qáte júz bergen waqıtta kodıńızdıń qaysı qatarları aktiv bolǵanın kórsetedi. Sazlaw haqqında kóbirek maǵlıwmat alıw ushın 67-bette "Python kodın sazlaw" degen qosımsha maǵlıwmattı qarań.
6. Úzilisler hám dáwirler. Python buyrıq qatarında mınanı jazıń:
L = [1, 2] # 2 elementten turatuǵın dizim isleymiz
L.append(L) # L dizimin ózi ishinde bir element retinde qosamız
L # L dizimin basıp shıǵaramız
Ne boladı? Pythonnıń barlıq jańa versiyalarında, siz birtúrli nátiyje kóresiz, onı sheshimler qosımshasında túsindirip beremiz, hám kitaptıń keyingi bóliminde siltemelerdi úyrengenimizde bul kóbirek túsinikli boladı. Eger 1.5.1 versiyasınan eski Python versiyasın qollanıp atırǵan bolsańız, kóp platformalarda Ctrl-C túymeler kombinaciyası járdem beriwi múmkin. Siziń Python versiyańız ne ushın bul kodqa usılay juwap beredi dep oylaysız?
Eger sizde 1.5.1 versiyasınan eski Python bolsa (búgingi kúnde bul júdá siyrek jaǵday!), bul testti orınlawdan aldın kompyuterińizdiń qandayda bir Ctrl-C túymeler kombinaciyası menen baǵdarlamanı toqtata alatuǵınına isenimli bolıń, bolmasa uzaq waqıt kútiwińizge tuwrı keliwi múmkin.
7. Hújjetleme (dokumentaciya). Standart kitapxanadaǵı bar qurallar hám hújjetleme toplamınıń qurılısı menen tanısıw ushın aldıǵa ótiwden burın Python kitapxanası hám til qollanbasın keminde 17 minut dawamında kórip shıǵıń. Qollanba toplamındaǵı tiykarǵı temalar jaylasqan jerler menen tanısıw ushın keminde sonday waqıt kerek boladı; bunı islep bolǵanıńızdan keyin, sizge kerekli nárseni tabıw ańsat boladı. Bul qollanbanı Windowstaǵı Python Start túymesinen, IDLEdiń Help ashılmalı menyusındaǵı Python Docs opciyasınan yamasa onlayn túrde http://www.python.org/doc saytınan tabıwıńız múmkin. Men 15-bapda qollanba hám basqa da hújjetleme derekler (PyDoc hám járdem funkciyası qosılǵanı) haqqında qosımsha maǵlıwmat beremen. Eger ele waqtıńız bolsa, Python veb-saytın, sonday-aq onıń úshinshi tárep keńeytiwleri saqlanatuǵın PyPy repozitoriysin izertleń. Ásirese Python.org hújjetlemesi hám izlew betlerin tekserip kóriń; olar júdá áhmiyetli resurslar bola aladı.
Paydalanılǵan ádebiyat:
Learning Python, Fourth Edition by Mark Lutz CHAPTER 3
How You Run Programs