仕事を探しているんだ?Python面接の50の質問のコレクション[回答付き]

こんにちは、みなさん!魚をさわるのが大好きなチーズです~

今年の就職面接で目立って、
高給の仕事を見つけるのに役立つことを願っています〜

これらの面接の質問には、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 をインストールしてパス変数を設定する方法を教えてください。

Python を Windows にインストールするには、次の手順に従います。

次のリンクから Python をインストールします: https://http://www.python.org/downloads/

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

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

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

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

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

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

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

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

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

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

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

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

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

A lambda function is also called a anonymous function. 関数には任意の数のパラメーターを含めることができますが、操作を実行するステートメントは 1 つだけです。

Q19. Python の self とは何ですか?

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

Q20. ブレイク、コンティニュー、パスの違いは?
写真の説明を追加してください
ここに画像の説明を挿入

Q21. [:: - 1} は何を表しているのですか?

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

Q22. Python でリスト内の要素をランダム化する方法は?

shuffle 関数を使用して、リスト要素をシャッフルできます。
ここに画像の説明を挿入
コード出力は次のとおりです:
写真の説明を追加してください
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 リスト オブジェクトを返し、x range は xrange オブジェクトを返すことです。これは、実行時に xrange が実際に静的リストを生成しないことを意味します。譲歩と呼ばれる特殊な技術を使用してオンデマンドで価値を生み出します。この手法は、ジェネレーターと呼ばれるオブジェクトのタイプで機能します。したがって、非常に大きなリストがある場合は、xrange を検討してください。

Q26. pythonでコメントを書くには?

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

Q27. 酸洗・解凍とは?

Pickle モジュールは任意の Python オブジェクトを取得し、それを文字列表現に変換し、pickling と呼ばれるプロセスである dump 関数を使用してファイルにダンプします。格納された文字列から未加工の Python オブジェクトを取得するプロセスは、unpickling と呼ばれます。

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

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

Q29. 文字列の最初の文字を大文字にする方法は?

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

Q30. 文字列をすべて小文字に変換するには?

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

Q31. python で複数行コメントするには?

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

Q32. Python の Docstring とは何ですか?

Docstring は実際にはコメントではなく、Docstring です。これらのドキュメント文字列は三重引用符で囲まれています。これらは変数に割り当てられていないため、コメントに使用されることもあります。

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

演算子は、1 つ以上の値を比較し、対応する結果を生成する特別な関数です。where is: 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で三項演算子を使うには?

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

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

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

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 の組み込み型は、Integer、Float、Complex、String、Boolean などです。

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) と呼ばれる構造があります。GIL は、一度に 1 つの「スレッド」しか実行できないことを保証します。1 つのスレッドが GIL を取得して関連する操作を実行し、その GIL を次のスレッドに渡します。

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

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


やっと読み終わった?子猫はあなたを祝います〜

非常に包括的な python UP マスターとして Xiaopozhan をお勧めします。
お勧め

ここに画像の説明を挿入

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/m0_74872863/article/details/130162699