2016-10-23 227 views
3

我试图为我的侄子棋盘游戏制作一个属性特征randomiser,我试图将这些属性写入外部文件,以便稍后使用它们。当我试图写入文件它出现了错误TypeError:不支持解码str

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

我的代码是将计算的属性添加到属性的名称。 I.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() 

IM很新的写入外部文件,它不是太顺利啊哈。 我和我的侄子会真的很感激它,如果你能帮忙,谢谢

回答

3

不知道你期望str('Speed -', str(speed))要做什么。

你想要的是一个字符串连接:

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

您还可以使用字符串格式化而不用担心类型转换:

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

您好我试过,但它给我的错误“CHAR1 .write(speedE) TypeError:write()参数必须是str,而不是元组' – Lomore

+0

该行的某处有一个尾随逗号。去掉它。 –

相关问题