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'