为什么这个代码不输出winner变量?

2024-04-20 05:16:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为我的计算机科学GCSE做一个骰子游戏,而且我对python还比较陌生。当尝试有条件地将新变量赋给现有变量时,代码将一直运行,直到输出新变量时返回Name Error。有人能提出解决办法吗?你知道吗

class player:
    def __init__(self):  
        self.name = "foo"

if player1.score > player2.score:
    winner = player1.name

elif player2.score < player1.score:
    winner = player2.name

print(winner)

应输出“foo”,但给出名称错误:未定义名称“winner”。你知道吗


Tags: 代码nameself名称游戏foo骰子条件
2条回答

尝试:

import random
class player:

    def __init__(self, name):
        self.name = name
        self.score = random.randint(1,6)
        print(self.name, self.score)

player_1 = player("Richard")
player_2 = player("Bob")
winner =''
if player_1.score > player_2.score:
    winner = player_1.score 
    print(winner)
elif player_2.score> player_1.score:
    winner = player_2.score 
    print(winner)
else:
    print("Tie.")

输出: enter image description here

让我来引导你

class player:
    self.name = "foo"

elif player2.score < player1.score:
    winner = player2.name

print(winner)

如果你看清楚你的代码。你在elif里面定义了胜利者。这意味着它之外的代码不知道什么是“赢家”。所以你需要在elif之外定义赢家。你知道吗

winner = ''
class player:
    self.name = "foo"

elif player2.score < player1.score:
    winner = player2.name

print(winner)

相关问题 更多 >