Tipy na programovanie

10 najlepších a užitočných tipov na zrýchlenie kódu Pythonu

10 najlepších a užitočných tipov na zrýchlenie kódu Pythonu

Ak sa vás niekto spýta - „Aký je momentálne najrýchlejšie rastúci programovací jazyk na svete?”Odpoveď bude jednoduchá. Jeho pytón. Celosvetová popularita je spôsobená jednoduchou syntaxou a bohatými knižnicami. V súčasnosti môžete s pythonom robiť takmer čokoľvek: dátová veda, strojové učenie, spracovanie signálu, vizualizácia údajov - čo si len spomeniete. Mnoho ľudí však tvrdí, že pytón je pri riešení závažných problémov trochu pomalý. Ale čas na vykonanie programu závisí od kódu, ktorý človek napíše. Pomocou niekoľkých tipov a trikov možno urýchliť kód Pythonu a zvýšiť výkonnosť programu.

Tipy a triky na zrýchlenie kódu Python


V prípade, že hľadáte spôsoby, ako urýchliť svoj kód v pythone, článok je pre vás. Ilustruje techniky a stratégie na zníženie času vykonania programu. Tipy nielen zrýchlia kód, ale tiež zlepšia zručnosti v jazyku python.

01. Používajte vstavané knižnice a funkcie


Python má veľa knižničných funkcií a modulov. Píšu ich experti vývojári a boli niekoľkokrát testovaní. Tieto funkcie sú teda vysoko efektívne a pomáhajú urýchliť kód - nie je potrebné písať kód, ak je funkcia už v knižnici k dispozícii. V tejto súvislosti si berieme jednoduchý príklad.

# code1 newlist = [] pre slovo v starom zozname: nový zoznam.pridať (slovo.horný ())
# code2 newlist = mapa (str.horný, starý zoznam)

Tu je druhý kód rýchlejší ako prvý kód, pretože sa použila funkčná mapa knižnice (). Tieto funkcie sú užitočné pre začiatočníkov. Kto nechce písať rýchlejšie a čistejšie a menšie kódy? Preto čo najviac používajte funkcie a moduly knižnice.

02. Správna dátová štruktúra na správnom mieste


Používanie správnej dátovej štruktúry skracuje runtime. Pred spustením musíte myslieť na dátovú štruktúru, ktorá sa v kóde použije. Dokonalá dátová štruktúra zrýchli kód pythonu, zatiaľ čo iní ho pokazia. Musíte si urobiť predstavu o časovej zložitosti rôznych dátových štruktúr.

Python má zabudované dátové štruktúry ako zoznam, n-tica, množina a slovník. Ľudia sú zvyknutí používať zoznamy. Existujú však prípady, keď n-tica alebo slovník fungujú oveľa lepšie ako zoznamy. Ak sa chcete dozvedieť viac dátových štruktúr a algoritmov, musíte si prečítať učebné knihy jazyka Python.

03. Try na minimalizáciu použitia pre Slučka


Je dosť ťažké vyhnúť sa použitiu pre slučka. Ale kedykoľvek máte šancu tomu zabrániť, odborníci tvrdia, že to robíte. Smyčka for je v pythone dynamická. Jeho doba chodu je viac ako chvíľková slučka. Vnorené pre slučku je oveľa časovo náročnejšie. Dve vnorené slučky zaberú štvorček času v jednej slučke for.

# code1 pre i vo big_it: m = re.hľadať (r '\ d 2 - \ d 2 - \ d 4', i) ak m:… 
# code2 date_regex = re.kompilujte (r '\ d 2 - \ d 2 - \ d 4') pre i v big_it: m = date_regex.hľadať i) ak m:… 

V takom prípade je lepšie použiť vhodnú náhradu. Navyše, ak pre slučky sú nevyhnutné, presunúť výpočet mimo slučky. Ušetrí to veľa času. Vidíme to na príklade uvedenom vyššie. Tu je druhý kód rýchlejší ako prvý kód, pretože výpočet sa uskutočňoval mimo cyklu.

04. Vyhýbajte sa globálnym premenným


Globálne premenné sa v pythone používajú v mnohých prípadoch. Na jeho vyhlásenie sa používa globálne kľúčové slovo. Ale runtime týchto premenných je viac ako lokálnej premennej. Ak ich použijete menej, ušetrí to zbytočné využitie pamäte. Okrem toho Python naberá lokálnu premennú rýchlejšie ako globálnu. Pri navigácii po externých premenných je Python skutočne pomalý.

Niekoľko ďalších programovacích jazykov je proti neplánovanému použitiu globálnych premenných. Počítadlo je spôsobené vedľajšími účinkami vedúcimi k vyššej dobe chodu. Ak je to možné, skúste teda namiesto globálnej použiť lokálnu premennú. Navyše si môžete pred použitím v slučke vytvoriť miestnu kópiu, čo šetrí čas.

05. Zvýšte mieru porozumenia zoznamu


Zoznam s porozumením ponúka kratšiu syntax. Je to hrsť, keď sa nový zoznam vytvorí na základe existujúceho zoznamu. Smyčka je nevyhnutnosťou v každom kóde. Niekedy je syntax vo vnútri slučky veľká. V takom prípade možno použiť porozumenie zoznamu. Môžeme si vziať príklad, aby sme to pochopili presnejšie.

# code1 square_numbers = [] pre n v rozsahu (0,20): ak n% 2 == 1: square_numbers.pripojiť (n ** 2)
# code2 square_numbers = [n ** 2 pre n v rozsahu (1,20), ak n% 2 == 1]

Tu trvá druhý kód menej času ako prvý kód. Prístup k porozumeniu zoznamu je kratší a presnejší. V malých kódoch to nemusí znamenať veľký rozdiel. Ale pri rozsiahlom vývoji vám môže ušetriť nejaký čas. Rozumenie zoznamu teda používajte vždy, keď máte možnosť urýchliť svoj kód v jazyku Python.

06. Nahraďte rozsah () znakom xrange ()


Otázka rozsahu () a xrange () prichádza, ak používate python 2. Tieto funkcie sa používajú na iteráciu ľubovoľného cyklu for. V prípade rozsahu () uloží všetky čísla v rozsahu do pamäte. Ale xrange () šetrí iba rozsah čísel, ktoré je potrebné zobraziť.

Návratový typ rozsahu () je zoznam a návratový typ rozsahu () je objekt. Xrange () nakoniec zaberie menej pamäte a vo výsledku aj menej času. Takže ak je to možné, použite namiesto rozsahu () namiesto xrange (). Samozrejme, je to použiteľné iba pre používateľov pythonu 2.

07. Použite generátory


V pythone je generátor funkcia, ktorá vráti iterátor, keď sa volá výťažok kľúčového slova. Generátory sú vynikajúcim optimalizátorom pamäte. Vracajú po jednej položke namiesto vrátenia po jednej. Ak váš zoznam obsahuje značné množstvo údajov a potrebujete použiť iba jeden údaj súčasne, použite generátory.

Generátory počítajú údaje po častiach. Funkcia preto môže po vyvolaní vrátiť výsledok a zachovať si svoj stav. Generátory zachovávajú stav funkcie zastavením kódu po tom, čo volajúci vygeneruje hodnotu, a pokračuje v spustení z miesta, kde bol na požiadanie prerušený.

Pretože generátory pristupujú a vypočítavajú hodnotu na požiadanie, významná časť údajov sa nemusí ukladať úplne do pamäte. Výsledkom je značná úspora pamäte a nakoniec zrýchlenie kódu.

08. Spojte reťazce so spojením


Pri práci so strunami je zreťazenie úplne bežné. Spravidla v pythone spájame pomocou znaku „+“. V každom kroku však operácia „+“ vytvorí nový reťazec a skopíruje starý materiál. Tento proces je neefektívny a trvá veľa času. Ak chceme urýchliť náš kód Pythonu, musíme tu použiť join () na zreťazenie reťazcov.

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

Ak sa pozrieme na príklad, prvý kód vytlačí „Iamapythongeek“ a druhý kód vytlačí „Som pythonový geek“.  Operácia join () je efektívnejšia a rýchlejšia ako operácia „+“. Udržuje tiež čistý kód. Kto nechce rýchlejší a čistejší kód? Skúste teda použiť reťazec join () namiesto '+' na zreťazenie reťazcov.

09. Vytvorte si profil


Profilovanie je klasický spôsob optimalizácie kódu. Existuje veľa modulov na meranie štatistík programu. Dávajú nám vedieť, kde program trávi príliš veľa času a čo treba urobiť na jeho optimalizáciu. Takže, aby bola zabezpečená optimalizácia, vykonajte niektoré testy a vylepšite program s cieľom zvýšiť efektivitu.

Časovač je jedným z profilovačov. Môžete ho použiť kdekoľvek v kóde a nájsť runtime každej fázy. Potom môžeme program vylepšiť tam, kde to trvá príliš dlho. Okrem toho je vstavaný modul profilovania s názvom LineProfiler. Poskytuje tiež popisnú správu o spotrebovanom čase. Existuje niekoľko profilovačov, ktoré sa môžete naučiť čítaním kníh v jazyku python.

10. Udržujte sa v aktualizácii - použite najnovšiu verziu Pythonu


Existujú tisíce vývojárov, ktorí pravidelne pridávajú ďalšie funkcie do pythonu. Moduly a knižničné funkcie, ktoré dnes používame, budú zajtra vývojom zastarané. Vývojári jazyka Python robia jazyk rýchlejší a spoľahlivejší zo dňa na deň. Každé nové vydanie zvýšilo svoj výkon.

Musíme teda aktualizovať knižnice na ich najnovšiu verziu. Python 3.9 je najnovšia verzia. Mnoho knižníc pythonu 2 nemusí fungovať na python3. Pamätajme na to a vždy používajte najnovšiu verziu, aby ste dosiahli maximálny výkon.

Na záver Insights


Hodnota vývojárov Pythonu vo svete zo dňa na deň rastie. Tak na čo čakáš! Je najvyšší čas, aby ste sa začali učiť zrýchľovať kód v pythone. Tipy a triky, ktoré sme poskytli, vám určite pomôžu pri písaní efektívnych kódov. Ak ich budete dodržiavať, môžeme dúfať, že svoj kód vylepšíte a pustíte sa do pokročilejších vecí v jazyku python.

Pokúsili sme sa ukázať všetky hlavné triky a tipy, ktoré sú potrebné na zrýchlenie kódu. Dúfame, že článok zodpovedal väčšinu vašich otázok. Teraz je zvyšok na vás. Neexistuje však žiadny koniec vedomostí a žiadny koniec učenia. Ak sme teda niečo zásadné premeškali, dajte nám vedieť. Šťastné učenie!

Hry Výukový program OpenTTD
Výukový program OpenTTD
OpenTTD je jednou z najpopulárnejších obchodných simulačných hier. V tejto hre musíte vytvoriť úžasné dopravné podnikanie. Začnete však na začiatku ok...
Hry SuperTuxKart pre Linux
SuperTuxKart pre Linux
SuperTuxKart je vynikajúci titul navrhnutý tak, aby vám priniesol zážitok z hry Mario Kart zadarmo na vašom systéme Linux. Je to dosť náročné a zábavn...
Hry Výukový program Battle for Wesnoth
Výukový program Battle for Wesnoth
Battle for Wesnoth je jednou z najpopulárnejších open source strategických hier, ktoré si v súčasnosti môžete zahrať. Táto hra bola nielen vyvinutá ve...