logo

50+ nejlepších otázek a odpovědí na rozhovory v Pythonu (nejnovější 2024)

Python je díky svému výkonu a výkonným knihovnám nejpoužívanějším jazykem ve špičkových společnostech, jako jsou Intel, IBM, NASA, Pixar, Netflix, Facebook, JP Morgan Chase, Spotify a mnoha dalších. Chcete-li se dostat do těchto společností a organizací jako vývojář Pythonu, musíte zvládnout některé důležité Otázky k pohovoru v Pythonu prolomit jejich Python Online Assessment Round a Python Interview Round. Připravili jsme seznam 50 nejčastějších otázek k rozhovoru v Pythonu spolu s jejich odpověďmi na eso v rozhovorech.

Otázky k pohovoru v Pythonu



Obsah

Základní otázky k pohovoru v Pythonu pro začátečníky

Python je široce používaný univerzální programovací jazyk na vysoké úrovni. Byl vytvořen Guido van Rossum v roce 1991 a dále rozvíjen Python Software Foundation. Byl navržen s důrazem na čitelnost kódu a jeho syntaxe umožňuje programátorům vyjádřit své koncepty v menším počtu řádků kódu.
Používá se pro:

  • Systémové skriptování
  • Vývoj webu
  • Vývoj her
  • Vývoj softwaru
  • Komplexní matematika

2. Jaké jsou výhody použití jazyka Python jako nástroje v tomto scénáři?

Níže jsou uvedeny výhody používání jazyka Python:



  • Objektově orientovaný jazyk
  • Jazyk na vysoké úrovni
  • Dynamicky typovaný jazyk
  • Rozsáhlá podpora knihoven
  • Přítomnost modulů třetích stran
  • Open source a komunitní rozvoj
  • Přenosné a interaktivní
  • Přenosné mezi operačními systémy

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

Ve skutečnosti je Python částečně kompilovaný jazyk a částečně interpretovaný jazyk. Část kompilace se provádí jako první, když provádíme náš kód, a to interně vygeneruje bajtový kód, tento bajtový kód se převede virtuálním strojem Python (p.v.m) podle základní platformy (stroj + operační systém).

4. Co dělá symbol ‚#‘ v Pythonu?

„#“ se používá ke komentování všeho, co následuje na řádku.

6. Jak se v Pythonu předávají argumenty hodnotou nebo odkazem?

Vše v Pythonu je objekt a všechny proměnné obsahují odkazy na objekty. Referenční hodnoty jsou podle funkcí; v důsledku toho nemůžete změnit hodnotu odkazů. Objekty však můžete změnit, pokud jsou proměnlivé.

7. Jaký je rozdíl mezi sadou a slovníkem?

Sada je neuspořádaná kolekce datových typů, která je iterovatelná, měnitelná a nemá žádné duplicitní prvky.
Slovník v Pythonu je uspořádaná kolekce datových hodnot, která se používá k ukládání datových hodnot jako mapa.

8. Co je to List Comprehension? Uveďte příklad.

Porozumění seznamu je konstrukce syntaxe, která usnadňuje vytváření seznamu na základě existujících iterovatelných.

Například:

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

9. Co je to funkce lambda?

Funkce lambda je anonymní funkce. Tato funkce může mít libovolný počet parametrů, ale může mít pouze jeden příkaz. Například:

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

10. Co je to pass v Pythonu?

Pass znamená neprovádět žádnou operaci nebo jinými slovy, je to zástupný symbol ve složeném příkazu, kde by mělo zůstat prázdné místo a nemusí se tam nic psát.

11. Jaký je rozdíl mezi / a // v Pythonu?

/ představuje přesné dělení (výsledkem je číslo s plovoucí desetinnou čárkou), zatímco // představuje dělení podlahy (výsledkem je celé číslo). Například:

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

12. Jak se v Pythonu provádí výjimečné zacházení?

Existují 3 hlavní klíčová slova, tj. try, kromě a nakonec, která se používají k zachycení výjimek a odpovídajícímu zacházení s mechanismem obnovy. Try je blok kódu, který je sledován na chyby. Kromě toho, že se blok spustí, když dojde k chybě.

Krása posledního bloku spočívá ve spuštění kódu po pokusu o chybu. Tento blok se provede bez ohledu na to, zda došlo k chybě nebo ne. Nakonec se blok používá k provedení požadovaných činností čištění objektů/proměnných.

binární strom vs binární vyhledávací strom

13. Co je funkce swapcase v Pythonu?

Je to funkce řetězce, která převádí všechna velká písmena na malá a naopak. Používá se ke změně existujícího případu řetězce. Tato metoda vytvoří kopii řetězce, který obsahuje všechny znaky ve swap case. Například:

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

14. Rozdíl mezi smyčkou for a smyčkou while v Pythonu

Smyčka for se obecně používá k iteraci prvků různých typů kolekcí, jako je např Seznam , Tuple , Soubor , a Slovník . Vývojáři používají cyklus for, kde mají podmínky začátek i konec. Zatímco smyčka while je skutečná funkce smyčky, která se používá v jakémkoli jiném programovacím jazyce. Programátoři používají smyčku while v Pythonu, kde mají pouze koncové podmínky.

15. Můžeme předat funkci jako argument v Pythonu?

Ano, funkci lze předat několik argumentů, včetně objektů, proměnných (stejných nebo odlišných datových typů) a funkcí. Funkce lze předávat jako parametry jiným funkcím, protože se jedná o objekty. Funkce vyššího řádu jsou funkce, které mohou mít jiné funkce jako argumenty.

Další informace naleznete v článku: Předávání funkce jako argumentu v Pythonu

16. Co jsou *argové a *kwargové?

Chcete-li předat funkci v Pythonu proměnný počet argumentů, použijte speciální syntaxi *args a **kwargs ve specifikaci funkce. Používá se k předání seznamu argumentů proměnné délky bez klíčových slov. Použitím * se proměnná, kterou spojujeme s *, stane iterovatelnou, což vám umožní provádět s ní operace, jako je iterace a použití operací vyššího řádu, jako je mapa a filtr.

17. Je v Pythonu vyžadováno odsazení?

Ano, odsazení je vyžadován v Pythonu. A Krajta Interpret může být informován, že skupina příkazů patří do konkrétního bloku kódu pomocí odsazení Pythonu. Díky odsazení je kód snadno čitelný pro vývojáře ve všech programovacích jazycích, ale v Pythonu je velmi důležité odsadit kód v určitém pořadí.

18. Co je rozsah v Pythonu?

Místo, kde můžeme najít proměnnou a také k ní v případě potřeby přistupovat, se nazývá rozsah proměnné.

  • Místní proměnná Pythonu: Lokální proměnné jsou ty, které jsou inicializovány v rámci funkce a jsou pro tuto funkci jedinečné. Nelze k němu přistupovat mimo funkci.
  • Globální proměnné Pythonu: Globální proměnné jsou ty, které jsou definovány a deklarovány mimo jakoukoli funkci a nejsou specifikovány pro žádnou funkci.
  • Rozsah na úrovni modulu: Odkazuje na globální objekty aktuálního modulu přístupné v programu.
  • Nejvzdálenější rozsah: Odkazuje na jakékoli vestavěné názvy, které může program volat. Odkazovaný název se nachází na posledním místě mezi objekty v tomto oboru.

19. Co je docstring v Pythonu?

Dokumentační řetězce Pythonu (nebo docstrings) poskytují pohodlný způsob, jak přidružit dokumentaci k modulům, funkcím, třídám a metodám Pythonu.

  • Deklarování Docstrings: Dokumentační řetězce jsou deklarovány pomocí „trojitých jednoduchých uvozovek“ nebo trojitých dvojitých uvozovek těsně pod deklarací třídy, metody nebo funkce. Všechny funkce by měly mít docstring.
  • Přístup k řetězcům dokumentů: K docstrings lze přistupovat pomocí metody __doc__ objektu nebo pomocí funkce nápovědy.

20. Co je to dynamicky typovaný jazyk?

Zadané jazyky jsou jazyky, ve kterých definujeme typ datového typu a bude ho znát stroj při kompilaci nebo za běhu. Typované jazyky lze rozdělit do dvou kategorií:

  • Staticky zadávané jazyky: V tomto typu jazyka je datový typ proměnné znám v době kompilace, což znamená, že programátor musí specifikovat datový typ proměnné v době její deklarace.
  • Dynamicky zadávané jazyky: Jedná se o jazyky, které nevyžadují žádný předdefinovaný datový typ pro žádnou proměnnou, protože ji za běhu interpretuje samotný stroj. V těchto jazycích přiřazují interpreti datový typ proměnné za běhu v závislosti na její hodnotě.

21. Co je přerušení, pokračování a předání v Pythonu?

The příkaz break se používá k ukončení smyčky nebo příkazu, ve kterém je přítomen. Poté ovládací prvek předá příkazům, které jsou přítomny po příkazu break, pokud jsou k dispozici.

Pokračovat je také příkazem pro řízení smyčky, stejně jako příkaz break. Příkaz continue je opačný než příkaz break, namísto ukončení cyklu nutí provést další iteraci cyklu.

Složit znamená neprovádět žádnou operaci nebo jinými slovy, je to zástupný symbol ve složeném příkazu, kde by mělo zůstat prázdné a nemusí se tam nic psát.

číselné: Číselný datový typ v Pythonu představuje data, která mají číselnou hodnotu. Číselná hodnota může být celé číslo, plovoucí číslo nebo logická hodnota , nebo dokonce komplexní číslo.
  • Typ sekvence: T Datový typ sekvence v Pythonu je uspořádaná kolekce podobných nebo různých datových typů. V Pythonu existuje několik typů sekvencí:
  • Typy mapování: V Pythonu lze hašovatelná data mapovat na náhodné objekty pomocí mapovacího objektu. V současné době existuje pouze jeden společný typ mapování, slovník a objekty mapování jsou proměnlivé.
  • Typy sad: V Pythonu, a Soubor je neuspořádaná kolekce datových typů, která je iterovatelná, měnitelná a nemá žádné duplicitní prvky. Pořadí prvků v sadě není definováno, ačkoli se může skládat z různých prvků.
  • 23. Jak zadáte číslo v Pythonu?

    Matematický modul Pythonu obsahuje metodu, kterou lze použít k výpočtu dna čísla.

    • podlaha() metoda v Pythonu vrací dno x, tj. největší celé číslo ne větší než x.
    • Také metoda ceil(x) v Pythonu vrací maximální hodnotu x, tj. nejmenší celé číslo větší nebo rovné x.

    Pokročilé otázky k pohovoru v Pythonu

    24. Jaký je rozdíl mezi funkcemi xrange a range?

    range() a xrange() jsou dvě funkce, které lze použít k určitému počtu opakování v cyklech for v Pythonu. V Pythonu 3 není xrange, ale funkce range se chová jako xrange v Pythonu 2.

    • rozsah() – Vrátí seznam čísel vytvořených pomocí funkce range().
    • xrange() – Tato funkce vrací objekt generátoru, který lze použít k zobrazení čísel pouze zacyklením. Jediný konkrétní rozsah je zobrazen na požádání, a proto je volán líné hodnocení .

    25. Co je porozumění slovníku? Uveďte příklad

    Dictionary Comprehension je konstrukce syntaxe, která usnadňuje vytváření slovníku založeného na existující iterovatelnosti.

    Například: my_dict = {i:i+7 pro i v rozsahu(1, 10)}

    26. Je Tuple Comprehension? Pokud ano, jak a pokud ne proč?

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

    N-ticové porozumění není v Pythonu možné, protože skončí v generátoru, nikoli v n-ticovém porozumění.

    27. Rozdíl mezi Listem a Tuplem?

    Pojďme analyzovat rozdíly mezi Listem a Tuple:

    vysvětlit nezávislost dat

    Seznam

    • Seznamy jsou proměnlivé datové typy.
    • Seznamy zabírají více paměti
    • Seznam je lepší pro provádění operací, jako je vkládání a mazání.
    • Implikace iterací je časově náročná

    Tuple

    • N-tice jsou neměnný datový typ.
    • Tuple spotřebovává méně paměti ve srovnání se seznamem
    • Datový typ Tuple je vhodný pro přístup k prvkům
    • Implikace iterací je poměrně rychlejší

    28. Jaký je rozdíl mezi mělkou kopií a hlubokou kopií?

    Mělká kopie se používá, když je vytvořen nový typ instance a uchovává hodnoty, které jsou zkopírovány, zatímco hluboká kopie ukládá hodnoty, které již jsou zkopírovány.

    Mělká kopie má rychlejší provádění programu, zatímco hluboká kopie jej zpomaluje.

    29. Jakou techniku ​​řazení používají funkce sort() a sort() pythonu?

    Python používá Tim Sort algoritmus pro řazení. Je to stabilní řazení, jehož nejhorší případ je O(N log N). Jedná se o hybridní třídicí algoritmus odvozený od slučovacího třídění a vkládání, navržený tak, aby fungoval dobře na mnoha druzích reálných dat.

    30. Co jsou to dekoratéři?

    Dekorátory jsou velmi mocným a užitečným nástrojem v Pythonu, protože jsou specifickou změnou, kterou provádíme v syntaxi Pythonu, abychom snadno změnili funkce.

    31. Jak ladíte program Python?

    Pomocí tohoto příkazu můžeme ladit program Python:

    $ python -m pdb python-script.py>

    32. Co jsou iterátory v Pythonu?

    V Pythonu se iterátory používají k iteraci skupiny prvků, kontejnerů jako je seznam. Iterátory jsou kolekce položek a mohou to být seznam, n-tice nebo slovník. Iterátor Pythonu implementuje __itr__ a metodu next() k iteraci uložených prvků. Obecně používáme smyčky k iteraci nad kolekcemi (seznam, n-tice) v Pythonu.

    33. Co jsou generátory v Pythonu?

    V Pythonu je generátor způsob, který určuje, jak implementovat iterátory. Je to normální funkce kromě toho, že poskytuje výraz ve funkci. Neimplementuje metody __itr__ a next() a také snižuje další režii.

    Pokud funkce obsahuje alespoň příkaz výnosu, stává se generátorem. Klíčové slovo výnos pozastaví aktuální provádění uložením jeho stavů a ​​v případě potřeby se od stejného obnoví.

    34. Podporuje Python vícenásobnou dědičnost?

    Python na rozdíl od Javy podporuje vícenásobnou dědičnost. Vícenásobná dědičnost znamená, že třídu lze odvodit z více než jedné nadřazené třídy.

    35. Co je to polymorfismus v Pythonu?

    Polymorfismus znamená schopnost mít více podob. Pokud má tedy například rodičovská třída metodu pojmenovanou ABC, pak může mít podřízená třída také metodu se stejným názvem ABC, která má své vlastní parametry a proměnné. Python umožňuje polymorfismus.

    36. Definujte zapouzdření v Pythonu?

    Zapouzdření znamená spojení kódu a dat dohromady. Třída Python je příkladem zapouzdření.

    38. Jak se v Pythonu provádí správa paměti?

    Python používá svůj soukromý prostor haldy ke správě paměti. V zásadě jsou všechny objekty a datové struktury uloženy v soukromém prostoru haldy. Do tohoto soukromého prostoru nemá přístup ani programátor, protože o tento prostor se stará tlumočník. Python má také vestavěný garbage collector, který recykluje veškerou nevyužitou paměť a uvolňuje paměť a zpřístupňuje ji prostoru haldy.

    39. Jak smazat soubor pomocí Pythonu?

    Soubor můžeme odstranit pomocí Pythonu následujícími postupy:

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

    40. Co je slicování v Pythonu?

    Python Slicing je řetězcová operace pro extrakci části řetězce nebo některé části seznamu. Pomocí tohoto operátoru lze určit, kde začít krájení, kde skončit, a určit krok. Rozdělení seznamu vrátí nový seznam ze stávajícího seznamu.

    Syntax: Lst[ Initial : End : IndexJump ]>

    41. Co je jmenný prostor v Pythonu?

    Jmenný prostor je systém pojmenování, který se používá k zajištění toho, aby jména byla jedinečná, aby se zabránilo konfliktům pojmenování.

    Otázky a odpovědi pro pokročilé rozhovory v Pythonu

    42. Co je PIP?

    PIP je zkratka pro Python Installer Package, která poskytuje bezproblémové rozhraní pro instalaci různých modulů Pythonu. Jedná se o nástroj příkazového řádku, který dokáže vyhledávat balíčky přes internet a instalovat je bez jakékoli interakce uživatele.

    43. Co je to funkce zip?

    Funkce zip() Pythonu vrací objekt zip, který mapuje podobný index více kontejnerů. Vezme iterovatelnou, převede ji na iterátor a agreguje prvky na základě předávaných iterovatelných položek. Vrací iterátor n-tic.

    44. Co je moření a odmořování?

    Modul Pickle přijímá jakýkoli objekt Pythonu a převádí jej na řetězcovou reprezentaci a vypisuje jej do souboru pomocí funkce dump, tento proces se nazývá moření. Zatímco proces načítání původních objektů Pythonu z uložené reprezentace řetězce se nazývá unpickling.

    45. Co je opičí záplatování v Pythonu?

    V Pythonu se termín opičí oprava týká pouze dynamických úprav třídy nebo modulu za běhu.

    # 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. ​​Co je __init__() v Pythonu?

    Ekvivalent konstruktorů v terminologii OOP, __init__ je rezervovaná metoda ve třídách Pythonu. Metoda __init__ je volána automaticky při každém inicializaci nového objektu. Tato metoda přiděluje paměť novému objektu, jakmile je vytvořen. Tuto metodu lze také použít k inicializaci proměnných.

    47. Napište kód pro zobrazení aktuálního času?

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

    48. Co jsou specifikátory přístupu v Pythonu?

    Python používá symbol „_“ k určení řízení přístupu pro konkrétní datový člen nebo členskou funkci třídy. Třída v Pythonu má tři typy Modifikátory přístupu k Pythonu :

    • Modifikátor veřejného přístupu: Členové třídy, kteří jsou deklarováni jako veřejní, jsou snadno přístupní z jakékoli části programu. Všechny datové členy a členské funkce třídy jsou standardně veřejné.
    • Modifikátor chráněného přístupu: Členové třídy, které jsou deklarovány jako chráněné, jsou přístupné pouze třídě, která je z ní odvozena. Všechny datové členy třídy jsou prohlášeny za chráněné přidáním jediného podtržítka „_“ před datové členy dané třídy.
    • Modifikátor soukromého přístupu: Členové třídy, které jsou deklarovány jako soukromé, jsou přístupné pouze v rámci třídy, modifikátor soukromého přístupu je nejbezpečnějším modifikátorem přístupu. Datové členy třídy jsou prohlášeny za soukromé přidáním dvojitého podtržítka „__“ před datový člen dané třídy.

    49. Co jsou unit testy v Pythonu?

    Unit Testing je první úroveň testování softwaru, kde se testují nejmenší testovatelné části softwaru. To se používá k ověření, že každá jednotka softwaru funguje tak, jak byla navržena. Rámec pro testování jednotek je rámec ve stylu xUnit Pythonu. Pro testování jednotek se používá metoda White Box Testing.

    50. Python Global Interpreter Lock (GIL)?

    Python Global Interpreter Lock (GIL) je typ zámku procesu, který Python používá, kdykoli se zabývá procesy. Obecně Python používá pouze jedno vlákno k provedení sady písemných příkazů. Výkon jednovláknového procesu a vícevláknového procesu bude v Pythonu stejný, a to kvůli GIL v Pythonu. V Pythonu nemůžeme dosáhnout multithreadingu, protože máme globální zámek interpretu, který omezuje vlákna a funguje jako jediné vlákno.

    51. Co jsou funkční anotace v Pythonu?

    Funkce Anotace je funkce, která umožňuje přidávat metadata k parametrům funkcí a návratovým hodnotám. Tímto způsobem můžete určit vstupní typ parametrů funkce a návratový typ hodnoty, kterou funkce vrací.

    Anotace funkcí jsou libovolné výrazy Pythonu, které jsou spojeny s různými částmi funkcí. Tyto výrazy se vyhodnocují v době kompilace a v běhovém prostředí Pythonu nemají žádnou životnost. Python těmto anotacím nepřikládá žádný význam. Berou život, když je interpretují knihovny třetích stran, například mypy.

    52. Co jsou skupiny výjimek v Pythonu?

    Nejnovější funkce Pythonu 3.11, Skupiny výjimek . Skupina ExceptionGroup může být zpracována pomocí nové syntaxe kromě*. Symbol * označuje, že každá klauzule kromě* může zpracovat více výjimek.

    ExceptionGroup je kolekce/skupina různých druhů výjimek. Bez vytváření více výjimek můžeme seskupit různé výjimky, které můžeme později načítat jednu po druhé, kdykoli je to nutné, při jejich volání nezáleží na pořadí, ve kterém jsou výjimky uloženy ve skupině výjimek.

    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. Co je příkaz Python Switch

    Od verze 3.10 výše Python implementoval funkci přepínače zvanou strukturální porovnávání vzorů. Tuto funkci můžete implementovat pomocí klíčových slov se shodou a velikostí písmen. Všimněte si, že symbol podtržení je to, co používáte k definování výchozího případu pro příkaz switch v Pythonu.

    Poznámka : Před Pythonem 3.10 Python nepodporuje příkazy shody.

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

    54. Co je Mrož Operator?

    Operátor mrože umožňuje přiřadit hodnotu proměnné ve výrazu. To může být užitečné, když potřebujete použít hodnotu vícekrát ve smyčce, ale nechcete opakovat výpočet.

    Operátor Walrus je reprezentován syntaxí `:=` a lze jej použít v různých kontextech včetně cyklů while a příkazů if.

    Poznámka: Verze Pythonu před 3.8 nepodporují Walrus Operator.

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


    vznášející se css