python オブジェクト指向 練習
昨日も投稿させていただいたのですが、相変わらず同じ練習問題から抜けきれません。
現在野球チームの点数と勝率を表示させる表を作成しています。
昨日の質問に回答していただいた方のコードを参考にして、チーム名や点数の表示はできたのですが、
勝率を表示させようとすると、0 になるかもしくは空白になってしまいます。
class Baseball_Team:
def __init__(self,name="team",\
win="win",lose="lose",\
draw="draw"):
self.name = name
self.win = win
self.lose = lose
self.draw = draw
self.win_rate=0
def clac_win_rate(self):
self.win_rate = str(self.win / (self.win + self.lose))
def show_team_result(self):
show_team_result=(f"{self.name:8}{self.win:4}{self.lose:5}{self.draw:4}{str(round(self.win_rate,3)):6}")
print(show_team_result)
print("team win lose draw rate")
Giants = Baseball_Team("Giants",77,64,2)
Giants.show_team_result()
BayStars = Baseball_Team("BayStars", 71, 69, 3)
BayStars.show_team_result()
Tigers = Baseball_Team("Tigers", 69, 68, 6)
Tigers.show_team_result()
Carp = Baseball_Team("Carp", 70, 70, 3)
Carp.show_team_result()
Dragons = Baseball_Team("Dragons", 68, 73, 2)
Dragons.show_team_result()
Swallows = Baseball_Team("Swallows", 59, 82, 2)
Swallows.show_team_result()
team win lose draw rate
Giants 77 64 20
BayStars 71 69 30
Tigers 69 68 60
Carp 70 70 30
Dragons 68 73 20
Swallows 59 82 20
このように、rateの部分が空白になってしまいます。
self.win_rate = str(self.win / (self.win + self.lose))
この結果を表示させたいだけなのですが、
Giants.show_team_result()の下にclac_win_rateを表示さても空白なのです、
エラーが出るならまだ調べたりできるのですが、なぜこのような結果になるのか教えていただきたいです。
よろしくお願いします。
class Baseball_Team:
def __init__(self,name="team",\
win="win",lose="lose",\
draw="draw"):
self.name = name
self.win = win
self.lose = lose
self.draw = draw
self.win_rate=0
def clac_win_rate(self):
self.win_rate = str(self.win / (self.win + self.lose))
def show_team_result(self):
show_team_result=(f"{self.name:8}{self.win:4}{self.lose:5}{self.draw:4}{str(round(self.win_rate,3)):6}")
print(show_team_result)
print("team win lose draw rate")
Giants = Baseball_Team("Giants",77,64,2)
Giants.show_team_result()
Giants.clac_win_rate()#ここが追加したコードです。
BayStars = Baseball_Team("BayStars", 71, 69, 3)
BayStars.show_team_result()
Tigers = Baseball_Team("Tigers", 69, 68, 6)
Tigers.show_team_result()
Carp = Baseball_Team("Carp", 70, 70, 3)
Carp.show_team_result()
Dragons = Baseball_Team("Dragons", 68, 73, 2)
Dragons.show_team_result()
Swallows = Baseball_Team("Swallows", 59, 82, 2)
Swallows.show_team_result()
team win lose draw rate
Giants 77 64 20
BayStars 71 69 30
Tigers 69 68 60
Carp 70 70 30
Dragons 68 73 20
Swallows 59 82 20