Python は、そのパフォーマンスと強力なライブラリにより、Intel、IBM、NASA、Pixar、Netflix、Facebook、JP Morgan Chase、Spotify などの一流企業で最も使用されている言語です。 Python 開発者としてこれらの企業や組織に参入するには、いくつかの重要な知識を習得する必要があります。 Python の面接の質問 Python オンライン評価ラウンドと Python 面接ラウンドに合格するためです。のリストを用意しました。 Python の面接でよく聞かれる質問トップ 50 インタビューでのエースへの答えとともに。
Python の面接の質問
目次
- 新人向けの Python 面接の基本的な質問
- 1. Python とは何ですか?テクノロジーの世界で人気のある Python のアプリケーションをいくつか挙げてください。
- 2. 現在のシナリオで Python 言語をツールとして使用する利点は何ですか?
- 3. Python はコンパイル言語ですか、それともインタプリタ言語ですか?
- 4. Python では「#」記号は何をしますか?
- 6. Python では引数はどのように値または参照によって渡されますか?
- 7. セットと辞書の違いは何ですか?
- 8. リスト内包表記とは何ですか?例を挙げる。
- 9. ラムダ関数とは何ですか?
- 10. Python のパスとは何ですか?
- 11. Python の / と // の違いは何ですか?
- 12. Python では例外処理はどのように行われますか?
- 13. Python の swapcase 関数とは何ですか?
- 14. Pythonのforループとwhileループの違い
- 15. Python で関数を引数として渡すことはできますか?
- 16. *args と *kwargs とは何ですか?
- 17. Python ではインデントは必要ですか?
- 18. Python のスコープとは何ですか?
- 19. Python の docstring とは何ですか?
- 20. 動的型付け言語とは何ですか?
- 21. Python の Break、Continue、および Pass とは何ですか?
- 23. Python で数値をフロアリングするにはどうすればよいですか?
- Python 面接の中級質問
- 24. xrange 関数と range 関数の違いは何ですか?
- 25. 辞書読解とは何ですか?例を挙げる
- 26. タプル内包とは何ですか?はいの場合はどのように、そうでない場合はその理由を教えてください。
- 27. リストとタプルの違いは?
- 28. 浅いコピーと深いコピーの違いは何ですか?
- 29. Pythonのsort()およびsorted()関数で使用されるソート手法はどれですか?
- 30. デコレータとは何ですか?
- 31. Python プログラムはどのようにデバッグしますか?
- 32. Python のイテレータとは何ですか?
- 33. Python のジェネレーターとは何ですか?
- 34. Python は多重継承をサポートしていますか?
- 35. Pythonのポリモーフィズムとは何ですか?
- 36. Python でカプセル化を定義しますか?
- 38. Python ではメモリ管理はどのように行われますか?
- 39. Python を使用してファイルを削除するにはどうすればよいですか?
- 40. Python のスライスとは何ですか?
- 41. Python の名前空間とは何ですか?
- 高度な Python インタビューの質問と回答
- 42. PIPとは何ですか?
- 43. zip関数とは何ですか?
- 44. 酸洗いと解凍とは何ですか?
- 45. Python のモンキーパッチとは何ですか?
- 46. Python の __init__() とは何ですか?
- 47. 現在時刻を表示するコードを書きますか?
- 48. Python のアクセス指定子とは何ですか?
- 49. Python の単体テストとは何ですか?
- 50. Python グローバル インタプリタ ロック (GIL)?
- 51. Pythonの関数アノテーションとは何ですか?
- 52. Python の例外グループとは何ですか?
- 53. Python Switch文とは
- 54.セイウチオペレーターとは何ですか?
新人向けの Python 面接の基本的な質問
1. Python とは何ですか?テクノロジーの世界で人気のある Python のアプリケーションをいくつか挙げてください。
Python は、広く使用されている汎用の高水準プログラミング言語です。 1991 年に Guido van Rossum によって作成され、Python Software Foundation によってさらに開発されました。コードの読みやすさに重点を置いて設計されており、その構文によりプログラマーはより少ないコード行で概念を表現できます。
これは次の目的で使用されます。
- システムスクリプト
- ウェブ開発
- ゲーム開発
- ソフトウェア開発
- 複雑な数学
2. 現在のシナリオで Python 言語をツールとして使用する利点は何ですか?
Python 言語を使用する利点は次のとおりです。
- オブジェクト指向言語
- 高級言語
- 動的に型付けされた言語
- 広範なサポート ライブラリ
- サードパーティモジュールの存在
- オープンソースとコミュニティ開発
- ポータブルかつインタラクティブ
- オペレーティング システム間で移植可能
3. Python はコンパイル言語ですか、それともインタプリタ言語ですか?
実際、Python は部分的にコンパイルされ、部分的にインタープリタされた言語です。コードを実行すると、最初にコンパイル部分が実行され、内部でバイト コードが生成されます。このバイト コードは、基盤となるプラットフォーム (マシン + オペレーティング システム) に従って Python 仮想マシン (p.v.m) によって変換されます。
4. Python では「#」記号は何をしますか?
「#」は、その行の後に続くすべてのものについてコメントするために使用されます。
6. Python では引数はどのように値または参照によって渡されますか?
Python ではすべてがオブジェクトであり、すべての変数はオブジェクトへの参照を保持します。参考値は機能に応じたものです。その結果、参照の値を変更することはできません。ただし、オブジェクトが可変であれば変更できます。
7. セットと辞書の違いは何ですか?
このセットは、反復可能かつ変更可能で、重複する要素を持たないデータ型の順序付けされていないコレクションです。
Python の辞書は、データ値の順序付けされたコレクションであり、マップのようにデータ値を格納するために使用されます。
8. リスト内包表記とは何ですか?例を挙げる。
リスト内包表記は、既存の反復可能オブジェクトに基づいてリストの作成を容易にするための構文構築です。
例えば:
my_list = [i for i in range(1, 10)]>
9. ラムダ関数とは何ですか?
ラムダ関数は匿名関数です。この関数には任意の数のパラメーターを含めることができますが、ステートメントは 1 つだけ含めることができます。例えば:
a = lambda x, y : x*y print(a(7, 19))>
10. Python のパスとは何ですか?
パスとは、何も操作を実行しないことを意味します。つまり、複合ステートメント内のプレースホルダーであり、空白を残してそこに何も記述する必要はありません。
11. Python の / と // の違いは何ですか?
/ は正確な除算 (結果は浮動小数点数) を表し、// はフロア除算 (結果は整数) を表します。例えば:
5//2 = 2 5/2 = 2.5>
12. Python では例外処理はどのように行われますか?
Try、Except、finally という 3 つの主なキーワードがあり、これらは例外をキャッチし、それに応じて回復メカニズムを処理するために使用されます。 Try は、エラーが監視されるコードのブロックです。例外ブロックはエラー発生時に実行されます。
最後のブロックの利点は、エラーを試みた後にコードが実行されることです。このブロックは、エラーが発生したかどうかに関係なく実行されます。最後に、ブロックを使用して、オブジェクト/変数の必要なクリーンアップ アクティビティを実行します。
13. Python の swapcase 関数とは何ですか?
これは、すべての大文字を小文字に、またはその逆に変換する文字列の関数です。これは、文字列の既存の大文字と小文字を変更するために使用されます。このメソッドは、スワップケース内のすべての文字を含む文字列のコピーを作成します。例えば:
string = 'techcodeview.com' string.swapcase() --->'gEEKSFORgEEKS'>>
14. Pythonのforループとwhileループの違い
for ループは通常、次のようなさまざまなコレクション タイプの要素を反復処理するために使用されます。 リスト 、 タプル 、 セット 、 そして 辞書 。開発者は、開始条件と終了条件の両方を含む for ループを使用します。一方、while ループは、他のプログラミング言語で使用される実際のループ機能です。プログラマーは、終了条件だけを指定する Python while ループを使用します。
15. Python で関数を引数として渡すことはできますか?
はい、オブジェクト、変数 (同じまたは異なるデータ型)、関数など、複数の引数を関数に渡すことができます。関数はオブジェクトであるため、パラメータとして他の関数に渡すことができます。高階関数は、他の関数を引数として受け取ることができる関数です。
詳細については、次の記事を参照してください。 Pythonで関数を引数として渡す
16. *args と *kwargs とは何ですか?
Python で可変数の引数を関数に渡すには、特別な構文を使用します *args と **kwargs 関数仕様で。これは、可変長でキーワードのない引数リストを渡すために使用されます。 * を使用すると、* に関連付けられた変数が反復可能になり、反復処理やマップやフィルターなどの高次の操作などの操作を実行できるようになります。
17. Python ではインデントは必要ですか?
はい、 インデント Pythonでは必須です。あ パイソン インタプリタは、Python インデントを使用することで、ステートメントのグループがコードの特定のブロックに属していることを知ることができます。インデントにより、すべてのプログラミング言語の開発者にとってコードが読みやすくなりますが、Python では、コードを特定の順序でインデントすることが非常に重要です。
18. Python のスコープとは何ですか?
変数を見つけて必要に応じてアクセスできる場所は、変数のスコープと呼ばれます。
- Python ローカル変数: ローカル変数は、関数内で初期化され、その関数に固有のものです。関数外からはアクセスできません。
- Python グローバル変数: グローバル変数は、関数の外で定義および宣言され、関数には指定されない変数です。
- モジュールレベルのスコープ: これは、プログラム内でアクセス可能な現在のモジュールのグローバル オブジェクトを指します。
- 最も外側のスコープ: これは、プログラムが呼び出すことができる組み込みの名前を指します。参照される名前は、このスコープ内のオブジェクトの最後に位置します。
19. Python の docstring とは何ですか?
Python ドキュメント文字列 (または docstring) は、ドキュメントを Python モジュール、関数、クラス、メソッドに関連付ける便利な方法を提供します。
- docstring の宣言: docstring は、クラス、メソッド、または関数の宣言のすぐ下で「三重一重引用符」または三重二重引用符を使用して宣言されます。すべての関数には docstring が必要です。
- ドキュメント文字列へのアクセス: docstring には、オブジェクトの __doc__ メソッドまたは help 関数を使用してアクセスできます。
20. 動的型付け言語とは何ですか?
入力された言語 はデータ型の型を定義する言語であり、コンパイル時または実行時にマシンに認識されます。型付き言語は 2 つのカテゴリに分類できます。
- 静的に型付けされた言語: このタイプの言語では、変数のデータ型はコンパイル時にわかります。つまり、プログラマは変数の宣言時に変数のデータ型を指定する必要があります。
- 動的型付け言語: これらの言語は、実行時にマシン自体によって解釈されるため、変数に事前定義されたデータ型を必要としません。これらの言語では、インタープリターは実行時に変数の値に応じてデータ型を変数に割り当てます。
21. Python の Break、Continue、および Pass とは何ですか?
の ブレークステートメント は、それが存在するループまたはステートメントを終了するために使用されます。その後、制御は、利用可能な場合、break ステートメントの後に存在するステートメントに渡されます。
続く これも、break ステートメントと同様にループ制御ステートメントです。 continue ステートメントは、break ステートメントの反対で、ループを終了する代わりに、ループの次の繰り返しを強制的に実行します。
合格 これは、何も操作を実行しないことを意味します。言い換えれば、これは複合ステートメント内のプレースホルダーであり、空白を残してそこに何も記述する必要はありません。
数値: Python の数値データ型は、数値を持つデータを表します。数値には、整数、浮動小数点数、ブール値を使用できます。 、 あるいは複素数でも構いません。
23. Python で数値をフロアリングするにはどうすればよいですか?
Python 数学モジュールには、数値の下限を計算するために使用できるメソッドが含まれています。
- 床() Python のメソッドは x の下限、つまり x 以下の最大の整数を返します。
- また、Python のメソッド ceil(x) は、x の上限値、つまり x 以上の最小の整数を返します。
Python 面接の中級質問
24. xrange 関数と range 関数の違いは何ですか?
range() と xrange() は、Python の for ループで特定の回数反復するために使用できる 2 つの関数です。 Python 3 には xrange はありませんが、range 関数は Python 2 の xrange と同様に動作します。
- 範囲() – これは、 range() 関数を使用して作成された数値のリストを返します。
- xrange() – この関数は、ループすることによってのみ数値を表示するために使用できるジェネレーター オブジェクトを返します。特定の範囲のみがオンデマンドで表示されるため、 遅延評価 。
25. 辞書読解とは何ですか?例を挙げる
Dictionary Comprehension は、既存の反復可能オブジェクトに基づいて辞書の作成を容易にするための構文構築です。
例えば: my_dict = {i:i+7 for i in range(1, 10)}
26. タプル内包とは何ですか?はいの場合はどのように、そうでない場合はその理由を教えてください。
(i for i in (1, 2, 3))>
タプル内包は最終的にタプル内包ではなくジェネレーターで処理されるため、Python ではタプル内包は不可能です。
27. リストとタプルの違いは?
リストとタプルの違いを分析してみましょう。
リスト
- リストは可変データ型です。
- リストはより多くのメモリを消費します
- リストは、挿入や削除などの操作を実行するのに適しています。
- 反復には時間がかかります
タプル
- タプルは不変のデータ型です。
- タプルはリストに比べてメモリ消費量が少ない
- タプル データ型は要素へのアクセスに適しています。
- 反復の意味は比較的高速です
28. 浅いコピーと深いコピーの違いは何ですか?
浅いコピーは、新しいインスタンス タイプが作成されるときに使用され、コピーされた値を保持しますが、深いコピーは既にコピーされた値を保存します。
浅いコピーではプログラムの実行が速くなりますが、深いコピーではプログラムの実行が遅くなります。
29. Pythonのsort()およびsorted()関数で使用されるソート手法はどれですか?
Python が使用するのは、 ティム・ソート 並べ替えのアルゴリズム。これは安定した並べ替えであり、最悪のケースは O(N log N) です。これは、マージ ソートと挿入ソートから派生したハイブリッド ソート アルゴリズムで、さまざまな種類の実世界のデータで適切に実行できるように設計されています。
30. デコレータとは何ですか?
デコレーターは、関数を簡単に変更するために Python 構文に加える特定の変更であるため、Python の非常に強力で便利なツールです。
31. Python プログラムはどのようにデバッグしますか?
このコマンドを使用すると、Python プログラムをデバッグできます。
$ python -m pdb python-script.py>
32. Python のイテレータとは何ですか?
Python では、イテレータは要素のグループ (リストのようなコンテナ) を反復するために使用されます。イテレータは項目のコレクションであり、リスト、タプル、または辞書にすることができます。 Python イテレーターは、格納された要素を反復するための __itr__ と next() メソッドを実装します。通常、Python ではループを使用してコレクション (リスト、タプル) を反復処理します。
33. Python のジェネレーターとは何ですか?
Python では、ジェネレーターはイテレーターの実装方法を指定する手段です。これは、関数内で式を生成する点を除けば、通常の関数です。 __itr__ と next() メソッドは実装されていないため、他のオーバーヘッドも軽減されます。
関数に少なくとも yield ステートメントが含まれている場合、その関数はジェネレーターになります。 yield キーワードは、状態を保存することで現在の実行を一時停止し、必要に応じて同じところから再開します。
34. Python は多重継承をサポートしていますか?
Java とは異なり、Python は複数の継承をサポートします。多重継承とは、クラスが複数の親クラスから派生できることを意味します。
35. Pythonのポリモーフィズムとは何ですか?
ポリモーフィズムとは、複数の形式を取る能力を意味します。したがって、たとえば、親クラスに ABC という名前のメソッドがある場合、子クラスも独自のパラメータと変数を持つ同じ名前 ABC のメソッドを持つことができます。 Python ではポリモーフィズムが可能です。
36. Python でカプセル化を定義しますか?
カプセル化とは、コードとデータを一緒にバインドすることを意味します。 Python クラスはカプセル化の例です。
38. Python ではメモリ管理はどのように行われますか?
Python はプライベート ヒープ領域を使用してメモリを管理します。基本的に、すべてのオブジェクトとデータ構造はプライベート ヒープ領域に保存されます。インタプリタがこの空間を管理するため、プログラマでもこのプライベート空間にアクセスすることはできません。 Python には、未使用のメモリをすべてリサイクルしてメモリを解放し、ヒープ領域で使用できるようにするガベージ コレクタも組み込まれています。
39. Python を使用してファイルを削除するにはどうすればよいですか?
次の方法で Python を使用してファイルを削除できます。
- os.remove()
- os.unlink()
40. Python のスライスとは何ですか?
パイソンのスライシング は、文字列の一部またはリストの一部を抽出する文字列操作です。この演算子を使用すると、スライスを開始する場所、終了する場所、およびステップを指定できます。リストのスライスでは、既存のリストから新しいリストが返されます。
Syntax: Lst[ Initial : End : IndexJump ]>
41. Python の名前空間とは何ですか?
ネームスペースは、名前の競合を避けるために名前が一意であることを確認するために使用される命名システムです。
高度な Python インタビューの質問と回答
42. PIPとは何ですか?
PIP は、Python インストーラー パッケージの頭字語で、さまざまな Python モジュールをインストールするためのシームレスなインターフェイスを提供します。これは、インターネット上でパッケージを検索し、ユーザーの介入なしでインストールできるコマンドライン ツールです。
43. zip関数とは何ですか?
Python zip() 関数は、複数のコンテナの同様のインデックスをマップする zip オブジェクトを返します。これは反復可能を受け取り、それを反復子に変換し、渡された反復可能に基づいて要素を集約します。タプルのイテレータを返します。
44. 酸洗いと解凍とは何ですか?
Pickle モジュールは任意の Python オブジェクトを受け入れ、それを文字列表現に変換し、ダンプ関数を使用してファイルにダンプします。このプロセスはピックリングと呼ばれます。一方、保存された文字列表現から元の Python オブジェクトを取得するプロセスは、アンピックリングと呼ばれます。
45. Python のモンキーパッチとは何ですか?
Python では、モンキー パッチという用語は、実行時のクラスまたはモジュールの動的変更のみを指します。
# 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. Python の __init__() とは何ですか?
OOP 用語のコンストラクターに相当する __init__ は、Python クラスの予約メソッドです。 __init__ メソッドは、新しいオブジェクトが開始されるたびに自動的に呼び出されます。このメソッドは、新しいオブジェクトが作成されるとすぐに、そのオブジェクトにメモリを割り当てます。このメソッドは変数の初期化にも使用できます。
forループJava
47. 現在時刻を表示するコードを書きますか?
import time currenttime= time.localtime(time.time()) print (Current time is, currenttime)>
48. Python のアクセス指定子とは何ですか?
Python は「_」記号を使用して、特定のデータ メンバーまたはクラスのメンバー関数のアクセス制御を決定します。 Python のクラスには 3 つのタイプがあります。 Python アクセス修飾子 :
- パブリックアクセス修飾子: public として宣言されたクラスのメンバーには、プログラムのどの部分からでも簡単にアクセスできます。クラスのすべてのデータ メンバーとメンバー関数は、デフォルトでパブリックです。
- 保護されたアクセス修飾子: 保護されていると宣言されたクラスのメンバーには、そのクラスから派生したクラスのみがアクセスできます。クラスのすべてのデータ メンバーは、そのクラスのデータ メンバーの前に 1 つのアンダースコア「_」記号を追加することで保護されていると宣言されます。
- プライベートアクセス修飾子: private として宣言されたクラスのメンバーは、そのクラス内でのみアクセスできます。private アクセス修飾子は最も安全なアクセス修飾子です。クラスのデータ メンバーは、そのクラスのデータ メンバーの前に二重アンダースコア「__」記号を追加することでプライベートと宣言されます。
49. Python の単体テストとは何ですか?
単体テストは、ソフトウェアのテスト可能な最小部分がテストされるソフトウェア テストの最初のレベルです。これは、ソフトウェアの各ユニットが設計どおりに動作することを検証するために使用されます。単体テスト フレームワークは、Python の xUnit スタイルのフレームワークです。ホワイト ボックス テスト手法は単体テストに使用されます。
50. Python グローバル インタプリタ ロック (GIL)?
Python グローバル インタープリター ロック (GIL) は、Python がプロセスを処理するたびに使用するプロセス ロックの一種です。一般に、Python は書かれた一連のステートメントを実行するために 1 つのスレッドのみを使用します。 Python ではシングルスレッド プロセスとマルチスレッド プロセスのパフォーマンスは同じですが、これは Python の GIL によるものです。 Python ではマルチスレッドを実現できません。これは、スレッドを制限し、単一のスレッドとして動作するグローバル インタプリタ ロックがあるためです。
51. Pythonの関数アノテーションとは何ですか?
関数のアノテーション は、関数のパラメータと戻り値にメタデータを追加できる機能です。このようにして、関数パラメーターの入力型と関数が返す値の戻り型を指定できます。
関数アノテーションは、関数のさまざまな部分に関連付けられた任意の Python 式です。これらの式はコンパイル時に評価され、Python の実行環境では有効になりません。 Python では、これらのアノテーションには何の意味も付加しません。これらは、mypy などのサードパーティ ライブラリによって解釈されると命を奪います。
52. Python の例外グループとは何ですか?
Python 3.11の最新機能、 例外グループ 。 ExceptionGroup は、新しい else* 構文を使用して処理できます。 * 記号は、複数の例外が各例外* 句で処理できることを示します。
ExceptionGroup は、さまざまな種類の例外のコレクション/グループです。複数の例外を作成せずに、さまざまな例外をグループ化して、後で必要なときに 1 つずつフェッチできるようにすることができます。例外を呼び出すときに、例外が例外グループに格納される順序は関係ありません。
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. PythonのSwitch文とは
バージョン 3.10 以降、Python には構造パターン マッチングと呼ばれるスイッチ ケース機能が実装されました。この機能は、match キーワードと case キーワードを使用して実装できます。アンダースコア記号は、Python の switch ステートメントのデフォルトのケースを定義するために使用するものであることに注意してください。
注記 : Python 3.10 より前では、Python は match ステートメントをサポートしていません。
Python3 match term: case pattern-1: action-1 case pattern-2: action-2 case pattern-3: action-3 case _: action-default>
54.セイウチオペレーターとは何ですか?
セイウチオペレーター 式内の変数に値を割り当てることができます。これは、ループ内で値を複数回使用する必要があるが、計算を繰り返したくない場合に便利です。
Walrus 演算子は `:=` 構文で表され、while ループや if ステートメントなどのさまざまなコンテキストで使用できます。
注記: 3.8 より前の Python バージョンは Walrus Operator をサポートしていません。
Python3 names = ['Jacob', 'Joe', 'Jim'] if (name := input('Enter a name: ')) in names: print(f'Hello, {name}!') else: print('Name not found.')>