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

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



18
Python単体テストはどこに行くのですか?
ライブラリまたはアプリを作成している場合、単体テストファイルはどこに行きますか? テストファイルをメインアプリのコードから分離するのは良いことですが、テストするモジュールをインポートするのが難しくなるため、アプリのルートディレクトリ内の「tests」サブディレクトリにそれらを配置するのは厄介です。 ここにベストプラクティスはありますか?

11
辞書キーが利用できない場合はNoneを返します
そのキーが存在する場合にディクショナリ値を取得する方法、または単に返す方法が必要です Noneしない場合はです。 ただし、KeyError存在しないキーを検索すると、Pythonでは例外が発生します。キーを確認できることはわかっていますが、もっと明確なものを探しています。Noneキーが存在しない場合に戻る方法はありますか?


30
チャンクのリストを反復する最も「パイソン的な」方法は何ですか?
入力として整数のリストを受け取るPythonスクリプトがあり、一度に4つの整数を処理する必要があります。残念ながら、私は入力を制御できません。または、4要素のタプルのリストとして渡されます。現在、私はそれをこのように繰り返しています: for i in xrange(0, len(ints), 4): # dummy op for example code foo += ints[i] * ints[i + 1] + ints[i + 2] * ints[i + 3] それは「C-think」によく似ていますが、この状況に対処するためのよりパイソン的な方法があるのではないかと思います。リストは反復後に破棄されるため、保持する必要はありません。おそらく、このようなものが良いでしょうか? while ints: foo += ints[0] * ints[1] + ints[2] * ints[3] ints[0:4] = [] ただし、それでも「気分」はよくありません。:-/ 関連質問:Pythonではどのようにリストを均等なサイズのチャンクに分割しますか?

24
Pythonで数値をどのように切り上げますか?
この問題は私を殺しています。Pythonで数値を切り上げるにはどうすればよいですか? round(number)を試しましたが、切り捨てられました。例: round(2.3) = 2.0 and not 3, what I would like 私はint(number + .5)を試しましたが、再び数値を切り捨てました!例: int(2.3 + .5) = 2 次に、丸め(数値+ .5)を試しましたが、エッジケースでは機能しません。例: WAIT! THIS WORKED! お知らせ下さい。


15
virtualenvを削除/削除するにはどうすればよいですか?
次のコマンドで環境を作成しました。 virtualenv venv --distribute 私は、次のコマンドでそれを削除することはできません:rmvirtualenv venv- これはの一部であるvirtualenvwrapperで述べたようにvirtualenvwrapperについては、以下の回答 私は何ls私の現在のディレクトリにし、私はまだvenvを見ます 私がそれを削除できる唯一の方法は次のようです: sudo rm -rf venv 環境がアクティブでないことに注意してください。Ubuntu 11.10を実行しています。何か案は?役に立たないようにシステムを再起動してみました。

10
djangoでのビジネスロジックとデータアクセスの分離
私はDjangoでプロジェクトを書いていて、コードの80%がファイルにあることがわかりましたmodels.py。このコードは混乱を招き、一定の時間が経過すると、実際に何が起こっているのか理解できなくなります。 ここに私を悩ませるものがあります: モデルレベル(データベースからのデータの処理のみを担当するはずでした)もメールを送信したり、APIを他のサービスに提供したりしているのは醜いです。 また、ビジネスロジックをビューに配置することは、制御が難しくなるため、許容できません。たとえば、私のアプリケーションでは、の新しいインスタンスを作成する方法が少なくとも3つありますがUser、技術的には均一に作成する必要があります。 モデルのメソッドとプロパティが非決定的になるとき、および副作用が発生するときはいつでも気が付きません。 これは簡単な例です。最初は、Userモデルは次のようでした。 class User(db.Models): def get_present_name(self): return self.name or 'Anonymous' def activate(self): self.status = 'activated' self.save() 時間の経過とともに、次のようになりました。 class User(db.Models): def get_present_name(self): # property became non-deterministic in terms of database # data is taken from another service by api return remote_api.request_user_name(self.uid) or 'Anonymous' def activate(self): # method …


14
Pythonアサートのベストプラクティス
assertデバッグ目的でのみ使用するのではなく、標準コードの一部として使用すると、パフォーマンスまたはコードのメンテナンスの問題がありますか? です assert x >= 0, 'x is less than zero' より良いか悪いか if x < 0: raise Exception, 'x is less than zero' また、if x < 0 raise errorそのように常にチェックされるようなビジネスルールを設定する方法はありますか。try/except/finallyコード全体でいつでもx0未満の場合assert x < 0、関数の開始時、関数内のどこかに設定した場合のように、エラーが発生します。どこxが0未満になると、例外が発生しますか?

21
Pandas DataFrameで値がNaNかどうかを確認する方法
Python Pandasで、DataFrameに1つ(または複数)のNaN値があるかどうかを確認する最良の方法は何ですか? 私は関数について知っていますpd.isnanが、これは各要素に対してブール値のDataFrameを返します。この投稿はここでも私の質問に正確に答えるものではありません。
483 python  pandas  dataframe  nan 


29
現在実行中のファイルのパスと名前を取得するにはどうすればよいですか?
他のスクリプトファイルを呼び出すスクリプトがありますが、プロセス内で現在実行されているファイルのファイルパスを取得する必要があります。 たとえば、3つのファイルがあるとします。execfileの使用: script_1.pyを呼び出しますscript_2.py。 次に、をscript_2.py呼び出しますscript_3.py。 どのように私は、ファイル名とパスを取得することができscript_3.py、内のコードからscript_3.pyから引数としてその情報を渡すことなく、script_2.py? (実行するとos.getcwd()、現在のファイルではなく、元の開始スクリプトのファイルパスが返されます。)
482 python  scripting  file 

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