ホームページ  >  記事  >  バックエンド開発  >  【吐血編】Python面接50問と回答集(集)

【吐血編】Python面接50問と回答集(集)

青灯夜游
青灯夜游転載
2022-06-30 11:23:174699ブラウズ

この記事では、Python の面接での 50 の質問と回答をまとめています。一定の参考値があるので、困っている友達が参考になれば幸いです。

【吐血編】Python面接50問と回答集(集)

Python は現在、プログラミングの分野で最も人気のある言語です。この記事では、Python の面接でよくある質問 50 個をまとめます。 2019 年の就職面接で目立つようになり、高収入の仕事を見つけるのに役立つことを期待して、質問ごとに参考となる回答が提供されています。これらの面接の質問は、Python の基本、Python プログラミング、データ分析、Python 関数ライブラリなどの多くの側面をカバーしています。

Q1. Python のリストとタプルの違いは何ですか?

#Q2. Python の主な機能は何ですか?

Python はインタープリタ型言語です。 C などの言語とは異なり、Python は実行前にコンパイルを必要としません。

Python は動的言語であるため、変数などを宣言するときに変数の型を宣言する必要はありません。

Python は、クラスの定義だけでなく、合成や継承もできるため、オブジェクト指向プログラミングに適しています。 Python にはアクセス命令 (C の public、private など) がありません。

Python では、関数は第一級のオブジェクトです。これらは変数に割り当てることができます。クラスもファーストクラスのオブジェクトです

Python コードの作成は高速ですが、実行は遅くなります。 Python では、numpy 関数ライブラリなどの C ベースの拡張機能が使用できます。

Python はさまざまな分野で使用できます。 Web アプリケーション開発、自動化、数学的モデリング、ビッグ データ アプリケーションなど。 「接着」コードとしてもよく使用されます。

Q3. Python は汎用プログラミング言語ですか?

Python はスクリプトを作成できますが、一般的な意味では汎用プログラミング言語とみなされます。

Q4. Python は言語をどのように解釈しますか?

Python では、実行前にプログラムを解釈する必要はありません。したがって、Python はインタープリター型言語です。

Q5.ペップとは何ですか?

PEP は、Python Enhancement Proposal の略です。これは、可読性を最大限に高めるために Python コードをフォーマットする方法を指定する一連のルールです。

Q6. Python でメモリを管理するにはどうすればよいですか?

Python のメモリ管理は、Python のプライベート ヒープ領域によって管理されます。すべての Python オブジェクトとデータ構造はプライベート ヒープに配置されます。プログラマはこのプライベート ヒープにアクセスできません。 Python インタープリターがこれを処理します。

Python オブジェクトのヒープ領域の割り当ては、Python のメモリ マネージャーによって完了します。コア API は、プログラマーがコードを作成するためのいくつかのツールを提供します。

Python には、未使用のメモリをすべて再利用してヒープ領域として利用できるようにするガベージ コレクターも組み込まれています。

Q7. Python の名前空間とは何ですか?

ネームスペースは、名前の競合を避けるために名前が一意であることを保証するために使用される命名システムです。

Q8. PYTHONPATH とは何ですか?

モジュールをインポートする際に使用する環境変数です。モジュールがインポートされるたびに、PYTHONPATH も参照され、インポートされたモジュールがそれぞれのディレクトリに存在するかどうかが確認されます。これは、どのモジュールをロードするかを決定するためにインタープリタによって使用されます。

Q9. Python モジュールとは何ですか? Python で一般的に使用される組み込みモジュールは何ですか?

Python モジュールは、Python コードを含む .py ファイルです。このコードは関数クラスまたは変数にすることができます。一般的に使用される組み込みモジュールには、sys、math、random、data time、JSON などがあります。

Q10. Python のローカル変数とグローバル変数とは何ですか?

グローバル変数: 関数の外部またはグローバル空間で宣言された変数は、グローバル変数と呼ばれます。これらの変数には、プログラム内の任意の関数からアクセスできます。

ローカル変数: 関数内で宣言された変数はローカル変数と呼ばれます。この変数はグローバル空間ではなくローカル空間に存在します。

Q11. Python では大文字と小文字が区別されますか? #########はい。 Python は大文字と小文字を区別する言語です。

Q12. Python の型変換とは何ですか?

型変換とは、あるデータ型を別のデータ型に変換することを指します。 int() - 任意のデータ型を整数型に変換します

float() - 任意のデータ型を float 型に変換します

ord() - 文字を整数型に変換します

hex() - 整数を 16 進数に変換します。

oct() - 整数を 8 進数に変換します。

tuple() - この関数はタプルに変換するために使用されます。

set() - この関数は、set に変換した後の型を返します。

list() - この関数は、任意のデータ型をリスト型に変換するために使用されます。

dict() - この関数は、連続したタプル (キー、値) を辞書に変換するために使用されます。

str() - 整数を文字列に変換するために使用されます。

complex(real,imag) - この関数は、実数を複素数 (実数、イメージ) に変換します。

Q13. Windows に Python をインストールしてパス変数を設定するにはどうすればよいですか?

Windows に Python をインストールするには、次の手順に従います。 次のリンクから Python をインストールします: https://http://www.python.org/downloads/

ダウンロード後、PC にインストールします。コマンド プロンプトでコマンド cmd python を使用して、PC 上の PYTHON がインストールされている場所を見つけます。

次に、[システムの詳細設定] に移動し、新しい変数を追加して PYTHON_NAME という名前を付け、コピーしたパスを貼り付けます。

パス変数を見つけてその値を選択し、[編集] を選択します。

値が存在しない場合は、値の末尾にセミコロンを追加して、%PYTHON_HOME%

Q14. Python ではインデントが必要ですか?

Python ではインデントが必要です。コードのブロックを指定します。ループ、クラス、関数など内のすべてのコードは、インデントされたブロック内で指定されます。これは通常、4 つのスペース文字を使用して行われます。コードが必要に応じてインデントされていない場合、コードは正確に実行されず、エラーもスローされます。

Q15. Python の配列とリストの違いは何ですか?

Python の配列とリストは、同じ方法でデータを保存します。ただし、配列には 1 つのデータ型要素のみを含めることができますが、リストには任意のデータ型要素を含めることができます。

Q16. Python の関数は何ですか?

#関数は、呼び出されたときにのみ実行されるコードのブロックです。 Python で関数を定義するには、def キーワードを使用する必要があります。

Q17. __​​init__ とは何ですか?

__init__ は Python のメソッドまたは構造体です。このメソッドは、クラスの新しいオブジェクト/インスタンスが作成されるときに、メモリを割り当てるために自動的に呼び出されます。すべてのクラスには __init__ メソッドがあります。

Q18. ラムダ関数とは何ですか?

ラムダ関数は匿名関数とも呼ばれ、関数には任意の数のパラメーターを含めることができますが、操作を実行するステートメントは 1 つだけ含めることができます。

Q19. Python における self とは何ですか?

self は、クラスのインスタンスまたはオブジェクトです。 Python では、最初のパラメータに self が含まれます。ただし、Java ではこれは当てはまらず、オプションです。これは、ローカル変数を持つクラスのメソッドとプロパティを区別するのに役立ちます。 init メソッドの self 変数は新しく作成されたオブジェクトを参照しますが、他のメソッドではメソッドが呼び出されるオブジェクトを参照します。

Q20. ブレーク、コンティニュー、パスを区別しますか?

#Q21. [:: - 1} とはどういう意味ですか?

[:: - 1] は、配列またはシーケンスの順序を反転するために使用されます。

Q22. Python でリスト内の要素をランダム化するにはどうすればよいですか?

シャッフル関数を使用すると、リスト要素をランダム化できます。例:

コード出力は次のとおりです:

Q23. Python イテレータとは何ですか?

イテレータは、走査または反復できるオブジェクトです。

Q24. Python で乱数を生成するにはどうすればよいですか?

random モジュールは、乱数を生成するための標準モジュールです。このメソッドは次のように定義されます:

random.random() メソッドは範囲 [0,1] の浮動小数点数を返します。この関数はランダムな浮動小数点数を生成します。ランダム クラスで使用されるメソッドは、隠しインスタンスのバインディング メソッドです。 Random のインスタンスを使用して、さまざまなスレッド インスタンスを作成するマルチスレッド プログラムを表示できます。そこで使用される他のランダム ジェネレーターは次のとおりです。

randrange(a,b): 整数を選択し、[a,b] の間の範囲を定義します。指定された範囲から要素をランダムに選択して要素を返します。スコープ オブジェクトは構築されません。

uniform(a,b): 範囲 [a,b) で定義された浮動小数点数を選択します。

normalvariate(mean,sdev): 正規分布に使用されます。は平均、sdev は標準偏差のシグマです。

Random クラスを使用してインスタンス化して、独立した複数の乱数ジェネレーターを作成します。

Q25、range と xrange の違いは何ですか?

ほとんどの場合、xrange と range は機能的に同一です。どちらも整数のリストを生成する方法を提供します。唯一の違いは、range が Python リスト オブジェクトを返し、xrange が xrange オブジェクトを返すことです。これは、xrange が実際には実行時に静的リストを生成しないことを意味します。イールドと呼ばれる特別な手法を使用して、必要に応じて値を作成します。この手法は、ジェネレーターと呼ばれるオブジェクトで機能します。したがって、非常に大きなリストがある場合は、xrange を検討してください。

Q26. Python でコメントを書くにはどうすればよいですか?

Python のコメントは # 文字で始まります。コメントは、doc-strings (三重引用符で囲まれた文字列) を使用して作成することもできます。

Q27. 酸洗いと解凍とは何ですか?

Pickle モジュールは、任意の Python オブジェクトを受け入れ、それを文字列表現に変換し、ダンプ関数を使用してファイルにダンプします。これは、pickle と呼ばれるプロセスです。保存された文字列から元の Python オブジェクトを取得するプロセスは、アンピックリングと呼ばれます。

Q28. Python のジェネレーターとは何ですか?

反復可能な項目のセットを返す関数はジェネレーターと呼ばれます。

Q29. 文字列の最初の文字を大文字にするにはどうすればよいですか?

Python では、capitalize() 関数を使用して文字列の最初の文字を大文字にすることができます。文字列の先頭にすでに大文字が含まれている場合は、元の文字列が返されます。

Q30. 文字列をすべて小文字に変換するにはどうすればよいですか?

文字列を小文字に変換するには、 lower() 関数を使用できます。

Q31. Python で複数行をコメントするにはどうすればよいですか?

複数行のコードをコメントする場合。コメントにするすべての行の前に # を付ける必要があります。ショートカットを使用して、Ctrl キーを押しながら左クリックし、# 文字を使用する各場所で # を 1 回入力することで、複数の行をコメント アウトすることもできます。

Q32. Python のドキュメント Docstring とは何ですか?

docstring は実際にはコメントではなく、docstring です。これらの docstring は三重引用符で囲まれています。これらは変数に割り当てられないため、コメントで使用されることがあります。

Q33. is、not、in in 演算子の機能は何ですか?

演算子は、1 つ以上の値を比較し、対応する結果を生成する特別な関数です。ここで: 2 つのオペランドが true の場合に true を返します (例: "a" は 'a')

not: ブール値の逆数を返します

in: 要素が存在するかどうかを確認します特定の順序で存在します

Q34. Python での help() 関数と dir() 関数の使用法は何ですか?

関数 Help() と dir() はどちらも Python インタープリターから直接アクセスでき、組み込み関数のマージされたダンプを表示するために使用できます。

help() 関数: help() 関数はドキュメント文字列を表示するために使用され、モジュール、キーワード、属性などに関連する使用法情報を表示することもできます。

dir() 関数: dir() 関数は、定義されたシンボルを表示するために使用されます。

Q35. Python が終了するときに、割り当てられたメモリがすべてクリアされないのはなぜですか?

Python が終了しても、特に他のオブジェクトまたはグローバル名前空間から参照されるオブジェクトへの循環参照を持つ Python モジュールは割り当て解除または解放されません。

C ライブラリによって予約されているメモリの部分の割り当てを解除できません。

終了時に、Python は独自の効率的なクリーンアップ メカニズムにより、他のすべてのオブジェクトの割り当てを解除/破棄しようとします。

Q36. Python の辞書とは何ですか?

Python の組み込みデータ型は辞書と呼ばれます。キーと値の間の 1 対 1 の関係を定義します。ディクショナリには、キーのペアとそれらに対応する値が含まれています。辞書はキーによってインデックスが付けられます。

Q37. Python で三項演算子を使用するにはどうすればよいですか?

三項演算子は、条件文を表示するために使用される演算子です。これには true または false の値が含まれており、ステートメントを評価する必要があります。その基本的な構文は次のとおりです。

三項演算子は、条件文を表示するために使用される演算子です。これには true または false の値が含まれており、ステートメントを評価する必要があります。基本的な構文は次のとおりです:

[on_true] if [式] else [on_false] x, y = 25,50big = x if x

Q38. *args、**kwargs を使用しますか?

*args は、関数に渡す引数の数が不明な場合、または保存された引数のリストまたはタプルを関数に渡したい場合に使用します。 **Kwargs は、関数に渡すキーワード引数の数がわからない場合に使用されます。または、辞書の値をキーワード引数として渡すために使用できます。識別子の args と kwargs は規則であり、*bob と **billy も使用できます。

Q39. len() 関数の機能は何ですか?

len() 関数は、文字列、リスト、配列などの長さを決定するために使用できます。

Q40. Python の Split()、sub()、subn() 関数。

文字列を変更する場合、Python の「re」モジュールには 3 つのメソッドが用意されています。

split() - 正規表現パターンを使用して、指定された文字列をリストに「分割」します。

sub() - 正規表現パターンに一致するすべての部分文字列を検索し、それらを別の文字列に置き換えます。

subn() - これは sub() に似ており、新しい文字列も返します。

Q41. 負のインデックスとは何ですか?またその機能は何ですか?

Python のシーケンスにはインデックスが付けられ、正と負の数値で構成されます。正の数値では、最初のインデックスとして「0」が使用され、2 番目のインデックスとして「1」が使用され、プロセスは引き続きこれを使用します。

負の数のインデックスは、シーケンスの最後のインデックスを表す「-1」で始まり、最後から 2 番目のインデックスとして「-2」が始まり、シーケンスは正の数と同様に進みます。

負のインデックスは、文字列から改行を削除し、S[:-1] として指定された最後の文字を除く文字列を許可するために使用されます。負のインデックス付けは、インデックスが文字列を正しい順序で表していることを示すためにも使用されます。

Q42. Python パッケージとは何ですか?

Python パッケージは、複数のモジュールを含む名前空間です。

Q43. Python でファイルを削除するにはどうすればよいですか?

Python でファイルを削除するには、OS モジュールをインポートする必要があります。その後、os.remove() 関数を使用する必要があります。

Q44. Python の組み込み型とは何ですか?

Python の組み込み型は次のとおりです: 整数、浮動小数点、複素数、文字列、ブール値など。

Q45. NumPy には Python リストを操作するための関数は何がありますか?

Python のリストは効率的な汎用コンテナです。これらは (かなり) 効率的な挿入、削除、追加、連結をサポートしており、Python のリスト内包表記により構築と操作が簡単になります。

これらには特定の制限があります。ピクセル化された加算や乗算などの「ベクトル化された」演算はサポートされていません。また、異なる型のオブジェクトを含めることができるという事実は、Python が各要素の型情報を格納し、実行型をディスパッチする必要があることを意味します。各要素を操作するときのコード。

NumPy は効率が高いだけでなく、便利でもあります。多くのベクトル演算と行列演算を無料で利用できるため、不必要な作業を省くことができる場合があります。それらも効果的に実装されています。

NumPy 配列は高速で、NumPy、FFT、畳み込み、高速検索、基本統計、線形代数、ヒストグラムなどの組み込み機能を使用できます。

Q46. Python 配列に値を追加するにはどうすればよいですか?

append()、extend()、insert(i,x) 関数を使用して、要素を配列に追加できます。

Q47. Python 配列の値を削除するにはどうすればよいですか?

pop() メソッドまたは Remove() メソッドを使用して、配列要素を削除できます。これら 2 つの関数の違いは、前者は削除された値を返すのに対し、後者は削除された値を返さないことです。

Q48. Python には OOps の概念がありますか?

Python はオブジェクト指向プログラミング言語です。これは、オブジェクト モデルを作成することで、あらゆるプログラムを Python で解決できることを意味します。 Python は同時に、プログラミング言語および構造言語とみなすことができます。

Q49. ディープ コピーとシャロー コピーの違いは何ですか?

新しいインスタンス タイプを作成するときに浅いコピーを使用し、コピーされた値を新しいインスタンスに保持します。浅いコピーは、参照ポインタを値と同様にコピーするために使用されます。これらの参照は元のオブジェクトを指しており、クラスのメンバーに加えられた変更は元のコピーにも影響します。浅いコピーでは、使用されるデータのサイズに応じて、プログラムをより高速に実行できます。

ディープ コピーは、コピーされた値を保存するために使用されます。ディープ コピーでは、オブジェクトへの参照ポインターはコピーされません。これはオブジェクトを参照し、他のオブジェクトが指す新しいオブジェクトを格納します。元のコピーに加えられた変更は、そのオブジェクトを使用する他のコピーには影響しません。ディープ コピーでは、呼び出されるオブジェクトごとにコピーが作成されるため、プログラムの実行が遅くなる可能性があります。

Q50. Python でマルチスレッドを実装するにはどうすればよいですか?

Python にはマルチスレッド ライブラリがありますが、コードを高速化するためにマルチスレッドを使用する効果はそれほど高くありません。

Python には Global Interpreter Lock (ギル)。 GIL は、一度に 1 つの「スレッド」だけが実行できることを保証します。 1 つのスレッドは関連する操作を実行するために GIL を取得し、その GIL を次のスレッドに渡します。

プログラムは複数のスレッドによって並行して実行されているように見えますが、実際には同じ CPU コアを交互に使用しているだけです。

これらすべての GIL パスにより、実行にオーバーヘッドが追加されます。これは、マルチスレッドによってプログラムの実行が高速化されるわけではないことを意味します。

【関連する推奨事項: Python3 ビデオ チュートリアル ]

以上が【吐血編】Python面接50問と回答集(集)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。