TypeError: невозможно объединить объекты 'str' и 'float' - MCEdit

У меня есть это:

    rotValues = '[rx='+ rotx + ',' + "ry=" + roty +"]" 

Выдает ошибку, показанную в заголовке, помогите пожалуйста!

3 ответа

Решение

Другой (и гораздо лучший способ) сделать это - использовать str.format метод:

>>> rotx, roty = 5.12, 6.76
>>> print '[rx={},ry={}]'.format(rotx, roty)
[rx=5.12,ry=6.76]

Вы также можете указать точность, используя format:

>>> print '[rx={0:.1f},ry={1:.2f}]'.format(rotx, roty)
[rx=5.1,ry=6.76]

Просто попробуйте это:

>>> rotValues = '[rx='+ str(rotx) + ',' + "ry=" + str(roty) +"]" 
>>> print rotValues
[rx=1.0,ry=2.0]

Вы получаете эту ошибку, потому что вы пытаетесь объединить строку с плавающей точкой. Python, будучи строго типизированным языком, этого не допустит. Таким образом, вы должны преобразовать rotx а также roty Значения для строк следующим образом:

rotValues = '[rx='+ str(rotx) + ',' + "ry=" + str(roty) +"]"

Если вы хотите, чтобы ваши ценности (rotx а также roty) чтобы иметь определенную точность в десятичных точках, вы можете сделать:

rotValues = '[rx='+ str(round(rotx,3)) + ',' + "ry=" + str(round(roty,3)) +"]"

>>> rotx = 1234.35479334
>>> str(round(rotx, 5))
'1234.35479'
Другие вопросы по тегам