python - 我如何为班级球员中的每个球员分配一个数字?
问题描述
我已经制作了这个简单的程序,到目前为止所做的只是创建坦克,但是我遇到了一个问题。我希望它分配一个对应于它的第一个第二个第三个或第四个等的数字......有人可以提前帮助我吗?
class Player:
def __init__(self, name, tank_name):
self.name = name
self.tank_name = tank_name
self.number = number
players = input('Please type player amount >>> ')
try:
players = int(players)
except ValueError:
print('Whoops... ' + players + ' is not a valid number. The auto amount is two players.')
players = int(2)
number = 0
def new_player():
name = input('What is your name >>> ')
tank_name = input('What is your tanks name >>> ')
number = str(number)
number = Player(name, tank_name)
for i in range(0, players):
number = int(number)
number = number + 1
new_player()
print()
print('Next player or end of player creation.')
print()
解决方案
您可以通过将number
其new_player
更改为:
def new_player(number):
name = input('What is your name >>> ')
tank_name = input('What is your tanks name >>> ')
return Player(name, tank_name, number)
请注意,我现在return
将其创建Player
为您忘记做的创建。
我们现在给number
,Player
所以我们需要改变__init__
这个:
def __init__(self, name, tank_name, number):
self.name = name
self.tank_name = tank_name
self.number = number
现在你实际上已经有了一个变量number
,你每次都增加 1(使用number = number + 1
),但你可以i
直接像这样使用。因为每次都会为您range
增加一:i
for i in range(0, players):
player = new_player(i)
print()
print('Next player or end of player creation.')
print()
请注意我是如何摆脱int
使用的,因为i
这里已经是一个整数。
如果您想从 1 而不是 0 开始播放器,您可以更改new_player(i)
为new_player(i + 1)
.