logo

50+ najdôležitejších otázok a odpovedí na rozhovory v Pythone (najnovšie z roku 2024)

Python je najpoužívanejším jazykom v špičkových spoločnostiach, ako sú Intel, IBM, NASA, Pixar, Netflix, Facebook, JP Morgan Chase, Spotify a mnohých ďalších, a to vďaka svojmu výkonu a výkonným knižniciam. Aby ste sa dostali do týchto spoločností a organizácií ako vývojár Pythonu, musíte ovládať niektoré dôležité veci Otázky na pohovor v Pythone na prelomenie ich kola hodnotenia online v Pythone a kola pohovorov v Pythone. Pripravili sme zoznam 50 najčastejších otázok na pohovor v jazyku Python spolu s ich odpoveďami na eso v rozhovoroch.

Otázky na pohovor v Pythone



rozdelenie reťazca v c++

Obsah

Základné otázky na pohovor v jazyku Python pre začiatočníkov

Python je široko používaný univerzálny programovací jazyk na vysokej úrovni. Vytvoril ho Guido van Rossum v roku 1991 a ďalej ho vyvinula Python Software Foundation. Bol navrhnutý s dôrazom na čitateľnosť kódu a jeho syntax umožňuje programátorom vyjadriť svoje koncepty v menšom počte riadkov kódu.
Používa sa na:

  • Systémové skriptovanie
  • Vývoj webových aplikácií
  • Vývoj hier
  • Vývoj softvéru
  • Komplexná matematika

2. Aké sú výhody používania jazyka Python ako nástroja v tomto scenári?

Nasledujú výhody používania jazyka Python:



  • Objektovo orientovaný jazyk
  • Jazyk na vysokej úrovni
  • Dynamicky typovaný jazyk
  • Rozsiahla podpora knižníc
  • Prítomnosť modulov tretích strán
  • Open source a komunitný rozvoj
  • Prenosné a interaktívne
  • Prenosné medzi operačnými systémami

3. Je Python kompilovaný jazyk alebo interpretovaný jazyk?

V skutočnosti je Python čiastočne kompilovaný jazyk a čiastočne interpretovaný jazyk. Kompilačná časť sa vykoná ako prvá, keď spustíme náš kód, a tým sa interne vygeneruje bajtový kód, tento bajtový kód sa prevedie virtuálnym strojom Python (p.v.m) podľa základnej platformy (stroj + operačný systém).

4. Čo robí symbol „#“ v Pythone?

„#“ sa používa na komentovanie všetkého, čo nasleduje na riadku.

6. Ako sa v Pythone odovzdávajú argumenty hodnotou alebo odkazom?

Všetko v Pythone je objekt a všetky premenné obsahujú odkazy na objekty. Referenčné hodnoty sú podľa funkcií; v dôsledku toho nemôžete zmeniť hodnotu referencií. Objekty však môžete zmeniť, ak sú premenlivé.

7. Aký je rozdiel medzi Setom a Slovníkom?

Sada je neusporiadaná kolekcia typov údajov, ktorá je iterovateľná, meniteľná a nemá žiadne duplicitné prvky.
Slovník v Pythone je usporiadaná kolekcia dátových hodnôt, ktorá sa používa na ukladanie dátových hodnôt ako mapa.

8. Čo je to List Comprehension? Uveďte príklad.

Porozumenie zoznamu je konštrukcia syntaxe na uľahčenie vytvárania zoznamu na základe existujúcich iterovateľných.

Napríklad:

my_list = [i for i in range(1, 10)]>

9. Čo je to funkcia lambda?

Funkcia lambda je anonymná funkcia. Táto funkcia môže mať ľubovoľný počet parametrov, ale môže mať iba jeden príkaz. Napríklad:

a = lambda x, y : x*y print(a(7, 19))>

10. Čo je to pass v Pythone?

Pass znamená nevykonanie žiadnej operácie alebo inými slovami, je to zástupný symbol v zloženom príkaze, kde by malo zostať prázdne a nemusí sa tam nič písať.

11. Aký je rozdiel medzi / a // v Pythone?

/ predstavuje presné delenie (výsledok je číslo s pohyblivou rádovou čiarkou), zatiaľ čo // predstavuje delenie podlahy (výsledok je celé číslo). Napríklad:

5//2 = 2 5/2 = 2.5>

12. Ako sa robí výnimočné spracovanie v Pythone?

Existujú 3 hlavné kľúčové slová, t. j. try, okrem, a nakoniec, ktoré sa používajú na zachytenie výnimiek a príslušné spracovanie mechanizmu obnovy. Try je blok kódu, ktorý je monitorovaný na chyby. Okrem toho, že blok sa vykoná, keď sa vyskytne chyba.

Krása posledného bloku je spustiť kód po pokuse o chybu. Tento blok sa vykoná bez ohľadu na to, či došlo k chybe alebo nie. Nakoniec sa blok používa na vykonanie požadovaných činností čistenia objektov/premenných.

13. Čo je funkcia swapcase v Pythone?

Je to funkcia reťazca, ktorá prevádza všetky veľké písmená na malé a naopak. Používa sa na zmenu existujúceho prípadu reťazca. Táto metóda vytvorí kópiu reťazca, ktorý obsahuje všetky znaky vo výmennom prípade. Napríklad:

string = 'techcodeview.com' string.swapcase() --->'gEEKSFORgEEKS'>

14. Rozdiel medzi slučkou for a slučkou while v Pythone

Slučka for sa vo všeobecnosti používa na iteráciu cez prvky rôznych typov kolekcií, ako napr Zoznam , Násobný , Set , a Slovník . Vývojári používajú cyklus for, kde majú podmienky začiatok aj koniec. Zatiaľ čo slučka while je skutočná funkcia slučky, ktorá sa používa v akomkoľvek inom programovacom jazyku. Programátori používajú Python while loop, kde majú len koncové podmienky.

15. Môžeme odovzdať funkciu ako argument v Pythone?

Áno, funkcii možno odovzdať niekoľko argumentov vrátane objektov, premenných (rovnakých alebo odlišných dátových typov) a funkcií. Funkcie môžu byť odovzdané ako parametre iným funkciám, pretože sú to objekty. Funkcie vyššieho rádu sú funkcie, ktoré môžu mať iné funkcie ako argumenty.

Ak si chcete prečítať viac, pozrite si článok: Odovzdávanie funkcie ako argument v Pythone

16. Čo sú *args a *kwargs?

Ak chcete funkcii v Pythone odovzdať premenný počet argumentov, použite špeciálnu syntax *args a **kwargs v špecifikácii funkcie. Používa sa na odovzdanie zoznamu argumentov s premenlivou dĺžkou a bez kľúčových slov. Použitím * sa premenná, ktorú spájame s *, stáva iterovateľnou, čo vám umožňuje vykonávať s ňou operácie, ako je iterácia a používanie operácií vyššieho rádu, ako je mapa a filter.

17. Vyžaduje sa v Pythone odsadenie?

Áno, odsadenie je vyžadovaný v Pythone. A Python interpreter môže byť informovaný o tom, že skupina príkazov patrí do špecifického bloku kódu pomocou odsadenia Pythonu. Vďaka odsadeniam je kód ľahko čitateľný pre vývojárov vo všetkých programovacích jazykoch, ale v Pythone je veľmi dôležité odsadiť kód v špecifickom poradí.

18. Čo je rozsah v Pythone?

Miesto, kde môžeme nájsť premennú a v prípade potreby k nej aj pristupovať, sa nazýva rozsah premennej.

  • Miestna premenná Pythonu: Lokálne premenné sú tie, ktoré sú inicializované v rámci funkcie a sú jedinečné pre túto funkciu. Nie je možné k nemu pristupovať mimo funkcie.
  • Globálne premenné Pythonu: Globálne premenné sú tie, ktoré sú definované a deklarované mimo akejkoľvek funkcie a nie sú špecifikované pre žiadnu funkciu.
  • Rozsah na úrovni modulu: Vzťahuje sa na globálne objekty aktuálneho modulu prístupné v programe.
  • Najkrajnejší rozsah: Odkazuje na akékoľvek vstavané názvy, ktoré môže program volať. Uvedený názov sa nachádza na poslednom mieste medzi objektmi v tomto rozsahu.

19. Čo je to docstring v Pythone?

Dokumentačné reťazce Pythonu (alebo docstring) poskytujú pohodlný spôsob spájania dokumentácie s modulmi, funkciami, triedami a metódami Pythonu.

  • Vyhlásenie docstringov: Dokumentačné reťazce sú deklarované pomocou „trojitých jednoduchých úvodzoviek“ alebo trojitých dvojitých úvodzoviek tesne pod deklaráciou triedy, metódy alebo funkcie. Všetky funkcie by mali mať dokumentačný reťazec.
  • Prístup k reťazcom dokumentov: K reťazcom docstring je možné pristupovať pomocou metódy __doc__ objektu alebo pomocou funkcie pomocníka.

20. Čo je dynamicky typizovaný jazyk?

Písané jazyky sú jazyky, v ktorých definujeme typ dátového typu a bude ho poznať stroj v čase kompilácie alebo behu. Typizované jazyky možno rozdeliť do dvoch kategórií:

  • Staticky zadávané jazyky: V tomto type jazyka je dátový typ premennej známy v čase kompilácie, čo znamená, že programátor musí špecifikovať dátový typ premennej v čase jej deklarácie.
  • Dynamicky písané jazyky: Toto sú jazyky, ktoré nevyžadujú žiadny preddefinovaný typ údajov pre žiadnu premennú, pretože ju za behu interpretuje samotný stroj. V týchto jazykoch tlmočníci priraďujú dátový typ premennej za behu v závislosti od jej hodnoty.

21. Čo je to break, continue a pass v Pythone?

The vyhlásenie o prerušení sa používa na ukončenie cyklu alebo príkazu, v ktorom je prítomný. Potom ovládací prvok prejde na príkazy, ktoré sú prítomné po príkaze break, ak sú k dispozícii.

program dvojrozmerného poľa v c

ďalej je tiež príkazom na riadenie cyklu, rovnako ako príkaz break. príkaz continue je opačný ako príkaz break, namiesto ukončenia cyklu núti vykonať ďalšiu iteráciu cyklu.

Pass znamená nevykonávanie žiadnej operácie alebo inými slovami, je to zástupný symbol v zloženom príkaze, kde by malo zostať prázdne a nemusí sa tam nič písať.

číselné: Číselný typ údajov v Pythone predstavuje údaje, ktoré majú číselnú hodnotu. Číselná hodnota môže byť celé číslo, plávajúce číslo, booleovská hodnota , alebo dokonca komplexné číslo.
  • Typ sekvencie: T Sekvencia Data Type v Pythone je usporiadaná kolekcia podobných alebo rôznych typov údajov. V Pythone existuje niekoľko typov sekvencií:
  • Typy mapovania: V Pythone môžu byť hašovateľné údaje mapované na náhodné objekty pomocou mapovacieho objektu. V súčasnosti existuje iba jeden spoločný typ mapovania, slovník a objekty mapovania sú meniteľné.
  • Typy súprav: V Pythone, a Set je neusporiadaná kolekcia dátových typov, ktorá je iterovateľná, meniteľná a nemá žiadne duplicitné prvky. Poradie prvkov v množine nie je definované, hoci môže pozostávať z rôznych prvkov.
  • 23. Ako určíte číslo v Pythone?

    Matematický modul Python obsahuje metódu, ktorú možno použiť na výpočet dna čísla.

    • poschodie () metóda v Pythone vracia dno x, t.j. najväčšie celé číslo nie väčšie ako x.
    • Tiež metóda ceil(x) v Pythone vracia hornú hodnotu x, t.j. najmenšie celé číslo väčšie alebo rovné x.

    Otázky na pohovor v jazyku Python pre stredne pokročilých

    24. Aký je rozdiel medzi funkciami xrange a range?

    range() a xrange() sú dve funkcie, ktoré možno použiť na opakovanie určitého počtu opakovaní v cykloch for v Pythone. V Pythone 3 nie je xrange, ale funkcia range sa správa ako xrange v Pythone 2.

    • rozsah() – Vráti zoznam čísel vytvorených pomocou funkcie range().
    • xrange() – Táto funkcia vracia objekt generátora, ktorý je možné použiť na zobrazenie čísel iba zacyklením. Jediný konkrétny rozsah sa zobrazí na požiadanie, a preto sa volá lenivé hodnotenie .

    25. Čo je porozumenie slovníka? Uveďte príklad

    Dictionary Comprehension je konštrukcia syntaxe na uľahčenie vytvárania slovníka na základe existujúceho iterovateľného.

    Napríklad: my_dict = {i:i+7 pre i v rozsahu(1, 10)}

    26. Je Tuple Comprehension? Ak áno, ako a ak nie prečo?

    (i for i in (1, 2, 3))>

    N-ticové porozumenie nie je možné v Pythone, pretože skončí v generátore, nie v n-ticovom porozumení.

    27. Rozdiel medzi Listom a Tuple?

    Poďme analyzovať rozdiely medzi Listom a Tuple:

    Zoznam

    • Zoznamy sú premenlivé dátové typy.
    • Zoznamy zaberajú viac pamäte
    • Zoznam je vhodnejší na vykonávanie operácií, ako je vkladanie a odstraňovanie.
    • Dôsledok iterácií je časovo náročný

    Násobný

    vodoznak vo worde
    • N-tice sú nemenné dátové typy.
    • Tuple spotrebuje menej pamäte v porovnaní so zoznamom
    • Dátový typ Tuple je vhodný na prístup k prvkom
    • Implikácia iterácií je pomerne rýchlejšia

    28. Aký je rozdiel medzi plytkou kópiou a hlbokou kópiou?

    Plytká kópia sa používa, keď sa vytvorí nový typ inštancie a uchováva hodnoty, ktoré sa skopírujú, zatiaľ čo hĺbková kópia ukladá hodnoty, ktoré už sú skopírované.

    Plytká kópia má rýchlejšie vykonávanie programu, zatiaľ čo hlboká kópia ho spomaľuje.

    29. Ktorú techniku ​​triedenia používajú funkcie sort() a sort() pythonu?

    Python používa Tim Sort algoritmus na triedenie. Ide o stabilné triedenie, ktorého najhorší prípad je O (N log N). Ide o hybridný triediaci algoritmus odvodený od zlučovacieho triedenia a triedenia vkladania, navrhnutý tak, aby dobre fungoval na mnohých druhoch údajov z reálneho sveta.

    30. Čo sú to dekoratéri?

    Dekorátory sú veľmi výkonným a užitočným nástrojom v Pythone, pretože ide o špecifickú zmenu, ktorú robíme v syntaxi Pythonu, aby sme jednoducho menili funkcie.

    31. Ako ladíte program Python?

    Pomocou tohto príkazu môžeme odladiť program Python:

    $ python -m pdb python-script.py>

    32. Čo sú to iterátory v Pythone?

    V Pythone sa iterátory používajú na iteráciu skupiny prvkov, kontajnerov ako zoznam. Iterátory sú kolekcie položiek a môžu to byť zoznam, n-tice alebo slovník. Iterátor Pythonu implementuje __itr__ a metódu next() na iteráciu uložených prvkov. Vo všeobecnosti používame cykly na iteráciu kolekcií (zoznam, n-tice) v Pythone.

    33. Čo sú generátory v Pythone?

    V Pythone je generátor spôsob, ktorý špecifikuje, ako implementovať iterátory. Je to normálna funkcia okrem toho, že poskytuje výraz vo funkcii. Neimplementuje metódu __itr__ a next() a znižuje aj ďalšie režijné náklady.

    Ak funkcia obsahuje aspoň príkaz výnosu, stáva sa generátorom. Kľúčové slovo výnos pozastaví aktuálne vykonávanie uložením jeho stavov a potom v prípade potreby pokračuje od rovnakého.

    34. Podporuje Python viacnásobnú dedičnosť?

    Python na rozdiel od Java podporuje viacnásobnú dedičnosť. Viacnásobná dedičnosť znamená, že trieda môže byť odvodená z viac ako jednej nadradenej triedy.

    35. Čo je to polymorfizmus v Pythone?

    Polymorfizmus znamená schopnosť mať viacero foriem. Napríklad, ak má rodičovská trieda metódu s názvom ABC, potom môže mať podradená trieda tiež metódu s rovnakým názvom ABC, ktorá má svoje vlastné parametre a premenné. Python umožňuje polymorfizmus.

    36. Definujte zapuzdrenie v Pythone?

    Zapuzdrenie znamená spojenie kódu a údajov dohromady. Príkladom zapuzdrenia je trieda Python.

    38. Ako prebieha správa pamäte v Pythone?

    Python využíva svoj súkromný priestor haldy na správu pamäte. V zásade sú všetky objekty a dátové štruktúry uložené v priestore súkromnej haldy. Do tohto súkromného priestoru nemá prístup ani programátor, keďže sa oň stará tlmočník. Python má tiež vstavaný zberač odpadu, ktorý recykluje všetku nevyužitú pamäť a uvoľňuje pamäť a sprístupňuje ju na halde.

    39. Ako odstrániť súbor pomocou Pythonu?

    Súbor môžeme odstrániť pomocou Pythonu nasledujúcimi spôsobmi:

    • os.remove()
    • os.unlink()

    40. Čo je krájanie v Pythone?

    Python Slicing je reťazcová operácia na extrakciu časti reťazca alebo časti zoznamu. Pomocou tohto operátora je možné určiť, kde sa má krájanie začať, kde sa má skončiť, a určiť krok. Rozdelenie zoznamu vráti nový zoznam z existujúceho zoznamu.

    návrh databázy v dbms
    Syntax: Lst[ Initial : End : IndexJump ]>

    41. Čo je to menný priestor v Pythone?

    Priestor názvov je systém názvov, ktorý sa používa na zabezpečenie toho, aby mená boli jedinečné, aby sa predišlo konfliktom názvov.

    Pokročilé otázky a odpovede na rozhovory v Pythone

    42. Čo je PIP?

    PIP je skratka pre Python Installer Package, ktorý poskytuje bezproblémové rozhranie na inštaláciu rôznych modulov Pythonu. Je to nástroj príkazového riadka, ktorý dokáže vyhľadať balíky cez internet a nainštalovať ich bez akejkoľvek interakcie používateľa.

    43. Čo je to funkcia zipsu?

    Funkcia Python zip() vracia objekt zip, ktorý mapuje podobný index viacerých kontajnerov. Vezme iterovateľný prvok, prevedie ho na iterátor a agreguje prvky na základe odovzdaných iterovateľných prvkov. Vracia iterátor n-tic.

    44. Čo je morenie a odmorovanie?

    Modul Pickle akceptuje akýkoľvek objekt Python a prevedie ho na reťazcovú reprezentáciu a vypíše ho do súboru pomocou funkcie dump, tento proces sa nazýva morenie. Zatiaľ čo proces získavania pôvodných objektov Pythonu z uloženej reťazcovej reprezentácie sa nazýva unpickling.

    45. Čo je to opičie patchovanie v Pythone?

    V Pythone sa termín opičia oprava vzťahuje iba na dynamické úpravy triedy alebo modulu za behu.

    # g.py class GeeksClass:  def function(self):  print 'function()'  import m def monkey_function(self):  print 'monkey_function()'   m.GeeksClass.function = monkey_function obj = m.GeeksClass() obj.function()>

    46. ​​Čo je __init__() v Pythone?

    Ekvivalent ku konštruktorom v terminológii OOP, __init__ je rezervovaná metóda v triedach Pythonu. Metóda __init__ sa volá automaticky vždy, keď je inicializovaný nový objekt. Táto metóda pridelí pamäť novému objektu hneď po jeho vytvorení. Túto metódu možno použiť aj na inicializáciu premenných.

    47. Napíšte kód na zobrazenie aktuálneho času?

    import time  currenttime= time.localtime(time.time()) print (Current time is, currenttime)>

    48. Čo sú špecifikátory prístupu v Pythone?

    Python používa symbol „_“ na určenie riadenia prístupu pre konkrétny dátový člen alebo členskú funkciu triedy. Trieda v Pythone má tri typy Modifikátory prístupu k Pythonu :

    binárny vyhľadávací strom]
    • Modifikátor verejného prístupu: Členovia triedy, ktorí sú deklarovaní ako verejní, sú ľahko prístupní z ktorejkoľvek časti programu. Všetky dátové členy a členské funkcie triedy sú štandardne verejné.
    • Modifikátor chráneného prístupu: Členovia triedy, ktoré sú vyhlásené za chránené, sú prístupné iba triede, ktorá je z nej odvodená. Všetky dátové členy triedy sú vyhlásené za chránené pridaním jediného znaku podčiarknutia „_“ pred dátové členy danej triedy.
    • Modifikátor súkromného prístupu: Členovia triedy, ktorí sú deklarovaní ako súkromné, sú prístupné iba v rámci triedy, modifikátor súkromného prístupu je najbezpečnejším modifikátorom prístupu. Dátové členy triedy sú deklarované ako súkromné ​​pridaním dvojitého podčiarknutia „__“ pred dátový člen danej triedy.

    49. Čo sú unit testy v Pythone?

    Unit Testing je prvá úroveň testovania softvéru, kde sa testujú najmenšie testovateľné časti softvéru. Používa sa na overenie, či každá jednotka softvéru funguje tak, ako bola navrhnutá. Rámec testovania jednotiek je rámec štýlu xUnit Pythonu. Na testovanie jednotiek sa používa metóda White Box Testing.

    50. Python Global Interpreter Lock (GIL)?

    Python Global Interpreter Lock (GIL) je typ zámku procesov, ktorý Python používa vždy, keď sa zaoberá procesmi. Vo všeobecnosti Python používa iba jedno vlákno na vykonanie sady písomných príkazov. Výkon jednovláknového procesu a viacvláknového procesu bude rovnaký v Pythone a je to kvôli GIL v Pythone. V Pythone nemôžeme dosiahnuť multithreading, pretože máme globálny zámok interpreta, ktorý obmedzuje vlákna a funguje ako jedno vlákno.

    51. Čo sú anotácie funkcií v Pythone?

    Anotácia funkcie je funkcia, ktorá vám umožňuje pridávať metadáta k parametrom funkcií a návratovým hodnotám. Týmto spôsobom môžete určiť typ vstupu parametrov funkcie a návratový typ hodnoty, ktorú funkcia vráti.

    Anotácie funkcií sú ľubovoľné výrazy Pythonu, ktoré sú spojené s rôznymi časťami funkcií. Tieto výrazy sa vyhodnocujú v čase kompilácie a v runtime prostredí Pythonu nemajú žiadnu životnosť. Python týmto anotáciám nepripisuje žiadny význam. Berú život, keď ich interpretujú knižnice tretích strán, napríklad mypy.

    52. Čo sú skupiny výnimiek v Pythone?

    Najnovšia funkcia Pythonu 3.11, Skupiny výnimiek . Skupina ExceptionGroup môže byť spracovaná pomocou novej syntaxe okrem*. Symbol * označuje, že každá klauzula okrem* môže spracovať viacero výnimiek.

    ExceptionGroup je kolekcia/skupina rôznych druhov výnimiek. Bez vytvárania viacerých výnimiek môžeme zoskupiť rôzne výnimky, ktoré môžeme neskôr načítať jednu po druhej, kedykoľvek je to potrebné, pri ich volaní nezáleží na poradí, v akom sú výnimky uložené v skupine výnimiek.

    Python3
    try: raise ExceptionGroup('Example ExceptionGroup', ( TypeError('Example TypeError'), ValueError('Example ValueError'), KeyError('Example KeyError'), AttributeError('Example AttributeError') )) except* TypeError: ... except* ValueError as e: ... except* (KeyError, AttributeError) as e: ...>

    53. Čo je to príkaz Python Switch

    Od verzie 3.10 vyššie Python implementoval funkciu prepínača nazývanú štrukturálne porovnávanie vzorov. Túto funkciu môžete implementovať pomocou kľúčových slov so zhodou a veľkými písmenami. Všimnite si, že symbol podčiarknutia je to, čo používate na definovanie predvoleného prípadu pre príkaz switch v Pythone.

    Poznámka : Pred Pythonom 3.10 Python nepodporuje príkazy zhody.

    Python3
    match term: case pattern-1: action-1 case pattern-2: action-2 case pattern-3: action-3 case _: action-default>

    54. Čo je operátor mrožov?

    Operátor mrožov umožňuje priradiť hodnotu premennej vo výraze. To môže byť užitočné, keď potrebujete použiť hodnotu viackrát v slučke, ale nechcete opakovať výpočet.

    Operátor Walrus je reprezentovaný syntaxou `:=` a možno ho použiť v rôznych kontextoch vrátane slučiek while a príkazov if.

    Poznámka: Verzie Pythonu staršie ako 3.8 nepodporujú operátora Walrus.

    Python3
    names = ['Jacob', 'Joe', 'Jim'] if (name := input('Enter a name: ')) in names: print(f'Hello, {name}!') else: print('Name not found.')>