タグ付けされた質問 「python」

Pythonは動的に型付けされた、高レベルのインタープリタ型プログラミング言語です。その設計は、明確な構文、オブジェクト指向プログラミングへの直感的なアプローチ、および物事を明確にする正しい方法を作ることに焦点を当てています。Pythonはモジュールと例外をサポートし、広範な標準モジュールライブラリを備えています。Pythonは汎用であり、Webから組み込みシステムまで幅広く使用されています。

8
Pythonicコードを効果的に書く方法を学ぶにはどうすればよいですか?
「pythonic」のグーグル検索を行うと、幅広い解釈が明らかになります。ウィキペディアのページは言います: Pythonコミュニティの一般的な新語法はpythonicです。これは、プログラムスタイルに関連した幅広い意味を持つことができます。コードがpythonicであると言うことは、Pythonのイディオムをうまく使用していること、自然である、または言語が流であることを示すことです。同様に、インターフェイスまたは言語機能についてpythonicであると言うことは、Pythonイディオムとうまく機能し、その使用が他の言語とうまく噛み合うと言うことです。 「unpythonic」という用語についても説明します。 対照的に、非Pythonコードの特徴は、PythonでC ++(またはLisp、Perl、Java)コードを記述しようとすることです。つまり、別の言語の形式の慣用的な翻訳ではなく、大まかな転写を提供します。pythonicityの概念は、読みやすさのPythonのミニマリスト哲学と密接に結びついており、「それを行うには複数の方法があります」アプローチを避けています。判読不能なコードまたは理解できないイディオムは、Pythonではありません。 「pythonic」という用語の意味は何ですか?実際にそれを効果的に適用する方法を学ぶにはどうすればよいですか?

5
クラスメソッドから「return self」の目的は?
私はオープンソースプロジェクトでこのようなものに出会いました。インスタンス属性を変更するメソッドは、インスタンスへの参照を返します。この構成の目的は何ですか? class Foo(object): def __init__(self): self.myattr = 0 def bar(self): self.myattr += 1 return self


4
Pythonの許しと許可とダックタイピング
Pythonでは、「許可を求める」(タイプ/条件チェック)よりも「許しを請う」(例外をキャッチする)の方が良いとよく耳にします。Pythonでのダックタイピングの強制に関して、これは try: x = foo.bar except AttributeError: pass else: do(x) より良いか悪い if hasattr(foo, "bar"): do(foo.bar) else: pass パフォーマンス、可読性、「pythonic」、またはその他の重要な要素の面で?

7
この関数の最悪の場合はなぜO(n ^ 2)ですか?
私は、任意の関数のBigO表記を計算する方法を自分自身に教えようとしています。この機能は教科書で見つけました。この本は、関数がO(n 2)であると断言しています。これがなぜなのかを説明していますが、私はそれに従うのに苦労しています。これがなぜそうなのか、誰かが数学を教えてくれるのではないかと思います。基本的に、O(n 3)より小さいことを理解していますが、O(n 2)に単独で着陸することはできませんでした A、B、Cの3つの数字のシーケンスが与えられたと仮定します。個々のシーケンスには重複した値が含まれていないが、2つまたは3つのシーケンスにある数字があると仮定します。3方向の集合のばらばらの問題は、3つのシーケンスの共通部分が空かどうか、つまり、x∈A、x∈B、x∈Cのような要素xがないかどうかを判断することです。 ちなみに、これは私にとって宿題の問題ではありません-その船は何年も前に航海しました:)、私はもっと賢くしようとしています。 def disjoint(A, B, C): """Return True if there is no element common to all three lists.""" for a in A: for b in B: if a == b: # only check C if we found match from A and B for c in C: …
44 python  big-o 

7
FP以外の人が少量の関数型プログラミングを理解できるか?[閉まっている]
事例:私は会社で働いており、配列で大量のデータを処理するPythonでアプリケーションを作成しています。私は現時点でこのプログラムの唯一の開発者ですが、おそらく他のプログラマーによって将来(1〜3年)に使用/変更/拡張される可能性があります。私はおそらく直接その場にいませんが、時間があれば電子メールでサポートを提供するかもしれません。 そのため、関数型プログラミング(Haskell)を学んだ開発者として、たとえば次のようなフィルタリングを解決する傾向があります。 filtered = filter(lambda item: included(item.time, dur), measures) コードの残りの部分はオブジェクト指向です。私にとっては、はるかに単純で美しいため、このように解決したいのはほんの一部のケースです。 質問:今日このようなコードを書いても大丈夫ですか? FPを作成/学習していない開発者は、このようなコードにどのように反応しますか? 読みやすいですか? 変更可能ですか? 行が何をするのかを子供に説明するようなドキュメントを書くべきですか? # Filter out the items from measures for which included(item.time, dur) != True 上司に聞いたところ、「FPは黒魔術ですが、うまく機能し、最も効率的なソリューションであれば、使用しても構いません」と彼は言います。 これについてのあなたの意見は何ですか?非FPプログラマーとして、コードにどのように反応しますか?コードは「グーグル可能」であるため、その機能を理解できますか?これに関するフィードバックをお待ちしています。

12
C#開発は、使用しているIDEと事実上切り離せませんか?
私はC#を学習しているPythonプログラマーであり、心配するのをやめようとしています。 このスタックオーバーフローの質問で詳述されているように、物事が定義されている場所に関する明示性の欠如という点に私は追いついています。要するに、C#では、using fooどの名前fooが利用可能になっているかを教えてくれません。これはfrom foo import *、Pythonに類似していますfrom foo import bar。 私はむしろC#プログラマーからのこの点に対するスタックオーバーフローの回答に驚いていました。実際には、この明示性の欠如は実際には問題ではありませんでした名前が由来するシステム。例えば: 今、理論的には、これはテキストエディターで探しているときに、C#で型がどこから来たのかわからないことを意味しますが、実際には、それが問題になることはありません。実際にコードを見て、Visual Studioを使用できない頻度はどれくらいですか? これは私に啓示です。多くのPythonプログラマーは、Sublime Text 2やvimのようなコードに加えて、コマンドラインツールとフォルダーやファイルの直接アクセスと操作を使用して、コーディングにテキストエディターアプローチを好みます。このような基本レベルでコードを理解するためにIDEに依存するという考えは、忌み嫌われるようです。この点でC#の文化は根本的に異なっているようです。そして、C#の学習の一環として、それを受け入れて受け入れる必要があるのだろうか。 ここで私の質問に私を導きます:C#開発は、使用しているIDEから事実上不可分ですか?

13
Pythonの改行の処理は、JavaScriptの自動セミコロンとどのように異なりますか?
Javascriptには自動セミコロン挿入と呼ばれる機能があり、基本的にパーサーが無効なトークンに遭遇し、その前の最後のトークンが改行であった場合、パーサーは改行があるセミコロンを挿入します。これにより、基本的にすべてのjavascriptコードをセミコロンなしで記述できますが、主にreturnキーワードがあり、次に改行で返す値がある場合は、いくつかのエッジケースに注意する必要があります。 function test(){ // This will return 'undefined', because return is a valid statement // and "john" is a valid statement on its own. return "john" } これらの落とし穴があるため、「自動セミコロン挿入は悪」、「Javascriptでは常にセミコロンを使用」などのタイトルの記事が多数あります。 しかし、Pythonでは誰もセミコロンを使用せず、まったく同じ落とし穴があります。 def test(): # This will return 'undefined', because return is a valid statement # and "john" is a valid statement on …

6
関数が複雑で変数が多い場合、クラスを作成する必要がありますか?
オブジェクト指向プログラミング(OOP)は、たとえばPythonとは異なり、ファーストクラスの機能を持たないJavaとは異なるため、この質問は多少言語に依存しませんが、完全ではありません。 言い換えれば、Javaのような言語で不必要なクラスを作成することに対する罪悪感は減りますが、Pythonのような定型的でない言語にはもっと良い方法があるかもしれないと感じています。 私のプログラムは、比較的複雑な操作を何度も行う必要があります。その操作には多くの「ブックキーピング」が必要であり、いくつかの一時ファイルを作成および削除する必要があります。 そのため、他の多くの「サブオペレーション」も呼び出す必要があります。すべてを1つの巨大なメソッドに入れるのは、あまり良くなく、モジュール式で、読みやすいなどではありません。 今、これらは私の頭に浮かぶアプローチです: 1.パブリックメソッドを1つだけ持つクラスを作成し、そのインスタンス変数にサブ操作に必要な内部状態を保持します。 次のようになります。 class Thing: def __init__(self, var1, var2): self.var1 = var1 self.var2 = var2 self.var3 = [] def the_public_method(self, param1, param2): self.var4 = param1 self.var5 = param2 self.var6 = param1 + param2 * self.var1 self.__suboperation1() self.__suboperation2() self.__suboperation3() def __suboperation1(self): # Do something with self.var1, self.var2, …

3
Pythonの「PEP-302新しいインポートフック」の経験[非公開]
私はRuby(CRuby)の開発者の一人です。Ruby 2.0のリリースに取り組んでいます(2012年2月のリリースを予定しています)。 Pythonには「PEP302:New Import Hooks」(2003)があります: このPEPは、Pythonインポートメカニズムのより良いカスタマイズを提供するインポートフックの新しいセットを追加することを提案しています。現在のインポートフックとは異なり、新しいスタイルのフックを既存のスキームに挿入して、モジュールの検索方法とロード方法をより詳細に制御できます。 PEP302に類似した機能をRuby 2.0(CRuby 2.0)に導入することを検討しています。マッツを説得できる提案をしたい。現在、CRubyは標準的な方法でファイルシステムからのみスクリプトをロードできます。 PEP 302についての経験や考慮事項がある場合は、共有してください。 例: それは素晴らしい仕様です。変更する必要はありません。 それはほとんど良いですが、この問題があります... 2003年に戻ることができたら、仕様を...

3
Pythonにリスト用の「フラット化」関数がないのはなぜですか?
ErlangとRubyの両方には、配列を平坦化するための関数が付属しています。言語に追加するためのこのようなシンプルで便利なツールのようです。これを行うことができます: >>> mess = [[1, [2]], 3, [[[4, 5]], 6]] >>> mess.flatten() [1, 2, 3, 4, 5, 6] あるいは: >>> import itertools >>> mess = [[1, [2]], 3, [[[4, 5]], 6]] >>> list(itertools.flatten(mess)) [1, 2, 3, 4, 5, 6] 代わりに、Pythonでは、配列をゼロから平坦化するための関数を記述するという問題を経験する必要があります。これはばかげているように見えますが、配列の平坦化はよくあることです。これは、2つの配列を連結するためのカスタム関数を作成する必要があるようなものです。 私はこれを無駄にグーグルで検索したので、ここで質問しています。Python 3のような成熟した言語に10万のさまざまなバッテリーが含まれているのに、配列を平坦化する簡単な方法が提供されない特別な理由はありますか?そのような機能を含めるという考え方は、ある時点で議論され、拒否されましたか?

14
Pythonは実際の世界でどのように使用されていますか?[閉まっている]
Pythonプログラマーとしての仕事を探しています。私は言語の基本を知っており、pygameを使用していくつかのゲームを作成しました。Djangoの実験も始めました。 ただし、ジョブマーケットを見ると、Python関連のジョブの多くはWeb関連ではないようです。物事のデスクトップ側では、非常に多くの企業がpyQtやwxPythonのような人気のあるGUIライブラリを使用しているようには見えません。 企業は実際にPythonをどのように使用していますか?Pythonプログラマーとしての仕事を獲得するには、どの領域に焦点を当てるべきですか?
39 python 

5
Pythonを学習するJava開発者:頭を包むためにどのような概念が必要ですか?
背景:いくつかのチュートリアルを実行し、いくつかの小さなプロジェクトを作成しました。GoogleとStackOverflowを使用して、すべてが十分に機能しています。 過去数日間に何度か、「何が足りないの?」と思った。-Pythonで書いているので、まだJavaで考えているように感じます。 StackOverflowでのこの質問には、Pythonを学習するために読むべきリソースに関するヒントがたくさんありますが、私はまだPythonに翻訳するための辞書(しゃれなし)を持つJava開発者だと感じています。 私が本当にやりたいことは、私のJavaスキルを失うことなく、Pythonに変装したJavaの代わりにPythonic Pythonを書くことができるように頭をリファクタリングすることです。 だから、私の質問の核心は、Java開発者がPythonicを考えることを学ぶために本当に必要な概念は何ですか?これには、未学習の必要があるものすべてが含まれます。 注:言語の構文についてではなく、言語の概念について質問しています。

3
Pythonの「クラスメソッド」および「インスタンスメソッド」とは何ですか?
質問に関連するチャットでの質問があり(質問自体はこの質問とは無関係です)、Pythonをまったく知らないかもしれないことが明らかになりました。 私の考えでは、用語は言語によって異なりますが、一般的に機能を次のように分類できます。 [無料]機能 静的メソッド/静的メンバー関数 非静的メソッド/非静的メンバー関数 どうやらPythonには、上記のカテゴリに当てはまらない別の種類の関数があります。それはメソッドですが、「そのクラスを知りません」。 Pythonの「クラスメソッド」と「インスタンスメソッド」とは何ですか?

3
REPLとインタラクティブシェルの違い
Noobの質問。Wikipediaの定義を読むだけでは、REPLとインタラクティブシェルの違いを知ることができません。 Wikiは、REPLは特定の種類の対話型言語シェルであると指摘しています。それは適切なサブセットですか?Wikiの定義は、用語REPLをLispのような言語に制限しているように見えますが、記載されているプロパティには実際に顕著な特徴は含まれていません。 特に、IPythonをREPLと呼ぶのは正しいでしょうか?

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