Pythonインタビューの質問[終了]


25

Pythonプログラミングを含むインターンシップのために2週間以内にインタビューします。

誰が私が磨く必要がある可能性のある領域を提案できますか?Pythonのオープニングのインタビューでよく尋ねられるものを探しています。私がもう一年以上この言語をやっているという事実とは別に、私は彼らが私に尋ねることができることを認識できません。

CやC ++のインタビューのように、文字列の反転からリンクリストの作成に至るまで、多くの質問がありますが、Pythonのインタビューの場合、私は無知です。

個人的な経験や提案を歓迎します。


それがインターンシップであり、あなたがすでに1年間Pythonでプログラミングしているなら、あなたは大丈夫だろうと思います。Thaは、Pythonの質問の一般的な性質は、c ++で言及したものと同じだと思います。
ロバートハーベイ

ロバート、監督も指導もないプログラミングは私を悩ませます。たぶん私はいくつかの領域に欠けています。

1
インターンシップの場合、なぜガイダンスがないのですか?それがまさにインターンシップの定義です。そうは言っても、私が働いているインターンはプログラミングクラスを取得しませんが、明確な作業指示と期待を取得します。インターンとして、彼らはあなたが仕事で学ぶこと、そして経験のある人がそれをする場合よりも仕事が少し長くかかることを期待すべきです。
ロバートハーベイ

あなたは多くの人が学校から出てくるというよくある間違いを犯しています-インタビューはテストではなく、初デートに行くようなものです。優れたインタビュアーは、あなたが言語の暗いコーナーを知っているかどうかを見つけようとしてボールをつぶすことはせず、むしろ実際にそれを知っている場合、一般に確立しようとします。優れたインタビュアーは、一般的なプログラミングの知識、問題解決能力、対人能力および経験に焦点を合わせます。誰かがPythonが文字列をインターンする方法の詳細を尋ね始めると、それは失われ、インタビューする方法がわからないことを意味します。
ショーンマクサムシング

回答:


8

簡単なものを次に示します。

  1. Pythonデコレータとは何ですか、どのように使用しますか?
  2. Pythonコードをどのようにデバッグしますか?
  3. それぞれが異なるバージョンのPythonとサードパーティライブラリを使用する多くのプロジェクトをどのようにセットアップしますか?
  4. コードを書いている間、PEP8に従っていますか?

7

Python リストの内包表記を含むものはどうですか?私にとって、これらはDive into Pythonでそれらについて読んだ後、C ++に対する大きなセールスポイントの1つでした。

「1から10までの偶数のリストを作成するリスト内包表記を作成します(包括的)」。
答えが次のようなものである場合(範囲値はfencepostエラーを避けることに注意してください):

foo = [x for x in range(1, 11) if (x % 2) == 0]
print foo
[2, 4, 6, 8, 10]

さらに言えば、「Dive into Python」にリストされているすべての概念を理解すれば、ほとんどの重要な機能をカバーできます。


13
これは素朴です。Python 2.xでは、range(2,11,2)Python 3.xではlist(range(2,11,2))
Chinmay Kanchi

@Cyclops、イノテックでのあなた自身の仕事のために面接する必要があるようですね。
仕事

5
@Chinmay Kanchiそれは良いインタビューの質問だとは思いませんが、高度な機能のほとんどの紹介では、できる限り簡単なことをしています(読者を混乱させないため)。この特定の問題に対するより簡単な解決策はありますが、ポイントはこの特定の問題に答えることではありませんでした。ポイントはリスト内包表記を使用することでした(これはPythonで物事を最適化する非常に効果的で注目すべき方法です)。
-jsternberg

6

Pythonは参照渡しまたは値渡しも非常に良い質問です。


1
質問アップ偉大なフォローは、彼らはそれを表示することができますどのように尋ねることであろうと、なぜそれが重要
mcotton

@Ismail-申し訳ありませんが、なぜこれが良い質問ですか?
テオドール

7
@Cervo:私が正しく理解していれば、PythonはC#、Java、Schemeなどが値渡しされるのと同じように値渡しです... 私が見た唯一の参照渡し言語はVB6です。特に指定のない限り、すべてが参照渡しです。あなたがオブジェクトを変異させることができるという事実は、それが参照渡しどのような方法で行わないと、あなたは不変オブジェクトを持つことができるという事実は、彼らがいずれかの値によって渡されていることを意味するものではありません...そう言って"答えはどちらでもない」完全に間違っています。インタビュアーが答えが「どちらでもない」と信じている候補者に非常に申し訳ありません
...-Mehrdad

1
@Cervo:参考までに、リンク内の100以上の投票された回答でさえ、あなたの議論に反します。
-Mehrdad

11
正解は、「パラメーターは値で渡される参照です」と思います。
user16764

6

私が尋ねられた質問:

  • Pythonでのメタプログラミングの2つの方法を説明します。
  • GILとは何ですか?
  • GILが重要なのはなぜですか?
  • Unladen Swallowと呼ばれるPythonの代替実装があるのはなぜですか?
  • Django、Pylons、またはZope?あなたの立場を守れ。

5

私にはそのような経験はありませんが、いくつかの推測があります:

  1. (不変)可変性
  2. ファーストクラスの関数/クラス
  3. 閉鎖

それは、Pythonプログラマーが知っておくべきことです。


3

私はこの答えのリストに沿って行くだろう。可能な限り、そのリストに従って知っていることを更新してみてください。最後まで作れなくても心配しないでください。



2

あなたの感覚は何ですか、彼らはあなたがPythonを知っているかどうかをテストしようとしますか、Pythonで物事を成し遂げることができるかどうかを確認しますか、または(Pythonで)プログラムできるかどうかをテストしますか?

これらは非常に異なるものです。

Pythonを知っていることを見せてほしい場合、ジェネレーターを作成してからを使用せずに作成するように強制する場合がありますyield。クラスの仕組みを説明します。C3メソッドの解決順序を説明します。等々。

彼らがあなたにPythonで物事を成し遂げることができることを見せて欲しいなら、あなたは基本的なデータ構造に精通している必要があり、あなたはさまざまな種類のタスクのために行きたいライブラリのリストを持っている必要があります。したがって、辞書、セット、配列に慣れる必要があります。同様にBeautifulSoup、HTMLの構文解析など、Web開発に使用できるフレームワークについて話すことができる必要があります。これらのことを上手に使う方法を必ずしも知る必要はありませんが、どこでインタビュアーが文書化されたものをあなたに提供したら、それらをもっと理解し、実際に使用できるようになります。

(Pythonで)プログラムできることを見せてほしい場合は、基本的なデータ構造とアルゴリズムを知る必要があります。これは、C / C ++の質問にはるかに近いものですが、ネイティブデータ構造を使用することが期待される場合を除き、生活が楽になります。

安全のために、3つすべてについてある程度準備する必要があります。たとえば、http://docs.python.org/tutorial/を読んで、自分自身にメモを取ります。プログラミングの方法を既にご存じのことと思います。次に、ランダムなタスクをいくつか試し、見逃した可能性のあるライブラリを使用するように強制します。そのため、たとえば、CSVを読んだり、Webページからプログラムで情報を抽出したり、フレームワークで小さなWebサイトを構築したりします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.