类型错误:不支持解码字符串。

14

我正在尝试为我侄子的棋盘游戏制作一个属性特征随机器,并尝试将这些属性写入外部文件,以便他以后可以使用。但当我尝试写入文件时,出现了错误。

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

我的代码将计算属性添加到属性名称中。例如 ('Strength - ', strengthE)。我的代码是...

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

我在写外部文件方面很新手,进展不太顺利啊。 如果您能帮忙,我和我的侄子会非常感激,谢谢。

1个回答

12

不确定您期望 str('Speed -', str(speed)) 执行什么操作。

您需要的是字符串拼接:

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

您还可以使用字符串格式化,无需担心类型转换:

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

嗨,我尝试了这个,但是它给了我一个错误:'char1.write(speedE) TypeError: write()参数必须是str,而不是元组'。 - Lomore
1
在那一行的某处有一个尾随逗号。请将其删除。 - Moses Koledoye

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接