Python 打印输出时显示无

Python 打印输出时显示无,python,Python,我编写了以下程序来演示类对象列表。它将三个对象的名称和分数作为输入,然后存储到一个列表中,最后程序显示所有信息,即与对象关联的名称和分数 class Info: def __init__(self, name, score): self.name = name self.score = score def display(self): print(f"Name :- {self.name}, Score :- {self.sco

我编写了以下程序来演示类对象列表。它将三个对象的名称和分数作为输入,然后存储到一个列表中,最后程序显示所有信息,即与对象关联的名称和分数

class Info:

    def __init__(self, name, score):
        self.name = name
        self.score = score

    def display(self):
        print(f"Name :- {self.name}, Score :- {self.score}")


game_info = []
for i in range(3):
    n = input("Enter Your Name :- ")
    s = int(input("Enter Your Score :- "))
    game_info.append(Info(n, s))
    print()

for i in range(3):
    print(game_info[i].display())
    print()
输出:-

Enter Your Name :- a 
Enter Your Score :- 1

Enter Your Name :- b 
Enter Your Score :- 2

Enter Your Name :- c 
Enter Your Score :- 3

Name :- a, Score :- 1 
None

Name :- b, Score :- 2 
None

Name :- c, Score :- 3 
None

每次我尝试打印值时,输出都显示
None
。那么我应该怎么做才能从程序输出中删除它呢?

display
函数不返回任何内容。因此它默认为
None
。 所以

打印您的预期输出。但这意味着
None

print(game_info[i].display())
您可以更改
显示
功能

return f"Name :- {self.name}, Score :- {self.score}".

编辑:正如roganjosh指出的,我的描述不够清晰。从game_info[i]中取出print()函数。最后一个for循环中的display()将解决此问题

class Info:

    def __init__(self, name, score):
        self.name = name
        self.score = score

    def display(self):
        print(f"Name :- {self.name}, Score :- {self.score}")


game_info = []
for i in range(3):
    n = input("Enter Your Name :- ")
    s = int(input("Enter Your Score :- "))
    game_info.append(Info(n, s))
    print()

for i in range(3):
    game_info[i].display()
    print()
输出:

Enter Your Name :- Bob
Enter Your Score :- 1

Enter Your Name :- Jane
Enter Your Score :- 2

Enter Your Name :- Sally
Enter Your Score :- 3

Name :- Bob, Score :- 1

Name :- Jane, Score :- 2

Name :- Sally, Score :- 3
使用返回函数

return("Name :- {}, Score :- {}".format(self.name,self.score))

因为
game\u info[i].display()
打印返回值将
print(game\u info[i].display())
更改为仅
game\u info[i].display()。
display()
方法打印您想要的结果,但没有
return
值,因此返回
None
。这意味着
print(game_info[i].display())
然后变成
print(None)
可能与添加的我的输出重复。如您所见,您只需删除游戏信息[i].display()函数周围的print语句即可获得所需的输出。另外,缩进似乎已关闭,请格式化您的答案代码块
return("Name :- {}, Score :- {}".format(self.name,self.score))