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

Pythonは、マルチパラダイム、動的型付け、多目的プログラミング言語です。これは、学習、理解、使用が迅速で、クリーンで統一された構文を適用できるように設計されています。Python 2は2020年1月1日をもって正式にサポートされなくなりました。それでも、バージョン固有のPythonの質問については、[python-2.7]または[python-3.x]タグを追加します。Pythonのバリアントまたはライブラリ(Jython、PyPy、Pandas、Numpyなど)を使用する場合は、タグに含めてください。

1
複数の戻り値のタイプに注釈を付ける方法は?
型ヒントを使用してIterable、常に2つの値aboolとaを生成するを返す関数に注釈を付けるにはどうすればよいstrですか?ヒントTuple[bool, str]は、戻り値の型をジェネレーターや他のタイプの反復可能オブジェクトではなくタプルに制限することを除いて、近いです。 次のようにfoo()複数の値を返すために使用される関数に注釈を付けたいので、私は主に興味があります。 always_a_bool, always_a_str = foo() 通常は(タプルを返す)のfoo()ような関数を実行return a, bしますが、返されるタプルをジェネレーターやリストなどに置き換えるのに十分な柔軟性を備えたタイプヒントが必要です。

1
なぜf '{{{74}}}'はf-Stringsを使用したf '{{74}}'と同じなのですか?
f-StringはPython 3.6から利用でき、文字列のフォーマットに非常に役立ちます。 >>> n='you' >>> f'hello {n}, how are you?' 'hello you, how are you?' それらについてPython 3のf-Stringsでさらに読む:改良された文字列フォーマット構文(ガイド)。私は興味深いパターンを見つけました: 三重中括弧を使用すると、文字列に中括弧が1つだけ含まれることに注意してください。 >>> f"{{{74}}}" '{74}' ただし、3つ以上のブレースを使用する場合は、より多くのブレースを表示できます。 >>> f"{{{{74}}}}" '{{74}}' そして、これはまさにその通りです。 >>> f'{74}' '74' >>> f'{{74}}' '{74}' 2 {から3に渡しても、結果は同じです。 >>> f'{{{74}}}' '{74}' # same as f'{{74}}' ! 最大4つ必要です。({{{{)2つの中括弧を出力として取得するには: >>> f'{{{{74}}}}' '{{74}}' どうしてこれなの?Pythonがその瞬間から追加のブレースを必要とするために2つのブレースで何が起こりますか?

3
Djangoでフォームのテストを作成するにはどうすればよいですか?
テストを書いているときに、Djangoでビューへのリクエストをシミュレートしたいと思います。これは主にフォームをテストするためです。簡単なテストリクエストのスニペットを次に示します。 from django.tests import TestCase class MyTests(TestCase): def test_forms(self): response = self.client.post("/my/form/", {'something':'something'}) self.assertEqual(response.status_code, 200) # we get our page back with an error フォームエラーの有無にかかわらず、ページは常に200の応答を返します。フォームが失敗し、特定のフィールド(soemthing)にエラーがあったことを確認するにはどうすればよいですか?

8
Pythonのメモ化/遅延ルックアッププロパティデコレーター
最近、インスタンス属性がデータベースに保存された値を反映する多くのクラスを含む既存のコードベースを調べました。これらの属性の多くをリファクタリングして、データベースルックアップを延期しました。コンストラクタで初期化されるのではなく、最初の読み取り時にのみ初期化されます。これらの属性はインスタンスの存続期間を通じて変化しませんが、初回の計算では実際のボトルネックであり、特別な場合にのみ実際にアクセスされます。したがって、それらはデータベースから取得された後にキャッシュすることもできます(したがって、これは入力が単に「入力なし」であるメモの定義に適合します)。 さまざまなクラスのさまざまな属性について、次のコードスニペットを何度も入力していることに気づきました。 class testA(object): def __init__(self): self._a = None self._b = None @property def a(self): if self._a is None: # Calculate the attribute now self._a = 7 return self._a @property def b(self): #etc Pythonでこれを行うための既存のデコレータはありますか?または、これを行うデコレータを定義するための合理的に簡単な方法はありますか? 私はPython 2.5で作業していますが、2.6の回答が大幅に異なる場合は、それでも興味深いかもしれません。 注意 この質問は、Pythonがこのための既製のデコレータを多数含む前に行われました。用語を修正するためだけに更新しました。
109 python  decorator 

6
Pythonでブール値を使用するにはどうすればよいですか?
Pythonには実際にはブール値が含まれていますか?私はあなたができることを知っています: checker = 1 if checker: #dostuff しかし、私はまったく知識がなく、Javaでブール値を見るのを楽しんでいます。例えば: Boolean checker; if (someDecision) { checker = true; } if(checker) { //some stuff } Pythonにはブールのようなものはありますか?ドキュメントにそのようなものを見つけることができないようです。
109 python  boolean 

4
高速フーリエ変換を使用してオーディオを分析する
私はpythonでグラフィカルスペクトラムアナライザーを作成しようとしています。 私は現在、1024ビットの16ビットデュアルチャネル44,100 Hzのサンプルレートのオーディオストリームを読み取り、2つのチャネルの振幅を一緒に平均しています。だから今私は256の署名されたショーツの配列を持っています。次に、numpyのようなモジュールを使用して、その配列にfftを実行し、その結果を使用して、グラフィカルスペクトラムアナライザーを作成します。これは、最初は32バーだけです。 高速フーリエ変換と離散フーリエ変換に関するウィキペディアの記事を読みましたが、結果の配列が何を表しているのかまだわかりません。これは、numpyを使用して配列にfftを実行した後の配列の様子です。 [ -3.37260500e+05 +0.00000000e+00j 7.11787022e+05 +1.70667403e+04j 4.10040193e+05 +3.28653370e+05j 9.90933073e+04 +1.60555003e+05j 2.28787050e+05 +3.24141951e+05j 2.09781047e+04 +2.31063376e+05j -2.15941453e+05 +1.63773851e+05j -7.07833051e+04 +1.52467334e+05j -1.37440802e+05 +6.28107674e+04j -7.07536614e+03 +5.55634993e+03j -4.31009964e+04 -1.74891657e+05j 1.39384348e+05 +1.95956947e+04j 1.73613033e+05 +1.16883207e+05j 1.15610357e+05 -2.62619884e+04j -2.05469722e+05 +1.71343186e+05j -1.56779748e+04 +1.51258101e+05j -2.08639913e+05 +6.07372799e+04j -2.90623668e+05 -2.79550838e+05j -1.68112214e+05 +4.47877871e+04j -1.21289916e+03 +1.18397979e+05j -1.55779104e+05 +5.06852464e+04j 1.95309737e+05 +1.93876325e+04j -2.80400414e+05 …

5
IDLEからコマンド履歴にアクセスするにはどうすればよいですか?
bashまたはウィンドウのコマンドプロンプトで、キーボードの上矢印キーを押して最後のコマンドを取得し、編集して、もう一度Enterキーを押して結果を確認できます。 しかし、PythonのIDLE 2.6.5または3.1.2では、ステートメントが25行を出力する場合、上矢印を最後のコマンドまで25回押して、Enterキーを押してコピーする必要があるようです。 または、マウスを使用してその行を特定してクリックし、Enterキーを押してコピーしますか?より速い方法はありますか?

1
Pythonによって作成されたMD5ハッシュが、シェルでechoとmd5sumを使用して作成されたものと異なるのはなぜですか?
Python MD5ハッシュは、シェルでmd5sumコマンドによって作成されたものとは異なります。どうして? >>> import hashlib >>> h = hashlib.md5() >>> h.update("mystringforhash") >>> print h.hexdigest() 86b6423cb6d211734fc7d81bbc5e11d3 # Result from Python $ echo mystringforhash | md5sum 686687dd68c5de717b34569dbfb8d3c3 - # Result on the shell
109 python  shell  md5sum 

4
Python super()はTypeErrorを発生させます
Python 2.5では、次のコードでaが発生しTypeErrorます。 >>> class X: def a(self): print "a" >>> class Y(X): def a(self): super(Y,self).a() print "b" >>> c = Y() >>> c.a() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 3, in a TypeError: super() argument 1 must be type, not classobj をに置き換えるclass …

1
パンダのread_xml()メソッドのテスト戦略
現在、pandas I / Oツールはread_xml()メソッドと対応するものを維持していませんto_xml()。ただし、read_jsonツリーのような構造をデータフレームのインポートとread_htmlマークアップ形式に実装できることを証明しています。 パンダのチームは、このような考慮しなければread_xmlバージョンパンダの将来のための方法を、どのような実装彼らが追求するでしょう:ビルトインで解析するxml.etree.ElementTreeのでiterfind()かiterparse()、機能やサードパーティのモジュールlxmlのXPath 1.0のとXSLT 1.0の方法で? 以下は、単純でフラットな要素中心のXML入力での4つのメソッドタイプのテスト実行です。すべては、ルートの第2レベルの子の一般化された解析用に設定されており、各メソッドはまったく同じパンダデータフレームを生成する必要があります。pd.Dataframe()辞書のリストの最後の呼び出しを除くすべて。XSLTメソッドは、XMLをCSVに変換してでキャストStringIO()しpd.read_csv()ます。 質問 (マルチパート) パフォーマンス:iterparseファイルが繰り返し解析されるときに、サイズの大きいファイルにしばしば推奨される遅い方法をどのように説明しますか?if論理チェックが原因の一部ですか? メモリ:CPUメモリはI / O呼び出しのタイミングと相関関係がありますか?XSLTおよびXPath 1.0は、ファイル全体を解析するためにメモリ内で読み取る必要があるため、大きなXMLドキュメントではうまく拡張できない傾向があります。 戦略:辞書のリストはDataframe()通話に最適な戦略ですか?これらの興味深い答えを見てください:ジェネレーターのバージョンとiterwalkのユーザー定義バージョン。両方のリストをデータフレームにアップキャストします。 入力データ(私たちのパンダの友達が含まれる年別のStack Overflowの現在のトップユーザー) <?xml version="1.0" encoding="utf-8"?> <stackoverflow> <topusers> <user>Gordon Linoff</user> <link>http://www.stackoverflow.com//users/1144035/gordon-linoff</link> <location>New York, United States</location> <year_rep>5,985</year_rep> <total_rep>499,408</total_rep> <tag1>sql</tag1> <tag2>sql-server</tag2> <tag3>mysql</tag3> </topusers> <topusers> <user>Günter Zöchbauer</user> <link>http://www.stackoverflow.com//users/217408/g%c3%bcnter-z%c3%b6chbauer</link> <location>Linz, Austria</location> <year_rep>5,835</year_rep> <total_rep>154,439</total_rep> <tag1>angular2</tag1> <tag2>typescript</tag2> <tag3>javascript</tag3> </topusers> <topusers> <user>jezrael</user> …
109 python  xml  pandas  xslt  xpath 

2
Pythonの単純な「if」または論理ステートメント[終了]
休業。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善してみませんか?詳細を追加し、この投稿を編集して問題を明確にしてください。 4ヶ月前に閉鎖。 この質問を改善する Pythonでは次のように書きますか? if key < 1 or key > 34: 私は考えられるあらゆる方法を試してみましたが、非常にイライラしていると感じています。

10
Django IntegerFieldをchoices =…名前で設定します
選択肢オプション付きのモデルフィールドがある場合、人間が読める名前に関連付けられたいくつかの魔法の値を持つ傾向があります。Djangoには、値の代わりに人間が読める名前でこれらのフィールドを設定する便利な方法はありますか? このモデルを考えてみましょう: class Thing(models.Model): PRIORITIES = ( (0, 'Low'), (1, 'Normal'), (2, 'High'), ) priority = models.IntegerField(default=0, choices=PRIORITIES) ある時点でThingインスタンスがあり、その優先順位を設定したいと考えています。明らかに、 thing.priority = 1 ただし、これにより、PRIORITIESの値と名前のマッピングを覚えておく必要があります。これは機能しません: thing.priority = 'Normal' # Throws ValueError on .save() 現在、私はこの愚かな回避策を持っています: thing.priority = dict((key,value) for (value,key) in Thing.PRIORITIES)['Normal'] しかし、それは不格好です。このシナリオがどれほど一般的であるかを考えると、誰かがより良い解決策を持っているかどうか疑問に思っていました。私が完全に見落とした選択名でフィールドを設定するためのいくつかのフィールドメソッドはありますか?



11
Pythonの「is」演算子を理解する
isオペレータは、変数の値が、インスタンス自身と一致していません。 それはどういう意味ですか? 2つの変数に名前xをy付けて宣言し、両方の変数に同じ値を割り当てましたが、is演算子を使用するとfalseが返されます。 説明が必要です。これが私のコードです。 x = [1, 2, 3] y = [1, 2, 3] print(x is y) # It prints false!
109 python  operators 

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