Programmeerimise näpunäited

10 parimat ja kasulikku näpunäidet Pythoni koodi kiirendamiseks

10 parimat ja kasulikku näpunäidet Pythoni koodi kiirendamiseks

Kui keegi teilt küsib - „Mis on praegu kõige kiiremini kasvav programmeerimiskeel maailmas?”On vastus lihtne. Selle püüton. Ülemaailmne populaarsus on tingitud lihtsast süntaksist ja rikkalikest raamatukogudest. Tänapäeval saate Pythoniga peaaegu kõike teha: andmeteadus, masinõpe, signaalitöötlus, andmete visualiseerimine - nimetate seda. Kuid paljud inimesed väidavad, et püüton on raskete probleemide lahendamisel veidi aeglane. Kuid programmi käivitamise aeg sõltub koodi kirjutamisest. Mõnede näpunäidete abil saab Pythoni koodi kiirendada ja programmi jõudlust parandada.

Näpunäiteid Pythoni koodi kiirendamiseks


Juhul, kui otsite viise oma Pythoni koodi kiirendamiseks, on artikkel mõeldud teile. See illustreerib tehnikaid ja strateegiaid programmi täitmisaja lühendamiseks. Nõuanded mitte ainult ei kiirenda koodi, vaid parandavad ka pythoni oskusi.

01. Kasutage sisseehitatud raamatukogusid ja funktsioone


Pythonil on palju raamatukogu funktsioone ja mooduleid. Need on kirjutatud asjatundlike arendajate poolt ja neid on mitu korda testitud. Need funktsioonid on väga tõhusad ja aitavad koodi kiirendada - koodi pole vaja kirjutada, kui funktsioon on juba teegis saadaval. Võtame selles osas lihtsa näite.

# code1 newlist = [] sõna vanas loendis: uus nimekiri.lisa (sõna.ülemine ())
# code2 newlist = kaart (str.ülemine, vana nimekiri)

Siin on teine ​​kood esimesest koodist kiirem, kuna on kasutatud teegi funktsioonikaarti (). Need funktsioonid on algajatele käepärased. Kes ei tahaks kirjutada nii kiiremini kui ka puhast ja väiksemat koodi? Seetõttu kasutage nii palju kui võimalik raamatukogu funktsioone ja mooduleid.

02. Õige andmete struktuur õiges kohas


Õige andmestruktuuri kasutamine vähendab käitamise aega. Enne alustamist peate mõtlema koodis kasutatava andmestruktuuri üle. Täiuslik andmestruktuur kiirendab pythoni koodi, teised aga ajavad selle sassi. Teil peab olema ettekujutus erinevate andmestruktuuride ajalisest keerukusest.

Pythonil on sisseehitatud andmestruktuurid nagu loend, dupleks, komplekt ja sõnastik. Inimesed harjuvad loendeid kasutama. Kuid on mõningaid juhtumeid, kus dupleks või sõnastik töötab palju paremini kui loendid. Andmestruktuuride ja algoritmide lisateabe saamiseks peate läbima Pythoni õpperaamatud.

03. Try kasutamise vähendamiseks eest Loop


Selle kasutamist on üsna raske vältida eest silmus. Kuid alati, kui teil on võimalus seda ära hoida, ütlevad eksperdid, et teete seda. Sest silmus on pythonis dünaamiline. Selle tööaeg on rohkem kui mõnda aega. Silmale pesitsemine on palju aeganõudvam. Kaks silmuste jaoks sisestatud pesa võtavad ühe ruutu aja jaoks.

# kood1 i jaoks big_it: m = re.otsing (r '\ d 2 - \ d 2 - \ d 4', i) kui m:… 
# code2 date_regex = re.kompileeri (r '\ d 2 - \ d 2 - \ d 4') i jaoks big_it: m = date_regex.otsing i) kui m:… 

Sel juhul on parem kasutada sobivat asendajat. Veelgi enam, kui eest silmused on vältimatud, viige arvutus väljapoole silmust. See säästab palju aega. Näeme seda ülaltoodud näites. Siin on 2. kood kiirem kui 1. kood, kuna arvutus on tehtud väljaspool tsüklit.

04. Vältige globaalseid muutujaid


Püütonis kasutatakse paljudel juhtudel globaalseid muutujaid. Selle deklareerimiseks kasutatakse globaalset märksõna. Kuid nende muutujate käitusaeg on rohkem kui kohaliku muutuja ajas. Vähema arvu kasutamine säästab tarbetut mälukasutust. Pealegi küsib Python kohaliku muutuja kiiremini kui globaalne. Välistes muutujates navigeerimisel on Python tõeliselt loid.

Mitmed teised programmeerimiskeeled on vastu globaalsete muutujate plaanivälisele kasutamisele. Loendur on tingitud kõrvaltoimetest, mis viivad suurema tööajani. Niisiis proovige võimaluse korral kasutada globaalse muutuja asemel kohalikku muutujat. Pealegi saate enne lingi kasutamist kohaliku koopia teha, säästes aega.

05. Suurendage loendi mõistmise kasutamist


Loendi mõistmine pakub lühemat süntaksi. See on käputäis, kui olemasoleva loendi põhjal tehakse uus loend. Silmus on igas koodis kohustuslik. Mõnikord muutub silmuse sees olev süntaks suureks. Sel juhul saab kasutada loendist arusaamist. Selle täpsemaks mõistmiseks võime võtta näite.

# code1 ruudu_numbrid = [] n vahemikus vahemikus (0,20): kui n% 2 == 1: ruudu_numbrid.lisa (n ** 2)
# code2 ruudu_numbrid = [n ** 2 n jaoks vahemikus (1,20), kui n% 2 == 1]

Siin võtab teine ​​kood vähem aega kui esimene kood. Lähenemisviis loendi mõistmiseks on lühem ja täpsem. Väikestes koodides ei pruugi see suurt vahet olla. Kuid ulatusliku arenduse korral võib see aega kokku hoida. Niisiis, kasutage loendi mõistmist alati, kui teil on võimalus Pythoni koodi kiirendada.

06. Asendage vahemik () xrange () -ga


Vahemiku () ja xrange () küsimus saabub siis, kui kasutate python 2. Neid funktsioone kasutatakse mis tahes tsükli itereerimiseks. Range () puhul salvestab see kõik vahemikus olevad numbrid mällu. Kuid xrange () salvestab ainult kuvatavate numbrite vahemiku.

Range () tagastustüüp on loend ja xrange () on objekt. Lõpuks võtab xrange () vähem mälu ja selle tulemusel ka vähem aega. Niisiis, kasutage vahemiku () asemel võimaluse korral xrange (). Loomulikult kehtib see ainult python 2 kasutajatele.

07. Kasutage generaatoreid


Pythonis on generaator funktsioon, mis tagastab iteraatori, kui märksõna tootlus on kutsutud. Generaatorid on suurepärane mälu optimeerija. Nad tagastavad ühe eseme korraga, selle asemel et kõik korraga tagastada. Kui teie loend sisaldab märkimisväärset arvu andmeid ja peate kasutama korraga ühte andmestikku, kasutage generaatoreid.

Generaatorid arvutavad andmed tükkidena. Seetõttu saab funktsioon pöördumise korral tulemuse tagastada ja säilitada oma oleku. Generaatorid säilitavad funktsiooni oleku, peatades koodi pärast seda, kui helistaja on väärtuse genereerinud, ja see jätkab soovi korral töötamist sealt, kus see pooleli jääb.

Kuna generaatorid pääsevad juurde nõudeväärtusele ja arvutavad selle, ei pea märkimisväärset osa andmetest täielikult mällu salvestama. Selle tulemuseks on märkimisväärne mälusääst, mis lõppkokkuvõttes kiirendab koodi.

08. Liitke stringid liitumisfunktsiooniga


Nööridega töötamisel on liitmine üsna tavaline. Üldiselt ühendame pythonis „+”. Kuid igas etapis loob “+” toiming uue stringi ja kopeerib vana materjali. See protsess on ebaefektiivne ja võtab palju aega. Siin peame stringide liitmiseks kasutama liitumist (), kui tahame oma Pythoni koodi kiirendada.

# code1 x = "I" + "am" + "a" + "python" + "geek" print (x)
# code2 x = "".liitu (["I", "am", "a", "python", "geek"]) print (x)

Kui vaatame näidet, siis esimene kood prindib “Iamapythongeek” ja teine ​​kood “I am a python geek”.  Liitumisoperatsioon () on tõhusam ja kiirem kui '+'. See hoiab ka koodi puhtana. Kes ei tahaks kiiremat ja puhtamat koodi? Niisiis, proovige stringide liitmiseks '+' asemel kasutada join ().

09. Profiilige oma kood


Profiilimine on klassikaline viis koodi optimeerimiseks. Programmi statistika mõõtmiseks on palju mooduleid. Need annavad meile teada, kus programm kulutab liiga palju aega ja mida selle optimeerimiseks teha. Nii et optimeerimise tagamiseks tehke mõned testid ja tõhustage programmi, et tõhusust parandada.

Taimer on üks profileerijatest. Saate seda kasutada koodis kõikjal ja leida iga etapi käitamisaja. Siis saame programmi täiustada seal, kus see võtab liiga kaua aega. Pealegi on sisseehitatud profileerimismoodul nimega LineProfiler. Samuti antakse kirjeldav aruanne kulutatud aja kohta. On mitmeid profiilijaid, mida saate õppida Pythoni raamatuid lugedes.

10. Hoidke end värskena - kasutage Pythoni uusimat versiooni


On tuhandeid arendajaid, kes lisavad pythonile regulaarselt rohkem funktsioone. Moodulid ja raamatukogu funktsioonid, mida me täna kasutame, on homme toimuvate arengutega aegunud. Pythoni arendajad muudavad keele iga päevaga kiiremaks ja usaldusväärsemaks. Iga uus väljaanne on oma jõudlust suurendanud.

Niisiis, peame värskendama raamatukogud nende uusimale versioonile. Python 3.9 on nüüd uusim versioon. Paljud python 2 teegid ei pruugi python3-l töötada. Pidagem seda meeles ja kasutage maksimaalse jõudluse saavutamiseks alati uusimat versiooni.

Lõpuks Insights


Pythoni arendajate väärtus maailmas kasvab päev-päevalt. Mida sa siis ootad! On viimane aeg hakata õppima pythoni koodi kiirendama. Meie pakutavad näpunäited aitavad teil kindlasti tõhusaid koode kirjutada. Kui te neid järgite, võime loota, et saate oma koodi paremaks muuta ja minna täpsematesse Pythoni asjadesse.

Oleme püüdnud näidata kõiki peamisi nippe ja näpunäiteid, mis on vajalikud koodi kiirendamiseks. Loodame, et artikkel on vastanud enamusele teie küsimustest. Nüüd on ülejäänu teie käes. Teadmistel pole aga lõppu ega õppimist. Nii et kui meil on millestki suuremast ilma jäänud, andke meile sellest teada. Head õppimist!

Juhtige ja hallake hiire liikumist mitme kuvari vahel Windows 10-s
Dual Display Mouse Manager võimaldab teil kontrollida ja konfigureerida hiire liikumist mitme monitori vahel, aeglustades selle liikumist piiri läheda...
WinMouse võimaldab teil kohandada ja parandada hiirekursori liikumist Windowsi arvutis
Kui soovite oma hiirekursori vaikefunktsioone paremaks muuta, kasutage vabavara WinMouse. See lisab rohkem funktsioone, mis aitavad teil alandlikust h...
Hiire vasakklõps nupp ei tööta Windows 10-s
Kui kasutate oma sülearvuti või lauaarvutiga spetsiaalset hiirt, kuid hiire vasakklõps nupp ei tööta mingil põhjusel operatsioonisüsteemis Windows 10/...