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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

4回答

1232閲覧

ランダムな2つの値の差が5以下であれば出力するプログラム

退会済みユーザー

退会済みユーザー

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

1グッド

0クリップ

投稿2019/01/09 05:16

編集2019/01/09 05:23

python3

1コード 2for row in new_data: 3 if len(row)==7: 4 ddata=(row[3]) 5 ans = [] 6 for i in range(0, len(ddata)): 7 for j in range(i + 1, len(ddata)): 8 if abs(ddata[i] - ddata[j]) < 0.1: 9 ans.append([ddata[i], ddata[j]]) 10 11 print(ans) 12

ランダムな2つの値の差が5以下であれば出力するプログラムを作りたいのですが, 
エラーが出てしまいます.

誰か教えてください.

エラー
if abs(data[i] - data[j]) < 6:
TypeError: unsupported operand type(s) for -: 'str' and 'str'

bochan2👍を押しています

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

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

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

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

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

y_waiwai

2019/01/09 05:19

エラーが出るなら、そのエラーメッセージを、そのままコピペで提示しましょう # またおまえか案件?
azuapricot

2019/01/09 05:26

#またおまえか案件ですねぇ
tiitoi

2019/01/09 05:27

????????????????????????????
firedfly

2019/01/09 05:28

こんにちは。 そのエラーメッセージは、提示されたコードとの整合性が取れていません。 重要な情報ですので、実行したコードとその際のエラーコードを提示してくださいませ。
退会済みユーザー

退会済みユーザー

2019/01/09 05:59

低評価押した方は理由を教えてください
tiitoi

2019/01/09 06:06

????????????
yoorwm

2019/01/09 06:09

この程度の事が分からないようでは、プログラムなんて出来なくないですか?
coco_bauer

2019/01/09 07:00

出来ないのでしょう。そして、回答してもらった内容を理解しようともしない。私は匙を投げました。
azuapricot

2019/01/09 07:08

そうなんですよね、回答してもずばり求めていたそのコードが書かれていないと 読みもせずそうじゃない、ちがう、こんなの求めていないと文句をいう、 低評価がついて当然なんですよねぇ。 毎度毎度たくさん質問するのであれば少しくらい頑張って理解しようとしてもいいと思うのですが・・・。
umaru_5

2019/01/09 07:32

なに言われても結局回答する人がいるんだもん そりゃ調子乗って質問するでしょ
guest

回答4

0

落ち着きましょう。 ゆっくり深呼吸を10回してから読んでください。

===
『差が5以下であれば』っていう設問なのに、質問に書かれたプログラムには "5"とか"6"という数字が使われていません。

それに気が付けば、質問のコードでは『差が5以下であれば』が実現できないことは明らかですよね。

===
また、質問に書かれたコードと何の関係があるのか判らない

エラー

if abs(data[i] - data[j]) < 6:
TypeError: unsupported operand type(s) for -: 'str' and 'str'

と書かれているのも変。

エラーには、エラーが出たプログラムの該当箇所が表示されます。
質問に書かれたプログラムと、質問に書かれたエラーの原因になったプログラムが違うというなら、ちゃんと整合させてください(辻褄の合わないことを質問していては、まともな回答は得られません)

投稿2019/01/09 05:46

coco_bauer

総合スコア6915

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

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

退会済みユーザー

退会済みユーザー

2019/01/09 05:48

そういう問題じゃないです
coco_bauer

2019/01/09 06:55

質問のコードと、 そこから出たというエラーに矛盾があるということは、矛盾した質問をしているという事です。 矛盾から正しい答えは出ない。 ここは、答えを求める人たちと、正しく答えようとする人たちが集まる場だと認識しています。
guest

0

こんにちは。
これは「文字列から文字列をマイナスすることはできない」という型エラーです。

Python

1if abs(data[i] - data[j]) < 6: 2TypeError: unsupported operand type(s) for -: 'str' and 'str'

new_dataに減算できる数値を入れているか確認してみてください。
たとえば下のようにして、文字列型が入っていないかチェックできます。

Python

1if type(data[i]) == type('string'): 2 print('data[{}] is string!'.format(i))

投稿2019/01/09 05:32

編集2019/01/09 05:46
firedfly

総合スコア1131

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

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

退会済みユーザー

退会済みユーザー

2019/01/09 05:36

減算できる数値入ってます!
退会済みユーザー

退会済みユーザー

2019/01/09 05:52

stringってでました
firedfly

2019/01/09 06:00

であればそれはstringです(たとえば3.0は数値ですが、"3.0"は文字列です)。 float(data[i])のように数値に変換してから引き算するか、最初から数値で格納しましょう。
azuapricot

2019/01/09 06:14

やっぱりStringやないか~~~~い。
退会済みユーザー

退会済みユーザー

2019/01/09 06:17

文字列型によって変わってくるんですね。 難しい
azuapricot

2019/01/09 06:19

文字列型によって変わるんじゃなくて、型によって変わるんですけど 質問者さんは 型 についてきちんと理解していますか? 数字とか文字とかだけじゃないですけどさすがに大丈夫ですよね?
guest

0

http://cointoss.hatenablog.com/entry/2013/01/10/123733

↑のサイトで書いてある通りな気がしますが、
文字列型 - 文字列型はできないって怒られてるんじゃないですか?
まぁエラー文に書いてあること日本語におこしただけですが。

if abs(ddata[i] - ddata[j]) < 0.1:

ddataに何が入っているかは知りませんが、中身は想定しているものになっているんですか?

投稿2019/01/09 05:30

azuapricot

総合スコア2341

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

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

退会済みユーザー

退会済みユーザー

2019/01/09 05:38

見てもわからないです 2つのランダムの差が0.01以下であればパターンとして出力。 ddataの中には様々な数値が格納されていますよ!
azuapricot

2019/01/09 05:41

数値っていっても、文字列型で数値が格納されているんじゃないですか? 表面上は数字に見えても内部上では文字列だったりするので。 https://note.nkmk.me/python-type-isinstance/ ↑のサイトに書かれているように、中身の型を取得して判定してみてください。
guest

0

ベストアンサー

解決しました。サンキュー

投稿2019/01/11 06:22

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

firedfly

2019/01/11 06:44

ベストアンサーは「自分のお礼」に対してつけるのではなく 回答してもらった中でいちばん役に立ったものを選びましょう。 質問とベストアンサーが対になって、ほかの人が見たとき役に立ちます。
退会済みユーザー

退会済みユーザー

2019/01/11 06:47

全然参考にならなかったので もう少し質問の内容に近いものがあったらベストアンサーとして評価してあげますよ。
firedfly

2019/01/11 06:49

自己解決したならなによりです。 その解決した方法を書いてもらえると、あとから他の人が見たときに役立ちます。
azuapricot

2019/01/11 08:04

解決したなら参考になったんだと思うんですけどねぇ、アレェ?
firedfly

2019/01/11 09:20

質問したい内容を表現する力も、解決した経緯を説明する礼儀もないんでしょう。 あなたたちの回答はなんの参考にもならなかったと放言してはばからない人なので致し方ないですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問