どのフォームがより効率的か、正しいスタイルかなどが不思議です。私は ".0"アプローチがはるかに速いと感じています。私はなぜ "フロート"のアプローチが(もしそうなら)平等に評価されているのか分かりません。Pythonで7.0またはfloat(7)を使用するのに計算量が少なくて済みますか?
答えて
はPythonがglobals()
でfloat
機能を見つけて、それを呼び出すために持っているいくつかの不要なオーバーヘッド—を追加します。 7.0
を使用すると、実行時ではなくコンパイル時にすべての必要な変換が実行されます。これはPython bytecode disassemblerを使用して確認できます。
>>> import dis
>>> def f(): return 7.0
...
>>> def g(): return float(7)
...
>>> dis.dis(f)
1 0 LOAD_CONST 1 (7.0)
3 RETURN_VALUE
>>> dis.dis(g)
1 0 LOAD_GLOBAL 0 (float)
3 LOAD_CONST 1 (7)
6 CALL_FUNCTION 1
9 RETURN_VALUE
7.0は「良い」です。キャストを浮かせる必要はなく、自動的に行います。
float()は、浮動小数点から浮動小数点へのキャストで最もよく保存されます。
浮動小数点数は7.0
と書くことができます。浮動小数点数は自動的にタイプfloat
であるため、大丈夫です。
整数または文字列を浮動小数点数に変換する場合は、float()
関数が適切ですが、浮動小数点定数を書くために関数を呼び出す必要はありません。
float(7)
アプローチは、それは別の使用ですので、例えば、フロートに整数や文字列の型を変換するために使用され、7.0
アプローチを使用します。
a = 7
b = "7"
print float(a)
7.0
print float(b)
7.0
ああ、私は今、その使用が見えます。ありがとうございました! – piperchester
問題はありません。そして、ようこそSO: – Hassek
'float()'はいくらかのオーバーヘッドも発生させます。 –
float(0)
を使用すると、はるかに明確なときに再読み込みあなたのコードです後で誤って「.0
」を落としてしまった場合、混乱が少なくなります。 float(7)
を使用して
誤ってそれを正確にどのように削除しますか? –
@MichaelHoffmanあなたは 'this_should_be_a_float = 7.0/denominator'を持っているとしましょう。ここで、分母はintです。私の考えは、将来のメンテナンス性のために、誰かが後で7.0を別の定数に変更した場合に丸めの問題を起こさないために、 '7.0'を浮動小数点にする必要があることを指摘するための非常に明白な方法6とし、 ".0"を追加するのを忘れてしまった。 – CraigTeegarden
'__future__ import division'をまだ使用していない場合は、それを使用してください。そして、これは問題ではありません。 –
次はPythonですべて等価です。
>>> 7. == 7.0 == float(7) == float("7")
True
私はあなたが値をハードコーディングされたときにPythonインタプリタが最初の整数に値をキャストしなければならないとして、float(7)
またはfloat("7")
を使用して避けるだろうまたは文字列に変換し、浮動小数点に変換します。
オーバーヘッドを避けるには、7.
または7.0
を使用して、Pythonに浮動小数点定数を与えます。
もちろん、float()
は、他のデータ型をfloatに変換するために使用する必要があります。
7.0
はもっと速くなければなりません。 float(7)
は整数を作成し、次にfloat()
関数を呼び出して整数をfloatに変換します。したがって、float(7)
を呼び出すと、関数呼び出しのオーバーヘッドと、float()
関数のエラーチェックが行われます。
ほとんどの実用的な目的のために、速度の違いはあまり問題になることはありません(コードが何百万回も呼ばれている深いループにいない限り)。しかし、インタプリタに浮動小数点を構築する構文が組み込まれている場合は、変換関数を使用します。
変換する浮動小数点数(文字列または整数など)がない場合は、float()
を使用してください。
- 1. Vue.js数量を更新するための計算済みプロパティ
- 2. Naive Bayesの仮定により、セグメント化の計算量が少なくなっていますか?
- 3. intとoutput floatを使用して計算しますか?
- 4. 少なくともnまでのフィボナッチ数を計算する
- 5. awkを使用して統計量を計算します
- 6. Pythonでリストを使って降雨量を計算する
- 7. PHPで静的メソッドやプロパティを使用すると、メモリ使用量は少なくなりますか?
- 8. webpackのローダーが少なくて済む
- 9. float parseはWindows 7または8で異なりますか?
- 10. parallelperiodを使用して計算済みメジャーを作成中に合計がありません
- 11. オブジェクトが使用するRAMの量はどのようにして計算できますか?
- 12. IE計算済みCSSスタイル
- 13. スウィフト計算済みプロパティテンプレート?
- 14. Cassandraの小さなテーブルを使用すると、ディスクの空き容量が少なくなりますか?
- 15. Pythonを使用して近似の誤差を計算すると、ステップサイズが小さくなるにつれて減少します
- 16. Cでfloatまたはuint64型を使用しないで発振器周波数を計算する
- 17. PHPでのスクリプトメモリ使用量の計算?
- 18. Javascriptの帯域幅使用量を計算するには?
- 19. TheanoのGPUメモリ使用量を計算するには?
- 20. アクセス計算済みのフィールドでサブクエリーを使用して前のレコードを検索
- 21. ユーザーあたりのメモリ使用量を計算するPowerShellスクリプト
- 22. 計算されたメンバーを作成して、計算済みのメジャーをロードする必要がなくなった場合
- 23. jqueryまたはjavascriptを使用して価格と数量を計算
- 24. 準備済みの文を閉じて再度開くと、クエリプランが再計算されますか?
- 25. JSR-363を使用してカスタムユニット(または定義済みの数量) "ロール"を定義する方法は?
- 26. 最後の計算で使用されていなくても計算値で観測値を使用する
- 27. JavaのSwingと比較してCPUとRAMの使用量は少なくなりますか?
- 28. プロセスのCPU使用量をProcess.TotalProcessorTimeから計算する
- 29. PHP 7.0では、 "$ REQUEST_METHOD"のような定義済みの変数にアクセスすることができません
- 30. アプリケーションエンジンの使用済みリソースの量を取得する
有用と判断された場合は、以下の回答を受け入れてください。 –