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

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

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

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

Q&A

解決済

2回答

1567閲覧

python3初心者です。学習書の下記のコードをコピペしたのですがエラーが出てしまいます。

grilled_python

総合スコア237

Python 3.x

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

0グッド

0クリップ

投稿2018/01/01 11:47

python3初心者です。学習書の下記のコードをコピペしたのですがエラーが出てしまいます。
文字列を割る3できないよって感じでしょうか?その場合正しい記述方法をご教授下さい。よろしくおねがいします。

class Score:
def init( self):
self. name = 'Unknown'
self. math = 0
self. english = 0
self. japanese = 0
def get_average(self):
return (self.math + self.english + self.japanese)/3 #エラーの出た場所

taro = Score()
taro.name = "taro"
taro.math = "60"
taro.english = "70"
taro.japanese = "80"

ave = taro.get_average() #エラーの出た場所
print(ave)

エラーメッセージ
ave = taro.get_average()line 91, in get_average

return (self.math + self.english + self.japanese)/3

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

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

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

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

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

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

guest

回答2

0

ベストアンサー

こんにちは。

以下の部分

python

1taro.math = "60" 2taro.english = "70" 3taro.japanese = "80"

を、次のように修正したら、うまく動くのではないかと思います。

python

1taro.math = 60 2taro.english = 70 3taro.japanese = 80

投稿2018/01/01 11:54

編集2018/01/01 12:48
jun68ykt

総合スコア9058

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

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

退会済みユーザー

退会済みユーザー

2018/01/01 12:33 編集

To: nolcaさん TypeError: unsupported operand type(s) for /: 'str' and 'int' 型エラー:`str(文字列)`と`int(整数)`に対する/(割り算)は、サポートされていないオペランド(演算子)型です。 ということです。直前に実際のコードがありますが、(60(文字列)+70(文字列)+80(文字列))/3(整数)が原因ということですね。
jun68ykt

2018/01/01 12:47

@slash さん フォローどうもです!
grilled_python

2018/01/05 12:39

ありがとうございます。エラーのラインではなくその周辺だったのですね。気をつけて行きたいと思います。
jun68ykt

2018/01/05 18:33

解決したようですね、よかったです!
guest

0

python

1class Score: 2 def __init__( self): 3 self. name = 'Unknown' 4 self. math = 0 5 self. english = 0 6 self. japanese = 0 7 8 def get_average(self): 9 return (self.math + self.english + self.japanese)/3 #エラーの出た場所 10 11taro = Score() 12taro.name = "taro" 13taro.math = 60 14taro.english = 70 15taro.japanese = 80 16ave = taro.get_average() #エラーの出た場所 17 18print(ave)

投稿2018/01/01 16:30

編集2018/01/04 15:41
Untitled_Sample

総合スコア192

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

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

LouiS0616

2018/01/01 17:16

initじゃなくて__init__かと。 質問ではマークダウン記法の影響でアンダーバーが消えて、initが斜体になってしまっていますが。
Untitled_Sample

2018/01/04 15:42

動いちゃったので、気づきませんでした。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問