TypeError: декодирование str не поддерживается

Я пытаюсь сделать рандомизатор характеристик атрибутов для настольной игры моего племянника, и я пытаюсь записать атрибуты во внешний файл, чтобы он мог использовать их позже. при попытке записи в файл выдает ошибку

speedE = str('Speed -', str(speed))
TypeError: decoding str is not supported

мой код добавляет вычисляемый атрибут к имени атрибута. т.е. ("Сила-", силаE) мой код...

import random

char1 = open('Character1.txt', 'w')
strength = 10
strength += int(random.randint(1, 12) / random.randint(1,4))
speed = 10
speed += int(random.randint(1, 12) / random.randint(1,4))
speedE = str('Speed -', str(speed))
char1.write(speedE)
strengthE = str('Strength -', str(strength))
char1.write(strengthE)
print(char1)
char1.close()

char2 = open('Character2.txt', 'w')
strength2 = 10
strength2 += int(random.randint(1, 12) / random.randint(1,4))
speed2 = 10
speed += int(random.randint(1, 12) / random.randint(1,4))
speedE2 = str('Speed -', str(speed))
char2.write(speedE2)
strengthE2 = str('Strength -', str(strength))
char2.write(strengthE2)
print(char1)
char2.close()

Я новичок в записи во внешние файлы, и это не очень хорошо, ага. я и мой племянник были бы очень признательны, если бы вы могли помочь, спасибо


person Lomore    schedule 23.10.2016    source источник


Ответы (1)


Не знаю, что вы ожидаете от str('Speed -', str(speed)).

То, что вы хотите, это строка concat:

speedE2 = 'Speed -' + str(speed)
# replace other lines also

Вы также можете использовать форматирование строк и не беспокоиться о приведении типов:

speedE2 = 'Speed -{}'.format(speed)
person Moses Koledoye    schedule 23.10.2016
comment
привет, я пробовал это, но это дало мне ошибку «char1.write (speedE) TypeError: аргумент write () должен быть str, а не кортежем» - person Lomore; 24.10.2016
comment
Где-то в этой строке стоит запятая. Убери это. - person Moses Koledoye; 24.10.2016