
Python 面接で聞かれる質問と回答集
Python 開発者として大手企業への就職を目指すなら、面接でよく聞かれる質問をマスターしておくことが重要です。この記事では、面接対策として上位50個の Python 面接の質問とその回答をまとめました。
目次
Python 面接の質問:初心者編
1. Python はコンパイル言語?インタプリタ言語?
Python はコンパイルと解釈の両方の側面を持つ言語と言えます。
- コンパイル: Python コードを実行すると、インタープリタはまずソースコード(.py ファイル)をバイトコード(.pyc ファイル)と呼ばれる中間形式にコンパイルします。
- 解釈: コンパイルされたバイトコードは、Python 仮想マシン (PVM) によって行単位で実行されます。PyPy のような実装では、実行速度を向上させるために実行時にマシンコードにコンパイルする Just-In-Time (JIT) コンパイルが使用されることもあります。
2. 動的型付け言語とは?
プログラミング言語は、以下の2つのタイプに分けられます。
- 静的型付け言語: 変数のデータ型がコンパイル時に決定される言語。C、C++、Java などが該当します。
- 動的型付け言語: 変数にデータ型を事前に定義する必要がなく、実行時にインタプリタによってデータ型が決定される言語。Python、JavaScript などが該当します。
Python は動的型付け言語です。
3. Python はインデントが必要?
はい、Python ではインデントが必須です。インデントによって、ステートメントのグループが特定のコードブロックに属することを示します。
4. Python の組み込みデータ型は?
Python の主な組み込みデータ型は以下の通りです。
- 数値型: 整数、浮動小数点数、ブール値、複素数などを表現します。
- シーケンス型: 順序付けられたコレクションです。文字列、リスト、タプルなどがあります。
- マッピング型: ハッシュ可能なデータをオブジェクトにマップします。辞書が代表的です。
- セット型: 重複のない要素の順序なしコレクションです。
5. 可変データ型と不変データ型の違いは?
- 可変データ型: 実行時に変更可能。リスト、辞書など。
- 不変データ型: 実行時に変更不可能。文字列、タプルなど。
6. Python の変数スコープとは?
変数が参照可能な範囲をスコープと呼びます。
- ローカル変数: 関数内で定義され、その関数内でのみアクセス可能です。
- グローバル変数: 関数外で定義され、プログラム全体からアクセス可能です。
7. Python で数値を切り捨てる方法は?
Python で数値を切り捨てるには、math.floor()
関数を使用します。
出力:
3
8. Python の /
と //
の違いは?
/
は通常の除算(結果は浮動小数点数)を表し、//
は切り捨て除算(結果は整数)を表します。
例:
5 // 2 = 2 5 / 2 = 2.5
9. Python の for ループと while ループの違い
for
ループは、リスト、タプル、セット、辞書などのコレクションの要素を反復処理するために使用します。while
ループは、条件が真である限りコードブロックを実行します。
10. 関数を引数として渡せる?
はい、Python では関数もオブジェクトであるため、引数として他の関数に渡すことができます。
11. Python の pass とは?
pass
文は、Python で null 操作またはプレースホルダーとして機能します。構文的にステートメントが必要だが、コードを実行したくない場合に使用します。
12. Python の break、continue、pass の違いは?
break
:現在実行中のループから抜け出します。continue
:現在のイテレーションをスキップし、次のイテレーションに進みます。pass
:何もしないプレースホルダー。
13. Python では引数は値渡し?参照渡し?
Python の引数渡しは「値渡し」でも「参照渡し」でもなく、「オブジェクト参照渡し」です。引数が不変オブジェクトの場合に「値渡し」のように動作し、可変オブジェクトの場合に「参照渡し」のように動作します。
14. lambda 関数とは?
lambda 関数 は、名前のない匿名関数です。任意の数の引数を取ることができますが、1 つのステートメントしか持つことができません。
出力:
GEEKSFORGEEKS
15. 辞書とリストの違いは?
リストはインデックスでアクセスされる順序付きのコレクションであり、辞書はキーを使ってアクセスされるキーと値のペアの順序なしコレクションです。
16. リスト内包表記とは?例を挙げてください。
リスト内包表記 は、簡潔な構文を使用してリストを作成する方法です。反復可能な既存のアイテムに「式」を適用して新しいリストを生成できます。
出力:
[4, 9, 16, 25]
17. *args と **kwargs とは?
*args
: 関数に可変個の引数を渡すために使用されます。引数はタプルとして渡されます。
出力:
Hello
Welcome
to
GeeksforGeeks
**kwargs
: 関数に可変長のキーワード引数を渡すために使用されます。引数は辞書として渡されます。
出力:
s1 == Geeks
s2 == for
s3 == Geeks
18. set と辞書の違いは何ですか?
Python Set は、反復可能で変更可能であり、重複した要素を持たない順序付けられていないコレクションデータタイプです。Python の set クラスは、set の数学的概念を表します。
構文: 中かっこ {} または set() 関数を使用して定義されます。
my_set = {1, 2, 3}
Python の Dictionary は、順序付けられた (Py 3.7 以降) [順序付けられていない (Py 3.6 以前)] データ値のコレクションであり、マップのようにデータ値を格納するために使用されます。キー値ペアを格納します。
構文: キーと値のペアを持つ中かっこ {} を使用して定義されます。
my_dict = {“a”: 1, “b”: 2, “c”: 3}
19. Python で 2 つのリストを連結するにはどうすればよいですか?
Python で 2 つのリストを連結するには、+ 演算子または extend() メソッドを使用します。
1. + 演算子の使用:
これは、2 つのリストを結合して新しいリストを作成します。
出力:
[1, 2, 3, 4, 5, 6]
2. extend() メソッドの使用:
これにより、2 番目のリストのすべての要素が最初のリストにインプレースで追加されます。
出力:
[1, 2, 3, 4, 5, 6]
20. Python のドキュメンテーション文字列とは何ですか?
Python のドキュメンテーション文字列 (または ドキュメンテーション文字列) は、Python モジュール、関数、クラス、メソッドに関連付けられたドキュメントを便利に提供します。