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

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

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

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

Q&A

解決済

2回答

4531閲覧

type error の直し方が分からない

ssiinnzo

総合スコア2

Python

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

0グッド

0クリップ

投稿2020/12/21 14:45

編集2020/12/21 14:47

type error の直し方が分からない

二つの商品の単位値段を求めてgもしくは個数当たりの値段の違いとどちらがお得かを求めるものを作りたいのですが、恐らく関数の途中でtype errorが出てきてしまいます。type errorの意味とどこをどう直せばいいのかご教授お願いいたします

発生している問題・エラーメッセージ

Traceback (most recent call last): File "C:\Users\__\Pictures\a.py", line 29, in <module> e = nedan(a, b) File "C:\Users\___\Pictures\a.py", line 27, in nedan return q / p TypeError: unsupported operand type(s) for /: 'str' and 'str'

該当のソースコード

python

1# coding:utf-8 2print("今から、金額の比較を始めます") 3#二つの質量や個数の異なる商品の一単位当たりの金額の比較をする 4print("一つ目の商品の『値段』を記入してください") 5a = input() 6print("承りました") 7print("次は、一つ目の商品の個数、または質量を記入してください") 8b = input() 9if a > b: 10 print("ありがとうございます") 11else : 12 print("やり直してください") 13 14print("二つ目の商品の『値段』を記入してください") 15c = input() 16print("承りました") 17print("次は、二つ目の商品の個数、または質量を記入して下さい") 18d = input() 19if c > d: 20 print("ありがとうございます") 21else: 22 print("やり直してください") 23 24print("計算します") 25#aをbで割って単位値段を求める式を関数化する 26def nedan(q, p): 27 return q / p 28 29e = nedan(a, b) 30f = nedan(c, d) 31if e > f: 32 g = e - f 33 print("一つ目の商品が一つ当たり %g 円安いです!") 34else: 35 h = f - e 36 print("二つ目の商品が一つ当たり %h 円安いです!")

試したこと 

関数の簡略化

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

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

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

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

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

guest

回答2

0

TypeError: unsupported operand type(s) for /: 'str' and 'str'

「文字列 / 文字列 はできないよ」と言うてます。
a,b,c,d が(数値ではなく)文字列なのでしょう。

※ input() は文字列を返すのでしょう。

投稿2020/12/21 14:54

episteme

総合スコア16612

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

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

0

ベストアンサー

inputで入力されるデータは文字列(str)なので、a, b, c, dは文字列のデータです。文字列を割り算できませんよね。

a = int(input())a = float(input())のようにして、intやfloatに変換してください。

投稿2020/12/21 14:52

Daregada

総合スコア11990

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

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

ssiinnzo

2020/12/21 15:17

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問