Lomore Lomore - 1 month ago 10
Python Question

TypeError: decoding str is not supported

Im trying to make a attribute characteristic randomiser for my nephews board game and I'm trying to write the attributes to an external file so that he can use them later. when i am trying to write to the file it comes up with the error

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


my code is adding the calculated attribute to the name of the attribute. I.E. ('Strength - ', strengthE)
my code is ...

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()


im quite new to writing to external files and its not going too well aha.
me and my nephew would really appreciate it if you could help, Thanks

Answer

Not sure about what you expect str('Speed -', str(speed)) to do.

What you want is a string concat:

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

You can also use string formatting and not worry about type casts:

speedE2 = 'Speed -{}'.format(speed)
Comments