Pythonの古典的なインタビューの質問1
1. python2とpythonの違いは何ですか?少なくとも5つ挙げてください
- Python 2のprintステートメントは、Python 3のprint()関数に置き換えられています。Python3では、出力するオブジェクトを括弧で囲む必要があります。
- Python 2にはASCIIベースのstr()タイプがあり、別のunicode()関数を使用してユニコードタイプに変換できますが、バイトタイプはありません。
Python 3には、最後にUnicode(utf-8)文字列と2つのバイトクラス(bytesとbytearrays)があります。
- Python2.xにはxrange()とrange()があります。xrange()は遅延メカニズムです。ループを1回だけ行う場合は、range()を使用することをお勧めします。このため、range()はメモリ内に複数のリストを作成し、メモリのオーバーヘッドは比較的大きくなります。 。
python3にはrange()のみがあり、rangeには新しいcontainsメソッドがあります。 containsメソッドは、Python3.xでの整数とブール値の「検索」を効果的に高速化できます。
- 例外処理は、python3.xでは「as」で処理する必要がありますが、python2.xでは必要ありません。
- python2.xでは、.Next()関数を関数の属性として使用することも、関数のみとして使用することもできます。
python3.xで使用できるのは関数のみです。 Next()はattributeErrorをトリガーします。
- raw_input()を使用してpython2.xでユーザー入力を解析し、input()を使用してpython3.xで解析します。
**2. python ** ###の組み込みデータタイプは何ですか
- 整数--int
- ブール値--bool
- 文字列--str
- リスト--list
- タプル-タプル
- 辞書--dict
3. python操作の効率を改善する方法
- 大量のメモリを節約できるため、ジェネレータを使用してください。
- 過度の繰り返しコード実行を回避するためのループコード最適化。
- コアモジュールはCythonPyPyなどを使用して効率を向上させます。
- マルチプロセス、マルチスレッド、コルーチン。
- 複数のifelif条件付き判断を行うと、最も可能性の高い条件を最初に配置できます。これにより、プログラム判断の数を減らし、効率を向上させることができます。
**4. PEP8とは何ですか? **
「Python拡張提案#8」(Python拡張提案#8)は、PEP8とも呼ばれ、Pythonコード形式用に編集したスタイルガイドです。
**5. 静的分析のデバッグまたは実行に役立つツールは何ですか? **
- PyCheckerは、ソースコードのエラーを報告するだけでなく、エラーの種類と複雑さも報告する静的分析ツールです。
- Pylintは、モジュールがコード標準を満たしているかどうかを確認するためのもう1つのツールです。
**6. Pythonでタプルとリストを変換する方法は? **
タプル関数とリスト関数を直接使用するだけで、type()はオブジェクトのタイプを判別できます。
**7. リスト内の重複する要素を削除するには、Pythonコードを記述してください。 **
セット機能を使用する
set(list)
辞書機能を使用する
a=[1,2,4,2,4,5,6,5,7,8,9,0]
b={}
b=b.fromkeys(a)
c=list(b.keys())print(c)
**8. Pythonでランダムな数値を生成する方法は? **
Pythonでランダムな数値を生成するために使用されるモジュールはランダムであり、使用する前にインポートする必要があります。例えば:
- random.random():0-1の間のランダムな浮動小数点数を生成します
- random.randint(a、b):a、bを含む[a、b]間の整数を生成します
- random.uniform(a、b):[a、b]間の浮動小数点数を生成します
- random.randrange(a、b、step):指定されたセット(a、b)で、bなしで、ステップに基づいてランダムな番号を取ります
- random.choice(sequence):特定のシーケンスから要素をランダムに選択します。シーケンスは、文字、タプルなどのリストにすることができます。
**9. Pythonのパスとは何ですか? **
passは、Pythonでは実行されないステートメントです。複雑な文では、場所を一時的に空白にする必要がある場合、プレースホルダーとして使用されることがよくあります。
**10. 文字列のフォーマット:%と.format ** ###の違い
文字列のフォーマット機能は非常に柔軟で強力です。無制限の数のパラメーターを受け入れることができ、位置が乱れる可能性があり、より強力なフォーマット修飾子(パディング、配置、精度など)があります。