TypeError: Невозможно неявно преобразовать объект 'int' в str при создании экземпляров класса в цикле for

python class for-loop

378 просмотра

2 ответа

Я получаю сообщение об ошибке «TypeError: Невозможно неявно преобразовать объект« int »в str» при использовании цикла for для создания экземпляров класса. Я довольно новичок в программировании и раньше не видел этой ошибки.

class Player(object):  
    properties = []
    def __init__( self, name, wealth, player_number):
        self.name = name
        self.wealth = wealth
        self.player_number = player_number
    def __repr__(self):
        return str(self.wealth)

players = {}

for x in range(0, Player_count):
    players["player_" + x] = Player(input("Name"), input("Starting Wealth"), x)

Я получаю ошибку, когда она достигает х

Автор: user2734370 Источник Размещён: 12.11.2019 09:09

Ответы (2)


1 плюс

Решение

Превратите целое число в строку явно :

 players["player_" + str(x)] = Player(input("Name"), input("Starting Wealth"), x)

или используйте форматирование строки:

 players["player_{}".format(x)] = Player(input("Name"), input("Starting Wealth"), x)

Вы не можете просто объединить строку ( player_) и целое число (число между 0и Player_count), на которое ссылается x.

Автор: Martijn Pieters Размещён: 30.08.2013 09:36

1 плюс

Вы не можете добавлять строки и числа

Неправильно:

["player_" + x]

Верный:

['player_%d' % x']

Или новый formatметод:

['player_{0}'.format(x)]
Автор: Viktor Kerkez Размещён: 30.08.2013 09:36
Вопросы из категории :
32x32