質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

2936閲覧

2つのリストの数値を総当たりで計算する際,float division by zeroの処理

hab_na201

総合スコア7

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/09/27 05:48

(1-v2)/(3.14E((i2 + j2)(1/2)))

この式を計算するために以下のプログラムを書いたのですが,

float division by zero

というエラーが出てしまいました.
これは分母が0になってしまうことによるものということまではよいのですが,
計算に利用するリストから分母が0になるものを取り除くには具体的にどのようにすればよいのでしょうか.

Python

1result = [] 2 3lx = list(range(10)) 4ly = list(range(10)) 5 6print(lx) 7print(ly) 8 9for i in lx: 10 for j in ly: 11 result.append((1-0.25**2)/(3*205*((i**2 + j**2)**(1/2)))) 12 print(result)

環境は
Python 3.6.4 |Anaconda, Inc.| [MSC v.1900 64 bit (AMD64)] on win32
です.

よろしくお願いします.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

まず先に分母の部分を計算して、それが0の場合に「無視」する(もしくは0やNoneなどを追加する)と良いかと思います。

for i in lx: for j in ly: denominator = 3*205*((i**2 + j**2)**(1/2)) if denominator != 0: result.append((1-0.25**2)/denominator) print(result) else: #result.append(None) continue

投稿2019/09/27 06:01

Kapustin

総合スコア1186

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hab_na201

2019/09/27 06:05

ご回答ありがとうございました!
guest

0

ベストアンサー

単純に処理(計算&結果の追記)をしなければ良いのではないでしょうか

Python

1result = [] 2lx = list(range(10)) 3ly = list(range(10)) 4 5for i in lx: 6 for j in ly: 7 if (i**2 + j**2) == 0: 8 # 分母が0の場合は処理しない 9 continue 10 result.append((1-0.25**2)/(3*205*((i**2 + j**2)**(1/2)))) 11print(result)

投稿2019/09/27 05:55

magichan

総合スコア15898

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hab_na201

2019/09/27 06:04

ありがとうございます! 解決しました.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問