Python iesācējiem: sāciet darbu

Atklāšana: Jūsu atbalsts palīdz vietnei darboties! Mēs nopelnām nodošanas maksu par dažiem pakalpojumiem, kurus mēs iesakām šajā lapā.


Python ir augsta līmeņa, vispārējas nozīmes, interpretēta skriptu valoda. Valoda’Projektēšanā liels uzsvars tiek likts uz kodu lasāmību, kā arī uz elastību un lietošanas vienkāršību.

Tāpat kā vairumā līdzīgu valodu (piemēram, Rubīns un Perls), Python var izmantot jebko, jebkura veida lietojumprogrammām. Ir nedaudz tīmekļa lietotņu, kas izveidotas, izmantojot Python, un dažas lieliskas tīmekļa attīstības struktūras. Izmantojot tādus rīkus kā Py2Exe, jūs varat iesaiņot Python skriptus kā atsevišķas darbvirsmas lietojumprogrammas.

Bet kur Python patiešām spīd un kur tas lielāko daļu izmanto, tas ir kā rīks datu analīzei, skaitļu kratīšanai, zinātniskiem pētījumiem, hakeru veidošanai, skriptu veidošanai un uzdevumu automatizēšanai. Python zinātniekiem, matemātiķiem, iespiešanās pārbaudītājiem, spiegiem, kriptogrāfiem, mūziķiem, biržas brokeriem un tīkla administratoriem izmanto plašu lietojumu klāstu..

Ja vēlaties uzzināt, kā izveidot jaukas tīmekļa lietojumprogrammas, iespējams, vēlaties sākt ar Ruby vai (ja jūs’re WordPress), PHP. Bet, ja vēlaties uzzināt, kā izmantot datorus, lai veiktu jaunas interesantas lietas, Python ir valoda jums.

Contents

Tiešsaistes Python resursi

Tīmeklī ir ļoti daudz Python materiālu – daži no tiem ir bez maksas, daži par to maksā. Šie ir daži no labākajiem resursiem Python mācīšanai.

Mācīšanās pitons

Ieteicamie kursi un konsultācijas
  • Oficiālā Python vietne
  • Iesācējs’s Ceļvedis Python – oficiāla vieta, kur sākt mācīties.
    • Neprogrammētājiem
    • Programmētājiem, kas ir jauni Python
  • Uzziniet Python the Hard Way – lielisks Python kurss cilvēkiem, kuri vēlas patiešām iemācīties valodu, neveicot īsceļus.
  • Google’s Python klase – Google izmanto Python vairākiem projektiem. Vai vēlaties to uzzināt tā, kā viņi to māca? Jūs varat.
  • Standarta bibliotēkas ceļvedis
  • Python Koans – pārsteidzoša, filozofiska pieeja Python programmēšanai un domāšanai kā izstrādātājam, izmantojot testa vadāmu attīstību.
Citas lieliskās Python konsultācijas un mācību resursi

Šeit ir daži ļoti labi resursi Python mācīšanai, kas gandrīz padarīja to par iepriekšminēto “Ieteicams” saraksts. Ikvienam ir atšķirīgs mācīšanās stils, tāpēc varbūt kāds no tiem jums derēs labāk nekā iepriekšminētās pamācības.

  • Python video – milzīgs videoklipu saraksts par visu veidu Python tēmām
  • Python programmēšana iesācējiem – Linux žurnāla neapbruņotu kaulu apmācība.
  • Python Book – padziļināta tiešsaistes grāmata, kas aptver Python sākumu, progresīvas tēmas un mny vingrinājumus.
  • Python Course – bezmaksas un plašs Python apmācības materiālu komplekts.
  • Veidošanas prasmes Pythonā – izstrādātas 42 Python vingrinājumu nodaļas
  • Lark’s Python mēles ceļvedis – vienkāršu uz projektiem balstītu apmācību komplekts par Python koncepcijām.
  • Python 101 – ievads Python.
    • Python 201 – starpposma pitons.
  • Mācieties Python 10 minūtēs – ļoti ātrs valodas ievads.
  • Checkio – iemācieties uzlabot savu kodu ar spēli. Spēlē spēli, nevis to raksta.
  • Python programmēšanas Wiki grāmata
Papildu Python konsultācijas

Šie ir “Goda vārds” konsultācijas par Python sākšanu. Mēs to nedarījām’tos neatradīsit atbilstoši mūsu (ļoti augstajiem) standartiem, taču tie visi ir diezgan populāri – tāpēc varbūt kāds no tiem jums labi noderēs.

  • Pythonspot
  • Python ievads
  • Iepazīšanās ar Python
  • Tūlītējs pitons
  • Python padomi
  • Python apmācība

Python attīstības rīki

Bibliotēkas, spraudņi un papildinājumi

Liela Python spēka sastāvdaļa ir izcilu instrumentu ekosistēma, lai valodā izpildītu vairākus dažāda veida uzdevumus. No grafikas apstrādes līdz matemātiskai analīzei’iespējams, Python modulis gandrīz jebkuram domēnam, kurā strādājat.

  • Shrapnel – Python bibliotēka liela apjoma vienlaicīgumam.
  • MatPlotLib – grafika un datu vizualizācija.
  • Mako – tīmekļa veidņu dzinējs.
  • PIL – Python attēlveidošanas bibliotēka
    • Spilvens – dakša PIL. (Liekas, ka PIL ir pārtraucis aktīvo attīstību. Spilvens sāk atsaukties uz šo populāro projektu.)
  • Pyx – Python grafikas pakete
  • Skaista zupa – rīki ekrāna mērogošanai un pēc tam apstrādāšanai ar koku un saturu.
  • Scrappy – tīmekļa nokasīšanas rīki.
  • Gooey – rīki GUI nodrošināšanai komandrindas Python programmām.
  • Peewee – minimālisma SQL ORM Python lietojumprogrammas savienošanai ar MySQL, PostgreSQL vai SQLite.
  • SQL alķīmija – pilnvērtīgāka SQL ORM.
  • PyGame – platforma videospēļu veidošanai Python.
  • SciPy – Python zinātnes un matemātikas rīki; ļoti svarīgi zinātniskajai skaitļošanai.
  • Pandas – datu analīzes rīki.
  • sh – bibliotēka citu programmu izsaukšanai no Python skriptiem.

Python wiki uztur arī sarakstu ar dažiem no visnoderīgākajiem un populārākajiem Python moduļiem.

IDE

IDE ir integrēta izstrādes vide, rīks lielas vai sarežģītas lietojumprogrammas izstrādes vadīšanai. Lielākajai daļai Python lietotāju ir tendence strādāt vienkāršā koda redaktorā, bet tiem, kuri Python izmanto lielākiem projektiem, ir pieejami vairāki lieliski Python fokusēti IDE..

  • PyDev – Python IDE for Eclipse.
  • Komodo – Python IDE
  • PyCharm – Python IDE
  • Wing IDE – komerciāls Python IDE.
  • Spyder – Python IDE zinātnei un matemātikai.
  • NetBeans
  • PyScripter
  • µ.dev – Microdev, dīvaini mazais IDE no Sakura studijas.

Skatiet arī šo Python redaktoru sarakstu.

Refaktorēšana un koda pārbaude

Python izstrādātājiem ir tāda kultūra, kurai ir tendence dot priekšroku tīram un efektīvam kodam. Tajā pašā laikā viņi novērtē arī ātrumu un bieži vien ātri izmanto kodēšanu, lai nekavējoties atrisinātu problēmas. Ir izstrādāti vairāki rīki, kas palīdz Python programmētājiem automatizēt kodu un padarīt to efektīvāku.

  • PyChecker – koda pārbaudītājs.
  • Virve
  • Velosipēdu remonts
Veidot rīkus

Python izceļas ar uzdevumu automatizāciju, tāpēc nevajadzētu būt pārsteigumam, ka ir vairāki rīki, kā to izdarīt, kā arī paātrināt būvēšanas un izvietošanas ciklus..

Šajā sarakstā iekļauti arī specializēti izstrādes rīki, kurus izmanto Python lietotņu iesaiņošanai un izplatīšanai.

  • Invoke – uzdevumu izpildes un skriptu izveides rīks.
  • Microbuild – viegls celtniecības rīks.
  • Paver – Uzdevumu skriptēšana.
  • Pynt – veidošanas rīks.
  • VirtualEnv – rīks izolētu Python vides veidošanai.
  • Sakodis – pastāvīgs Python un Trac integrācijas rīks.
  • iPython – interaktīvs Python apvalks un attīstības bibliotēka; pārāk daudz lielisku iespēju, lai uzskaitītu.
  • Py2Exe – Kompilē Python skriptus Windows izpildāmos failos.
Tīmekļa ietvari

Ja vēlaties izmantot Python, lai izveidotu tīmekļa lietojumprogrammu, jums ir vairāki zemā līmeņa uzdevumi’Vispirms būs jārūpējas – vai arī jūs varētu sākt tikai no 10. darbības un izmantot tīmekļa lietojumprogrammu izstrādes sistēmu.

  • Django – līdz šim vispopulārākais Python tīmekļa lietojumprogrammu ietvars. Konceptuāli tas ir līdzīgs Ruby on Rails. skatiet mūsu Django intro
  • Python Paste – nevis ietvars, bet gan a “ietvarstruktūra.” Nodrošina zema līmeņa rīkus Python tīmekļa ietvaru izveidošanai.
  • CherryPy – minimālisma Python tīmekļa ietvars.
  • TurboGears
  • Web2Py
  • CubicWeb
  • Džotto
  • Reahl
  • Sēkšana

Pieteikumi, kas iebūvēti Python

Python izmanto daudz cilvēku daudzu dažādu uzdevumu veikšanai un dažādiem mērķiem, taču tas nav ļoti populārs, lai izveidotu lietotnes, kas tiek izplatītas kā kods patērētājiem un gala lietotājiem (piemēram, PHP). Tomēr to dažreiz izmanto šim nolūkam. Šeit ir daži piemēri dažām Python iebūvētām lietojumprogrammām.

  • SchoolTool – studentu informācijas sistēma.
Satura vadības sistēmas
  • Plone – vispopulārākā uz Python balstītā CMS.
  • Django CMS – nav tik populārs kā CMS Plone, bet ir veidots uz populārākā Python ietvara.
  • MoinMoin – Python wiki-engine, kas darbina Python wiki. (Citus Python bāzes Wiki CMS skat. Šajā lapā.)
  • CPS-CMS
  • Silva
  • ZMS

Tiešsaistes Python atsauce

Šīs ir dažas no vissvarīgākajām viena avota Python atsauces vietnēm, kuras jums, iespējams, vajadzētu pievienot grāmatzīmēm.

  • Python dokumentācija
  • Python Wiki
  • Tautas Python receptes
  • Python paketes indekss

Grāmatas

Sākuma pitons

Ja vēlaties mācīties, izmantojot drukātu grāmatu, izcilu pieejamo grāmatu netrūkst. Šeit ir dažas no labākajām Python grāmatām iesācējiem. Ja jūs don’t nedod priekšroku grāmatām (vai don’t dod priekšroku maksāt par lietām) ritiniet uz leju līdz sadaļai Tiešsaistes resursi, lai iegūtu izcilu tiešsaistes (un lielākoties bezmaksas) apmācību sarakstu..

  • Uzziniet Python Hard Way: ļoti vienkāršs ievads drausmīgi skaistajā datoru un kodu pasaulē
  • Python bērniem
  • Python avārijas kurss: praktisks, uz projektiem pamatots ievads programmēšanā
  • Python programmēšana iesācējiem: ievads Python datoru valodā un datorprogrammēšana
  • Python programmēšana: ievads datorzinātnēs
  • Automatizējiet garlaicīgo lietu ar Python: praktiska programmēšana iesācējiem
  • Mācīšanās pitons
  • Sveiki! Python

Advanced

Daudzas no progresīvākajām Python programmēšanas koncepcijām nav apskatītas tiešsaistes apmācībās, un tās var atrast tikai drukātās grāmatās.

  • Ekspertu Python programmēšana
  • Python augstas veiktspējas programmēšana
  • Python Parallel Programming Cookbook
  • Python praksē: izveidojiet labākas programmas, izmantojot vienlaicīgumu, bibliotēkas un modeļus
  • Uzlabotas Python 3 programmēšanas tehnikas
  • Apgūt uz objektu orientētu Python
  • Efektīvs pitons: 59 īpaši veidi, kā labāk uzrakstīt Python
  • Python mašīnu apguve
  • Padomā Python
  • Profesionālais pitons
  • Augstas veiktspējas pitons: praktiska izpildījuma programmēšana cilvēkiem
  • Tīmekļa nokasīšana, izmantojot Python: datu apkopošana no mūsdienu tīmekļa
  • Testējama attīstība ar Python
  • Tekošais pitons
  • Python Playground: Geeky projekti ziņkārīgajam programmētājam
  • Python tīkla programmēšanas pamati: visaptverošs ceļvedis tīkla lietojumprogrammu veidošanai ar Python
  • Ceļvedis: Iterācijas un ģeneratoru apgūšana Python
Python matemātikai, zinātnei un datiem

Python tiek plaši izmantots matemātikā un zinātnē vismaz pāris iemeslu dēļ: – valodai ir lieliski matemātikas un zinātnes rīki, piemēram, SciPy un NumPy. – Valoda ir piemērota ātriem programmēšanas uzdevumiem, tāpēc ir viegli izmantot Python ad hoc datu analīzei, neveidojot pilnībā piedāvātās lietotnes..

Tāpat kā vispārējās uzlabotās tēmas, ja jūs meklējat informāciju par specializētām Python programmēšanas tēmām, jūs atradīsit daudz izcilākas grāmatas nekā bezmaksas vietnes un tiešsaistes apmācības..

  • Darot matemātiku ar Python
  • Datu analīzes pitons: datu pļāpāšana ar Pandas, NumPy un IPython
  • Python datu zinātnes pamati
  • Datu zinātne no nulles: pirmie principi ar Python
  • Datu ieguves apmācība ar Python palīdzību
  • Advanced Python biologiem
  • Pitons finansēm: analizējiet lielos finanšu datus
  • Datu struktūra un algoritmiskā domāšana ar Python palīdzību: datu struktūra un algoritmiskās mīklas
  • Informācijas tehnoloģijas Python: informācijas izpēte
  • Atvasinājumu analīze ar Python
  • ArcPy un ArcGIS: Ģeotelpiskā analīze ar Python
  • Mācības Pandas – Python datu atklāšana un analīze ir ļoti vienkārša
  • Ģeotelpiskās analīzes apgūšana ar Python palīdzību
  • Statistika, datu ieguve un mašīnmācība astronomijā: praktiska Python rokasgrāmata apsekojuma datu analīzei
Datorurķēšanas pitons

Tā kā Python ir piemērots ad hoc programmēšanai un uzdevumu automatizēšanai, Python diezgan daudz izmanto arī cilvēkus, kuriem patīk ielauzties lietās, kā arī cilvēki, kuri mēģina tos apturēt. (Mēs domājam, ka jūs, protams, esat viens no labajiem puišiem.)

  • Vardarbīgs pitons: pavārgrāmata hakeriem, kriminālistikas analītiķiem, iespiešanās testētājiem un drošības inženieriem
  • Black Hat Python: Python programmēšana hakeriem un penteriem
  • Python slepenajiem aģentiem

Atsauce

Šeit ir dažas lieliskas Python galda atsauces cilvēkiem, kam patīk šāda veida lietas. Kaut arī dažas no iepriekš minētajām uzlabotajām tēmām ir tikai grāmatas, lielāko daļu šeit pieejamo atsauces materiālu ir vieglāk atrast tiešsaistē, izmantojot labu meklētājprogrammu, taču daži cilvēki dod priekšroku drukātajām kopijām..

  • Python Essential atsauce
  • Python pavārgrāmata
  • Python kabatas atsauce

Python izņēmumi

Tā kā izņēmumi ir kritiski nozīmīgi Python programmēšanā, mēs esam snieguši šo apmācību, kas palīdzēs jums ātrāk iepazīties ar šo Python aspektu..

Kas notiek, kad Python programmas izpildē kaut kas noiet greizi? Ja nākamais notikums nav izņēmums, tad divas lietas ir kļuvušas nepareizas.

Python paaugstina izņēmumus, reaģējot uz visa veida kļūdu apstākļiem. Kā Python izstrādātāji izņēmumi jums norāda, kas un kur notiek nepareizs kods. Varat arī definēt un izvirzīt savus izņēmumus.

Šajā rakstā mēs apskatīsim Python iebūvētos izņēmumus un izpētīsim izņēmumu apstrādi.

Kā tiek būvēti izņēmumi

Ievērojot objektorientētās programmēšanas principus, izņēmumi tiek definēti izņēmumu klasēs. Šīs klases ir organizētas mantojuma hierarhijā. Piemēram, IndentationError ir SyntaxError apakšklase.

Kad tiek izvirzīts izņēmums, tiek izveidots konkrētās izņēmuma klases piemērs. Ja konstatējat kļūdu (kā tas izdarīts tālāk tekstā, izņemot klauzulu), varat to pārbaudīt.

>>> izmēģināt:
… paaugstināt ValueError
… izņemot ValueError kā e:
… drukāt (str (tips (e)) + "n" + str (rež (e)))

[‘__cause__’, ‘__class__’, ‘__context__’,
‘__delattr__’, ‘__dict__’, ‘__dir__’,
‘__doc__’, ‘__eq__’, ‘__format__’, ‘__ge__’,
‘__getattribute__’, ‘__gt__’, ‘__hash__’,
‘__init__’, ‘__le__’, ‘__lt__’, ‘__ne__’,
‘__new__’, ‘__reduce__’, ‘__reduce_ex__’,
‘__repr__’, ‘__setattr__’, ‘__setstate__’,
‘__sizeof__’, ‘__str__’, ‘__subclasshook__’,
‘__suppress_context__’, ‘__traceback__’,
‘args’, ‘with_traceback’]

Piezīme par koda paraugiem: Kodu paraugi ar >>> uzvedne var tikt izmēģināta, izmantojot interaktīvo tulku. Vienkārši terminālā ierakstiet python3. Viss, kas nav pirms tam >>> vai … tie tiek izvadīti. Koda paraugi bez uzvednes ir koda piemēri, kurus jūs faktiski varētu rakstīt .py modulī.

Abstrakti izņēmumi

Šīs izņēmumu klases tiek izmantotas kā bāzes klase citiem izņēmumiem.

BaseException

Šī ir pamatklase, no kuras izriet visi citi izņēmumi.

Izņēmums

Visi iebūvētie, izņēmumi, kas neizmanto sistēmu, ir atvasināti no šīs klases. Visi lietotāja noteiktie izņēmumi arī būtu jāatvasina no šīs klases.

klase MyNewException (izņēmums):

def __str __ (self):
atgriezties "Ir notikusi MyNewException."

Aritmētiskā kļūda

Manto ar izņēmumiem, kas saistīti ar aritmētiku:

  • OverflowError
  • ZeroDivisionError
  • FloatingPointError

BufferError

Paaugstina, ja nevar veikt ar buferi saistītu operāciju.

MeklētKļūda

Manto izņēmumi, kas saistīti ar nederīgām atslēgām vai indeksiem. Piemēram, slikta atslēga attēlā vai diapazona indekss sarakstā.

Konkrēti izņēmumi

AssertError

Paaugstināts par neveiksmīgiem apgalvojumiem.

>>> apgalvot 1 > 2
Apgalvojuma kļūda

AttributeError

Paaugstināts par atribūta atsauces vai piešķiršanas kļūmi.

>>> x = 1

>>> x.vārds
AttributeError: objektam int nav atribūta ‘name’

>>> x.name = "viens"
AttributeError: objektam int nav atribūta ‘name’

EOFError

Paaugstināts, kad ievade () sasniedz faila beigas (EOF), nelasot nekādus datus.

FloatingPointError

Paaugstināts, ja darbība ar peldošo komatu neizdodas. Ņemiet vērā, ka parasti šis izņēmums netiks paaugstināts, ja vien tas netiks konfigurēts, un vairumam neprofesionālu lietotāju nav ieteicams rīkoties ar peldošā komata izņēmumiem…

GeneratorExit

Paaugstina, kad ģenerators vai korutīns aizveras. Faktiski tā nav kļūda, jo aizvēršana ir normāla rīcība.

ImportError

Paaugstina, ja importa paziņojums neizdodas.

>>> importēt ModuleThatDoesNotExist
ImportError: nav moduļa ar nosaukumu ModuleThatDoesNotExist

Python 3.6 un jaunākās versijās ir arī apakšklase ModuleNotFoundError.

IndexError

Paaugstināts, ja atsauces indekss nav derīgs.

>>> l = ["nulle", "viens", "divi"]
>>> l [4]
IndexError: saraksta indekss ir ārpus diapazona

KeyError

Paaugstināts, ja vārdnīcas atslēga nav atrasta.

>>> d = {‘TOS’: ‘Kirk’, ‘TNG’: ‘Picard’, ‘DS9’: ‘Sisko’, ‘VOY’: ‘Janeway’}
>>> d [‘ENT’]
KeyError: “ENT”

KeyboardInterrupt

Paaugstināts, kad tiek nospiests pārtraukšanas taustiņš (CTRL-C).

>>> kamēr taisnība
… caurlaide

^ C
KeyboardInterrupt

Atmiņas kļūda

Paaugstināts, ja operācijai trūkst atmiņas.

NameError

Paaugstināts, ja mainīgo vārdu nevar atrast.

>>> kamēr taisnība:
… caurlaide

^ C
KeyboardInterrupt

NotImplementedError

To paredzēts iedalīt klasēs; to nepaaugstina neviena iebūvēta funkcija. Tam ir divi izmantošanas veidi:

  • Paaugstina ar abstraktām metodēm, lai norādītu, ka tie jāpārraksta atvasinātās klasēs.
  • Paaugstināts pēc atvasinātajām klasēm, lai norādītu, ka jāpievieno ieviešana. Tas ļauj ielādēt klasi, neizceļot izņēmumu.

OSError

Paaugstināts, kad tiek atgriezta sistēmas kļūda. Skatiet zemāk, lai iegūtu papildinformāciju par OSError.

OverflowError

Paaugstina, ja matemātiskās operācijas rezultāts ir pārāk liels.

RecursionError

Paaugstina, ja tiek pārsniegts maksimālais rekursijas dziļums.

ReferenceError

Paaugstināts, ja objektam pēc atkritumu savākšanas tiek izmantots vājš atsauces starpniekserveris.

RuntimeError

Paaugstina, ja tiek atklāta kļūda, kas neietilpst nevienā no citām kategorijām.

StopIteration

Paaugstina nākamais () un __next __ (), kad iterators vairs neražos citus priekšmetus.

StopAsyncIteration

Jāaudzina anekss () asinhronā iteratora objekta metode iterācijas apturēšanai.

Tas ir jauns versijā 3.5.

SyntaxError

Paaugstināta par sintakses kļūdu.

>>> 1 = 2
SyntaxError: nevar piešķirt burtam

IevilkumsError

Paaugstināts par ievilkuma kļūdām.

>>> ja 1 == 1:
… x = 1
IndentationError: ir paredzēts ievilkums

TabError

IndentationError apakšklase, tā tiek paaugstināta, ja atkāpe atšķirīgi izmanto cilnes un atstarpes.

Sistēmas kļūda

Paaugstināts par nopietnām iekšējām kļūdām.

SystemExit

Paaugstināta ar funkciju sys.exit ().

TypeError

Paaugstina, ja kāda veida objektam tiek izsaukta darbība vai funkcija.

>>> 1 > "viens"
TypeError: nepasūtītie tipi: int () > str ()

Lietotāja kodam vajadzētu paaugstināt TypeError par nepareizi ievadītām funkciju ievadēm.

Nav saistībuLocalError

Paaugstināts, ja funkcijā vai metodē ir atsauce uz vietējo mainīgo, bet mainīgais nav definēts.

UnicodeError

Pamatklase tiek izmantota kļūdām, kas rodas, apstrādājot Unicode virknes. Tam ir trīs apakšklases:

  • UnicodeEncodeError
  • UnicodeDecodeError
  • UnicodeTranslateError

ValueError

Paaugstina, ja funkcija vai operācija tiek izsaukta ar pareizā tipa, bet neatbilstošas ​​vērtības argumentu, ja vien nav piemērojama īpaša kļūda. (Piemēram, ja diapazona indekss palielina IndexError.)

>>> f = atvērts ("faila nosaukums.txt", "m")
ValueError: nederīgs režīms: “m”

ZeroDivisionError

Paaugstina, ja mēģina dalīt ar nulli.

>>> 1/0
ZeroDivisionError: dalījums ar nulli

>>> 1.0 / 0
ZeroDivisionError: pludiņa dalījums ar nulli

>>> 1% 0
ZeroDivisionError: vesels skaitlis dalījums vai modulis ar nulli

Vairāk par OSError

OSError tika pārstrādāts Python 3.3. Tagad ir trīs OSError aizstājvārdi, kā arī vairākas atvasinātas klases dažādiem kļūdu gadījumiem.

OSError pseidonīmi

  • EnvironmentError sākotnēji bija OSError un IOError bāzes klase.
  • IOError sākotnēji tika izvirzīts par kļūdām, kas rodas jebkuru I / O darbību laikā, ieskaitot drukāšanu vai lasīšanu no faila.
  • WindowsError sākotnēji tika izvirzīts par visām Windows specifiskām kļūdām.

Visi šie trīs tika saglabāti tikai saderības nolūkos, bet faktiski ir OSError pseidonīmi.

OSError apakšklases

Tie visi ir iegūti no OSError, un tiek paaugstināti atkarībā no kļūdas koda, ko atgriezusi operētājsistēma. Zem katra apraksta ir saistīta kļūda.

BloķētIOError

Paaugstināts, ja darbība var bloķēt objekta bloķēšanu.

  • EAGAIN
  • EALREADY
  • EWOULDBLOCK
  • EINPROGRESS
ChildProcessError

Paaugstina, ja bērna procesa operācija neizdodas.

  • ECHILD
Savienojuma kļūda

Pamatklase ar savienojumiem saistītām kļūdām.

Apakšklases:

  • BrokenPipeError, tiek izvirzīts, kad mēģināt rakstīt uz slēgtas caurules vai kontaktligzdas.
    • EPIPE; ESHUTDOWN
  • ConnectionAbortedError, izvirzīts, un līdzinieks mēģinājumu izveidot savienojumu pārtrauc.
    • SEKMĒTS
  • ConnectionRefusedError, kas rodas, kad līdzinieks noraida savienojuma mēģinājumu.
    • ECONNREFUSED
  • ConnectionResetError, kas paaugstināta, kad līdzinieks atiestata savienojumu.
    • ECONNRESET
FileExistsError

Paaugstināts, mēģinot izveidot jau esošu failu vai direktoriju.

  • EEXIST
FileNotFoundError

Paaugstināts, ja pieprasītais fails vai direktorijs neeksistē.

  • ENOENT
Pārtraukta kļūda

Paaugstināts, kad ienākošais signāls pārtrauc sistēmas zvanu.

  • EINTR

Ņemiet vērā, ka kopš Python 3.5 pārtrauktie sistēmas zvani tiks atkārtoti mēģināti, ja vien signālu apstrādātājs neizcels izņēmumu.

IsADirectoryError

Paaugstināts, kad direktorijā tiek mēģināta veikt tikai failu operācijas (piemēram, os.remove ()).

  • EISDIR
NotADirectoryError

Paaugstina, ja failā vai citā objektā, kas nav direktorijs, tiek mēģināta veikt tikai direktoriju darbību (piemēram, os.listdir ()).

  • ENOTDIR.
PermissionError

Paaugstināts, mēģinot veikt operāciju bez pietiekamām atļaujām.

  • EACCES
  • EPERM
ProcessLookupError

Paaugstina, ja atsauces procesa neeksistē.

  • ESRCH
TimeoutError

Paaugstina, kad sistēmas funkcijai beidzas laiks.

  • ETIMEDOUT

Brīdinājumi

Šīs izņēmumu klases tiek izmantotas kā pamata klases brīdinājuma izņēmumiem.

Brīdinājums

Mantotas visas brīdinājuma apakšklases.

Lietotāja brīdinājums

Mantoti brīdinājumi, ko rada lietotāja kods.

NolietojumsAtbrīvošanās

Manto brīdinājumi par novecojušām funkcijām.

Gaidīšanas brīdinājums

Manto brīdinājumi par funkcijām, kuras nākotnē vairs netiks izmantotas.

Sintakse Brīdinājums

Manto brīdinājumi par problemātisko sintakse.

RuntimeWarning

Manto brīdinājumi par problemātisku izpildlaika izturēšanos.

Nākotnes brīdinājums

Manto brīdinājumi par konstrukcijām, kas nākotnē mainīsies.

ImportsBrīdinājums

Manto brīdinājumi par iespējamām kļūdām pakotņu un moduļu importā.

UnicodeWarning

Manto ar Unicode saistītie brīdinājumi.

BytesWarning

Manto brīdinājumi, kas saistīti ar baitiem un bytearray.

Resursu brīdinājums

Manto brīdinājumi, kas saistīti ar resursu izmantošanu.

Iebūvēto izņēmumu palielināšana jūsu kodā

Iespējams, vēlēsities izvirzīt izņēmumus, reaģējot uz dažādām lietotāja darbībām. Tas ir tikpat vienkārši kā paaugstināt. Jūs varat ievadīt virkni, kas tiek parādīta lietotājam.

def ObnoxiousFavoriteColorAssigner (krāsa):
ja tips (krāsa) nav str:
paaugstināt TypeError ("Man vajag auklu.")
ja krāsa ir ["sarkans", "zaļš", "zils"]:
favourite_color = krāsa
cits:
paaugstināt ValueError ("Tā nav * īsti * krāsa.")

Izņēmumu apstrāde

Jūs varat rīkoties ar izņēmumiem, kas rodas, palaižot kodu, izmantojot izmēģināšanas un izņemot.

def EverybodyLovesRed ():
kamēr taisnība:
izmēģināt:
ObnoxiousFavoriteColorAssigner (ievade ())
pārtraukums
izņemot TypeError kā kļūda:
drukāt (kļūda)
izņemot ValueError:
ObnoxiousFavoriteColorAssigner ("sarkans")

Pielāgotu izņēmumu definēšana

Jūs varat paplašināt jebkuru no iebūvētiem izņēmumiem, lai izveidotu savus pielāgotos izņēmumus. To visbiežāk veic lielos ietvaros.

klase ColorError (ValueError):
"""
Paaugstina, kad kāds norāda, ka ir krāsas
izņemot sarkanu, zilu un zaļu.
"""

def __str __ ():
atgriezties "Krāsas pastāv tikai tavās acīs."

def ObnoxiousFavoriteColorAssigner (krāsa):
ja tips (krāsa) nav str:
paaugstināt TypeError ("Man vajag auklu.")
ja krāsa ir ["sarkans", "zaļš", "zils"]:
favourite_color = krāsa
cits:
paaugstināt ColorError

Izveidojot savu pielāgoto izņēmumu klasi, laba prakse ir dokumentācijā iekļaut būtisku informāciju par to, kad un kā varētu tikt izvirzīts izņēmums. Turklāt šī loģika nav iekļauta kodā, kas nosaka izņēmumu.

Vairāk par Python izņēmumiem

  • Noteikti izlasiet oficiālo dokumentāciju par kļūdām un pilnu iebūvēto izņēmumu sarakstu.
  • Python izstrādātājs Julien Danjou uzrakstīja Python Exhibition galīgo ceļvedi.
  • Codementor.io vietnē Python ir pielāgoto izņēmumu rakstīšana un izmantošana.

Python FAQ

Ko tas nozīmē, ka Python ir a “skriptu valoda”?

Skriptu valoda ir valoda, kas tiek interpretēta izpildes laikā, nevis apkopota binārā izpildāmā formā.

Daži cilvēki lieto šo frāzi “skriptu valoda” norādīt, ka šī valoda ir īpaši laba, lai īsi uzrakstītu “skripti,” vai miniatūras ad hoc programmas, ko izmanto uzdevumu automatizēšanai.

Python der abiem aprakstiem – tā ir interpretēta valoda, un tā ir ļoti noderīga arī īsu, ad hoc skriptu rakstīšanai.

Vai tādas skriptu valodas kā Python ir piemērotas pilna mēroga lietojumprogrammu rakstīšanai?

Dažiem cilvēkiem ir aizspriedumi pret skriptu / interpretēto valodu izmantošanu visām lietojumprogrammām. Šīs neobjektivitātes gudrība ir pilnībā atkarīga no individuālā konteksta.

Skriptu valodas mēdz darboties nedaudz lēnāk nekā sastādītās valodas, un dažos gadījumos šī veiktspējas atšķirība ir milzīga problēma. Tomēr lielākajā daļā kontekstā tas rada nenozīmīgas bažas.

Python ir lieliski piemērots visu veidu pieteikumu rakstīšanai. Izmantojot Django vai citu tīmekļa ietvaru, jūs varat izveidot tīmekļa lietojumprogrammas. Python nav trūkumu attiecībā uz rīkiem un iespējām, kas nepieciešami pilna mēroga lietojumprogrammu rakstīšanai. Faktiski Python ir apstrīdējams daudz labāk piemērots šādam darbam nekā PHP vai JavaScript, kas abi bieži tiek izmantoti lielām, sarežģītām tīmekļa lietojumprogrammām..

Vai man vajadzētu iemācīties Python?

Tas ir atkarīgs no jūsu mērķiem.

Ja jūs vēlaties izveidot tipiskas tīmekļa lietojumprogrammas, jums, iespējams, vajadzētu iemācīties PHP vai Ruby (un Rails), kā arī JavaScript, HTML un CSS. Tur’Nav iemesla, kāpēc jūs nevarētu izmantot Python šim darbam, bet tas nav raksturīgi. PHP un Ruby ļautu piekļūt daudz vairāk esošām tīmekļa lietojumprogrammām, ietvariem un tīmekļa izstrādes rīkiem.

Ja jūs plānojat izmantot programmēšanas prasmes, lai tieši veiktu uzdevumus, piemēram, automatizāciju vai analīzi, Python ir lieliska valoda šāda veida darbam, un tā ir tā vieta, kur tā tiek izmantota visvairāk.

Ja veidojat lietotnes, kurās jāveic manipulācijas ar datiem specializētā jomā vai domēnā, piemēram, matemātikā, zinātnē, finansēs, mūzikā vai kriptogrāfijā, Python ir lieliska valoda arī šāda veida projektiem..

Turpmākie lasījumi un resursi

Mums ir vairāk rokasgrāmatu, mācību materiālu un infografiku, kas saistīti ar programmēšanu un statistiku:

  • C Izstrādātāju resursi: viss, kas jums nepieciešams, lai sāktu darbu ar šo klasisko valodu.
  • Ievads rubīnā on Rails: uzziniet par šo populāro skriptu valodu.
  • Stata programmēšana: Stata ir visa attīstības vide datu analīzes veikšanai.

Kāds kods jums jāiemācās?

Neizpratnē par to, kādā programmēšanas valodā jums vajadzētu iemācīties iekļūt? Iepazīstieties ar mūsu infografiku. Kāds kods jums jāiemācās? Tajā aplūkoti ne tikai dažādu valodu aspekti, bet arī sniegti atbildes uz svarīgiem jautājumiem, piemēram, “Cik daudz naudas es nopelnīšu Java programmēšanai iztikai?”

Kāds kods jums jāiemācās?
Kāds kods jums jāiemācās?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map