Python の面接で最もよく聞かれる質問は何ですか?

WBOY
リリース: 2023-05-13 09:34:05
転載
1302 人が閲覧しました

Python の基本的な面接の質問

1. Python データ構造とは何ですか?

  • 整数 (int)

  • 浮動小数点 (float)

  • 文字列 (str)

  • ブール値 (bool)

  • リスト(リスト)

  • タプル (タプル)

  • 辞書 (dict)

  • Set )

2. Python のリストとタプルの違いは何ですか?タプルは本当に不変なのでしょうか?

  • リスト: リストは変数型であり、データは動的に変更できます。

  • タプル: は固定サイズの不変型です

3. ジェネレーターとイテレーターとは何ですか?それらの違いは何ですか?

Iterator

関数: ループコードを簡略化してメモリを節約する

これは、通過した位置を記憶できるオブジェクトです。イテレータ オブジェクトは、コレクションの最初の要素からアクセスを開始し、すべての要素がアクセスされるまでアクセスします。イテレータは前方にのみ移動でき、後方には移動できません。

イテレータには、iter() と next() という 2 つの基本メソッドがあります。

ジェネレーター

関数: 大量のメモリを節約

yield を使用する関数はジェネレーターと呼ばれます。ジェネレーターは関数を返す反復子です。ジェネレータは反復演算にのみ使用できます。ジェネレータはイテレータであると理解しやすいです。

原則: ジェネレータを呼び出すプロセス中、関数は関数が発生するたびに一時停止し、すべての現在の値を保存します。 yield. 情報を実行し、yield の値を返し、次回 next() メソッドが実行されるときに現在の位置から実行を継続します

4. クロージャとは何ですか?デコレータとは何ですか?デコレータって何をするの?デコレータを使ったことがありますか?デコレータの例を書いてください

クロージャとは、関数を構成する言語とその実行環境をPythonでパッケージ化したオブジェクトのことを指します

デコレータとは、追加関数またはクラス関数の一種。同じ機能を別の関数またはクラスにすばやく挿入できます。構文: 関数の前に「@デコレータ名」が追加されます 例:

Python の面接で最もよく聞かれる質問は何ですか?

5. 匿名関数とは何ですか? 匿名関数を使用する利点は何ですか?

匿名関数: ラムダを使用して作成された関数はいわゆる匿名です。これは、関数が def ステートメントなどの標準形式で定義されなくなったことを意味します。

利点:

1. Pythonを使用して実行スクリプトを作成する場合、ラムダを使用すると関数を定義するプロセスが節約され、コードがより合理化されます。

2. 他では再利用されない一部の抽象関数の場合、関数に名前を付けるのが難しい場合がありますが、ラムダを使用する場合は名前付けの問題を考慮する必要はありません。

3. ラムダを使用すると、特定の場面でコードを理解しやすくなります。

アプリケーション シナリオ : map()、filter()、sorted()、reduce() などのいくつかの組み込み関数と組み合わせて使用​​されることがよくあります。 etc.

式形式ラムダパラメータリスト:ラムダ本体

##Case

frame.applymap(lambda x: '%.2f' % x)
frame.apply(lambda x: x.max() - x.min())
ログイン後にコピー

6 . Python の動作効率を改善するにはどうすればよいですか?

ジェネレータを使用してメモリを最適化する

ループの最適化: 複数の if elif 条件判定で、最初に発生する可能性が高い条件を記述できるため、プログラムの判定回数を減らし、効率を向上させることができます。

アルゴリズム時間の最適化: アルゴリズムの時間計算量は、プログラムの実行効率に最も大きな影響を与えます。Python では、時間計算量は次のように最適化できます。リストやセット内の特定の要素を検索する時間計算量は O(n) と O(1)

7 です。クラスを使用したことがありますか?相続についてご存知ですか?継承を使用した例を書いてください。

継承: 親オブジェクトのプロパティと機能に加えてカスタム プロパティと機能を取得することによって、オブジェクトの子オブジェクトまたはクラスのサブクラスになることを指します。

Python の面接で最もよく聞かれる質問は何ですか?#リライト: メソッド名は同じ、メソッドはリライトされます

Python の面接で最もよく聞かれる質問は何ですか?

8、ディープ コピーとシャロー コピー

  • 浅いコピーでは、元のオブジェクトの可変型要素の値を変更すると、コピーされたオブジェクトにも同時に影響します。元のオブジェクトの不変型要素の値を変更すると、コピーされたオブジェクトには影響しません。

  • ディープ コピーは、トップレベルのコピーに加えて、サブ要素もコピーします。ディープ コピー後、元のオブジェクトとコピーされたオブジェクトのすべての変数要素アドレスは同じではなくなります

9。よく使用される 8 つのモジュールのうち、どれがリストされますか?

os モジュール : オペレーティング システムに関連する多くの機能を提供します。

sys モジュール : 共通ツール スクリプトは、多くの場合、コマンド ライン パラメーターを呼び出します。

re module: 高度な文字列処理のための正規表現ツールを提供します。複雑なマッチングと処理の場合、正規表現は簡潔で最適化されたソリューションを提供します。

random module: 乱数を生成するツールを提供します。

json module: Python が json データを解析し、Python 形式との間で変換するためのメソッドを提供します。

time module: Python で時間を処理するために使用されるモジュール

logging module: Python でのログ処理のためのモジュール

xml module: Python クローラーで HTML タグを見つけるためのモジュール

10. Python のガベージ コレクション メカニズム? (知っておいてください)

Python は主な戦略として参照カウント メカニズムを採用し、マーククリアと世代別コレクション (世代間リサイクル、世代別リサイクル) という 2 つのメカニズムによって補完されます。

##カウントメカニズム
: Python の GC モジュールは、主に参照カウントを使用してガベージを追跡し、リサイクルします。参照カウントに基づいて、「マーククリア」を使用して、コンテナ オブジェクトで発生する可能性のある循環参照の問題を解決することもできます。世代別コレクションを通じて空間を時間と交換することで、ガベージ コレクションの効率がさらに向上します。

Mark-Clear

:: mark-clear の出現により、循環参照が破壊され、循環参照を生成する可能性のあるオブジェクトのみに焦点が当てられます。このメカニズムは、再利用する必要があるメモリ ブロックに比例します。

世代分離リサイクル

原則: システム内のすべてのメモリ ブロックは、その生存時間に応じて異なるコレクションに分割され、各コレクションが「世代」となり、ガベージ コレクションの頻度が増加します。増加するにつれて「世代」の生存時間は減少します。言い換えれば、オブジェクトの存続期間が長ければ長いほど、そのオブジェクトがガベージになる可能性は低くなり、そのオブジェクトに対するガベージ コレクションの頻度を減らす必要があります。この生存時間はどのように測定するか: 通常、複数のガベージ コレクション アクションによって測定されます。オブジェクトがより多くのガベージ コレクションを実行した場合、そのオブジェクトの生存時間は長くなると結論付けることができます。

以上がPython の面接で最もよく聞かれる質問は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート