一般的な就職の面接の質問:答えと、共通のインタビューの質問のPythonのフル解像度

Pythonは近年、機械学習、クラウドコンピューティングなどの技術の発展に伴い、Pythonの仕事はますます高く要求する、非常に人気のあるプログラミング言語です。私はあなたの参照の研究のためのよくある質問110 Pythonのインタビュアーを収集しました。二つのサブに分けスペースの問題は、次の週には55〜次の顔質問を共有することになります押し

1達成するコードの行の和1--100

合計()関数sumを使用。

2、どのように関数内のグローバル変数を変更します

グローバル使用グローバル変数を変更します。

3、5つのPython標準ライブラリを示しています

OS:の多くのオペレーティングシステムに関連する機能を提供します

SYS:一般的に使用されるコマンドライン引数

再:通常の試合

数学:数学

日時:治療の日付と時刻

キーを削除する2つの辞書や辞書をマージする方法4、

デルおよび更新方法。

PythonのGIL話の下で5、

Pythonインタプリタを占めることになるのpythonプログラムを実行するときに、スレッドを実行する複数のスレッド(すなわちロックGILを持っていた)、そのプロセス内の他のスレッドが存在しないことができている場合GILグローバルは、Pythonインタプリタロック、同じプロセスであります実行、およびので、他のスレッドの後に実行中のスレッドを実行します。プロセス・スレッドの実行に時間のかかる操作が発生した場合、他のスレッドが実行されるように、インタプリタは、ロックを解除します。だから、複数のスレッドでは、スレッドがまだ実行されているが、順次、同時ではありません。

大きな欠点は、システムリソースのオーバーヘッドのプロセスことで、Pythonインタプリタを有し、それはマルチプロセスの複数のプロセスを達成することができ、各処理に相当、各プロセスで同時に複数のプロセスを実行し、システムリソースとして割り当てることができます。

6、体重を達成するための方法のpythonのリスト

最初のターンリストで、重いのセットを通過します。

7、楽しい(* argsを、* でkwargsから) argsを、**それが何を意味するのkwargsから?

区別8、python2用のpython3と範囲(100)の

メモリを節約、イテレータを返すのpython3、リストに戻るpython2。

9、デコレータを使用することができ、言語の種類を説明する言葉では?

言語の伝送パラメータの関数として、あなたデコレータことができます。

10は、Pythonの組み込みデータ型います

整数--int

ブール--bool

文字列--str

--listリスト

タプル--tuple

辞書--dict

11、オブジェクト指向の簡単な新しい初期化の違い

INIT初期化メソッドは、オブジェクトを作成した後、それはすぐにデフォルトで呼ばれたされ、およびパラメータを受信することができる、など

(1)新新は、少なくとも1つのパラメータCLS、このクラスの代表は、このパラメータは自動的にインスタンス化でPythonインタプリタによって認識されてきました。

(2)返さインスタンス化インスタンスの外に、これは自分の中で達成され、戻り値を持たなければならない新しい親クラスを返すことがあり、特に注意(スーパーで(現在のクラス名、CLS))新しいのうちインスタンス、または直接これは、対象となる新しいインスタンスアウト。

(3)initはパラメータ自己を有し、これで新しいインスタンスは、返されないINITにおける新しい、に基づいて完全な他の初期化動作をINIT戻り値。

場合(4)新しい創造が現在のクラスのインスタンスが自動的に呼び出されますされ初期化機能を、と呼ばれるreturn文の新しい他のクラスのクラス名ならば、関数の最初のパラメータは、現在のCLSクラスのインスタンスことを確認することです。その後、リターンの実際の作成は、クラスの別のインスタンスがあり、実際には、それは現在のクラスを呼び出していないのinit、それは他のクラスを呼び出すことはありません、機能を初期化機能。

12、私たちは何をすべきかに対処するために、ファイルを開くための方法で簡単に?

従来f.openによれば、読み出し時にファイルを開いて、いくつかの異常な状態が存在し得る場合に書きます。

書かれた、私たちは、異常判定を行う、最終的には、除いて、試してみる必要があり、最終文書は、どんな状況、私たちは私たちがf.closeでようやく達成を支援するための方法で、()ファイルを閉じf.close最後に実行してはなりません。

(もちろん、そこに他のカスタム機能は、あるソースコードと方法を学ぶことができます興味を持っています)

図13は、マップ()関数出力[1,4,9,16,25]、リスト数より大きく10を導出するために使用される式を使用してリスト[1,2,3,4,5]は、最終的な出力を抽出する[16 、25]

第1のパラメータマップ()関数は楽しみである、2番目のパラメータがリスト、第3のパラメータリストを書き込むことができ、典型的には、必要に応じて、書き込むことができません。

14、Pythonのランダム整数0--1間でランダムに小数、分数の方法を生成

ランダム整数:発生部random.randint内の整数(B)。

ランダム小数:慣れてnumpyのライブラリnp.random.randn使用しては(5)ランダム小数5を生成します。

0-1ランダム小数:はrandom.Random()は、パラメータブラケットを渡します。

エスケープ文字列を回避するために15、プラス何文字が元の文字列を表しますか?

R、特殊文字をエスケープしません、元の文字列の必要性を表明しました。

16、クラスのクラス名が未定義であることを特徴とする請求の<divクラス=「南」>中国</ div>の、通常のラベルで(「中国」)内の内容にマッチしました、

17、Pythonは例の方法をアサート

()メソッドを主張、アサーションはプログラムエラー、アサーションが失敗し、プログラムは引き続き、成功しています。

18は、生徒データテーブルは、名前が名前のID、名前、スコア、都市フィールドは、重複する行を排除する必要性を繰り返している可能性があり、SQL文を書いてください

学生からの個別の名前を選択します

19,10 Linuxの一般的なコマンド

LS PWD CDタッチRMは、mkdirツリーのcp MV猫よりgrepのエコー

20、python2とのpython3の違いは?上場5

(1)のpython3は、印刷などの括弧(「HI」)に包まれた印刷コンテンツを用いて印刷されなければなりません。

Python2の実施形態は、括弧で使用することができる、空間は、印刷「HI」として、印刷コンテンツを分離するために使用されてもよいです。

(2)python2範囲(1,10)は、メモリセーブ返さイテレータのpython3ために、リストを返します。

(3)python2は、UTF-8でエンコードを使用して、パイソンをASCII符号化を使用します。

python3のシーケンスを表すstrの文字列が、バイトがバイト配列を示す;(4)配列を表すpython2のUnicode文字列は、STRは、バイトの配列を表します。

(5)、コードステートメントを導入するための中国の通常表示をpython2のpython3するために必要とされません。

(6)python2はraw_input()関数のpython3れる入力()関数です。

21は、変数のデータ型はPythonと不変のデータ型、および簡単に原則的に記載されています

不変データ型:数値、文字列、文字列やタプルタプル。

この方法は、ID(によって示されるように、変数の値)は、1つのオブジェクトのみ(アドレス)をメモリにすることができるオブジェクトに対応する変数の値の変化は、構築された場合、変更され、同じオブジェクトの値であることはできません。 IDは、オブジェクトを印刷します。

変数のデータ・タイプ:リストリストと辞書dictの。

変数の許容値は+ =この操作ように、単に変数の値を変更するのではなく、新しいオブジェクトを作成する、すなわち変数追加すると、変更され、可変アドレスによって参照されるオブジェクトは、変更、同じしません異なるオブジェクトの値は、メモリ内の異なるオブジェクト、すなわち、各オブジェクトは、独自のアドレスを有し、存在する、参照カウントが存在しないつ以上に記憶された同一の値に対応するオブジェクトのためのメモリは、実数オブジェクト。

22、S =「ajldjlajfdljfddd」、大出力の重量及び小に「adfjl」

体重を設定するには、リストの重みに変身して、ソートのソート方法によって、reeverse = Falseが小規模から大規模までです。

リストは、同じデータ型、s.sortノーリターン値なので、コード記述されたが間違ってコメントしています。

図23は、2つのラムダ関数の数を乗算することによって達成します

24、辞書に係る小型から大型結合には

辞書= { "名前": "ZS"、 "年齢":18、 "街": "深圳"、 "電話": "1362626627"}

25、各ワードカウンタ列の統計的方法を使用してライブラリのコレクションの数が「; ldsjafl; hdsllfdhg; lahfbl; HL; ahlf; H kjalfj」と表示さ

26、列A =「ない404張シンセン99を見つけた」、各単語を濾過正規英数字で、スペースの中間にある、最終的な出力「SANシンセン」

なお一致することができるが、小数点コードと一致するが、ロバスト性がさらに確認が必要ペースト。

27、フィルタ方法は、奇数及び新たなリスト構造の全てのリストを取得する= [1、2、3、4、5、6、7、8、9、10]

フィルタ()関数は、配列をフィルタリングするために使用され、ろ過不適格な要素が修飾新しい要素のリストを返します。受信した2つのパラメータは、第一、第二の配列の関数として、関数の引数として配列の各要素は、その後、真または偽を返す、調停、および最終的に新しいリストに真の要素を返します。

28、式及び新たなリスト構造を導出するための要件のすべての奇数リスト、A = [1、2、3、4、5、6、7、8、9、10]のリスト

29、通常のre.complieの役割

re.compile正規表現は、オブジェクトにコンパイル速度、再利用されます。

30、=(1)B = 1、C =( "1")、データの種類がありますか?

31、二つのリスト[1,5,7,9]および[2,2,6,8]合併[1,2,2,3,6,7,8,9]

要素のリストに別のセットを拡張個別に添加することができる、全体的な追記異なるが追加しました。

32、ファイルを削除して、PythonのLinuxコマンド方式でファイルを削除

パイソン:os.remove(ファイル名)

Linuxの場合:rm filenameと

33、datetimeモジュールで「午前11時38分54秒2018年4月1日を」私たちは現在のタイムスタンプを印刷し、タイムスタンプで、このような発生時刻を警告、エラーを記録する必要がある、ログインログイン

コードも週にラベル付けされている方法。

34、データベースクエリの最適化方法

外部キー、インデックス、ユニオンクエリは、その上の特定のフィールドを選択し、。

35.任意のオープンソースのライブラリを描かれたあなたは意志チャート(棒グラフ、線など)、また第三者OKを記入してください

pychart、matplotlibの。

36、カスタム例外コードを書きます

カスタム例外がレイズで投げ。

37、正規表現のマッチング、(。 と(。 ?)違いを一致させるには?

(*)通常のバックなど、多くの試合を満たす、貪欲な試合です、

(。*?)非貪欲試合、できるだけ通常の少ない試合を満たしています。

38、簡単なDjangoのORM

オブジェクトを意味ORM、スペルオブジェクト関係マッピング、 - リレーショナルマッピング。

シンプルな構成データベースによるデータモデルとデータベースのデカップリングを達成するために簡単にだけは、プログラミングは、対応するSQL文に翻訳ドッキングに基づいて、データベースエンジンは、基本的にすべてのオペレーティングORMオブジェクト指向する必要があるコードを変更することなく交換することができますデータベースの移行は、あなたが唯一のDjangoのデータベースエンジンがすることができ交換する必要がある場合は、MySQL、Oracleの、sqliteのを....使用して基本的なプログラムのために気にすることなく、Djangoの開発プロジェクトを使用します。

39、[1,2]、[3,4]、[5,6]描かれたリストを展開するためのコードの行[1,2,3,4,5,6]

サンパウロの操作リストの内包

実行手順:iについてで、iはそれぞれ[1,2]、[3,4]、[5,6]、I IN jについて、jはそれぞれ1,2,3,4,5,6であります合併後の結果です。

より多くのサン方法は、ほとんどが〜示さなかった、平坦化()メソッドでnumpyの行列numpyののリストになります、コードは常に唯一のより多くのショーになります、あります

40、X = "ABC"、Y = "DEF"、Z = [ "D"、 "E"、 "F"]、測定したx.join(Y)とx.join(Z)結果が返さ

参加()括弧は反復可能であり、xは反復中間オブジェクトを挿入することができ、形成された文字列は、一貫性のある結果は、共通の文字列操作が再生されない急激な感じがない〜

ところであなたはos.path.joinで()メソッドを学ぶことを示唆している、頻繁に使用される接合のパスが、また参加を使用し、文字列操作は、任意の違い、我々は関連文書にアクセスすることができ、問題への参加、後者は答えを持っています。

41、異常な相関モジュールの例は、最終的に除いて、他のしてみてください

キャッチされない例外は、elseステートメントをtry..except..else。

try..except..finally例外をキャッチするかどうか、最終的には文が実行されます。

42、Pythonの交換二つの値

43、図示されたジッパー()関数の使用

ジッパー操作は、1つのまたはそれ以上の配列(イテレート可能オブジェクト)へのパラメータとしてであろう()関数は、タプルのリストを返します。要素の側面対によって同時に側でこれらの配列。

ZIP()パラメータは、配列の任意の型を取ることができるだけでなく、二つ以上のパラメータを持つことができ、長さのパラメータが同時に渡されない場合、ZIP自動的最短配列の長さはタプルが取得され、傍受対象です。

44、=「張98点」を、re.subで、98を100に置き換えられます

45、5つの共通のSQL文を書きます

ショーのデータベース;

ショーのテーブル。

DESCテーブル名;

表名から*を選択します。

ID = 5表名から削除します。

学生は性別= 0を設定して更新し、故郷= "北京" どこのid = 5

バイトに符号化された46、A =「こんにちは」とB =「こんにちは」タイプ

47、[1,2,3] + [4,5,6]はどのくらいの結果ですか?

二つのリストを拡張する同等の、追加されます。

方法パイソンの運転効率を向上させる48、

(1)発電機を使用して、多くのメモリを節約することが可能であるため、

(2)巡回コードの最適化、過度の反復コードの実行を回避します

(3)コアモジュールCython PyPyなど、効率を向上させます

(4)マルチプロセス、マルチスレッド、コルーチン

(5)決意条件のelif複数の場合、条件は、このように、プログラムが決定回数を減らす、フロントライトに発生する可能性が最も高いことができ、効率

49、簡単に、そしてRedisの差のmysql

Redisの非メモリリレーショナルデータベースは、データがメモリと速度に記憶されます。

mysqlの:リレーショナルデータベース、データを取得する、ディスク上に格納され、その後、いくつかのIO操作があるだろう、アクセス速度が比較的遅いです。

出会いのバグを処理するための方法50、

当該検出プログラムセグメントは、それはJSにconsole.logアラートまたはできれば場合(1)エラーの詳細は、()印刷印刷を、一般には問題コード前述しないプリント()に行うことができます

それは、サードパーティ製のフレームワークの数を必要とする場合(2)、公式ドキュメントや技術的なブログを見に行きます。

(3)管理とバグの分類された概要については、一般的なテストは、このような記録としてteambinバグ管理ツールのバグをテストします、そして、我々は変化を一つずつを行います、プロセスは、ビジネスロジックとプログラミングロジック厳しさの理解を改善するために改変されました途中、私はいくつかのメモレコードの収集を行います。

(4)リードパケットの問題は、複数の発音によって引き起こさ都市位置決め誤差。

51、レギュラー、マッチング日2018年3月20日

URL = ' https://sycm.taobao.com/bda/tradinganaly/overview/get_summary.json?dateRange=2018-03-20%7C2018-03-20&dateType=recent1&device=1&token=ff25b109b&_=1521595613462 '

学生が実際に試合をすることによっていくつかの機能文を抽出することは困難ではない、通常のように尋ねた(。*?)と一致するためにはあります。

52、= [2,3,5,4,9,6]、小から大へ、並べ替えを使用することはできませんリスト、出力[2,3,4,5,6,9]

繰り返し、最低限の機能を得るために、最小値、新しいリストの最小値に加え、再帰呼び出しを削除するには、元のリストの最小値を見つけるために、分()メソッドを使用します。

53、シングルカラムモードを書きます

オブジェクトが作成されるため、新たな実行の方法を、およびオブジェクトCLSの外にインスタンス化するために、戻るに戻らなければならない.__インスタンスが存在し、オブジェクトを作成するために存在していない、それが確実にするために、オブジェクトを返すために存在する存在(シングル)オブジェクトの印刷の唯一のインスタンスID、同じ値、オブジェクトの同じ説明。

54、小数点以下

計算の結果は、アイデアの小数拡張を保持するために、円形の方法(値、予約ビットの数)を提供するようになっている。タイトル自体は=「%。03F」%1.3335であります

結果を印刷するための3つの方法を求めている55、

FN(「1」、1)キーと値の辞書に直接渡します。

(「2」、2)FN後の辞書は、メモリ内の変数データのタイプであるので、点同じアドレスにあるため、渡されたパラメータの新しい量は、キーと値のペアの辞書に相当増加します。

渡された新しい辞書としてFN(「3」、3、{})、それはもはや辞書の元のデフォルトのパラメータではありません。

おすすめ

転載: blog.51cto.com/14529670/2439746