[解決済み] range() フロート用
2022-04-20 01:48:05
質問
はあるのでしょうか?
range()
Pythonのfloatに相当するものですか?
>>> range(0.5,5,1.5)
[0, 1, 2, 3, 4]
>>> range(0.5,5,0.5)
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
range(0.5,5,0.5)
ValueError: range() step argument must not be zero
解決方法は?
<ストライク ビルトイン関数を知らないのですが、[this](https://stackoverflow.com/a/477610/623735)のような書き方をすれば、それほど複雑にはならないはずです。def frange(x, y, jump):
while x < y:
yield x
x += jump
---
コメントにもあるように、これでは、次のような予測できない結果が出る可能性があります。
>>> list(frange(0, 100, 0.1))[-1]
99.9999999999986
期待通りの結果を得るには、この質問の他の回答のいずれかを使用するか、@Tadhgが言及したように、次のようにします。
decimal.Decimal
を
jump
引数で指定します。初期化はfloatではなく、必ずstringで行ってください。
>>> import decimal
>>> list(frange(0, 100, decimal.Decimal('0.1')))[-1]
Decimal('99.9')
あるいは、さらに
import decimal
def drange(x, y, jump):
while x < y:
yield float(x)
x += decimal.Decimal(jump)
そして
>>> list(drange(0, 100, '0.1'))[-1]
99.9
[エディターズノット: もし、ポジティブな
jump
と整数のスタートとストップ (
x
と
y
) であれば、問題なく動作します。より一般的な解決策としては
こちら
.]
関連
-
[解決済み】Python - "ValueError: not enough values to unpack (expected 2, got 1)" の修正方法 [閉店].
-
[解決済み] for'ループでインデックスにアクセスする?
-
[解決済み] __init__.py は何のためにあるのですか?
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] なぜC++はPythonよりもstdinからの行の読み込みが遅いのですか?
-
[解決済み] Pythonでシングルトンを作成する
-
[解決済み] 億の相対的輸入
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】forループを使った辞書の反復処理
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python interpreted model libraryによる機械学習モデル出力の可視化 Shap
-
Pythonの@decoratorsについてまとめてみました。
-
[解決済み] _tkinter.TclError: 表示名がなく、$DISPLAY環境変数もない。
-
[解決済み】「RuntimeError: dictionary changed size during iteration」エラーを回避する方法とは?
-
[解決済み】Python regex AttributeError: 'NoneType' オブジェクトに 'group' 属性がない。
-
[解決済み】Django: ImproperlyConfigured: SECRET_KEY 設定は空であってはならない
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない
-
[解決済み】「OverflowError: Python int too large to convert to C long" on windows but not mac
-
[解決済み] 10進数のrange()ステップ値を使用するには?