TypeError:必须是str,而不是float

时间:2013-11-23 13:07:19

标签: python string

这是我脚本的1/8:

print('Your skill:', int(charskill))
with open('C:\Documents and Settings\Welcome\My Documents\python\Task 2\lol.txt', 'w') as myFile:
    myFile.write(charskill)

一旦我在python上执行,它会给我一个错误:

Traceback (most recent call last):
  File "C:\Documents and Settings\Welcome\My Documents\python\Task 2\Dice generator v2.py", line 39, in <module>
    myFile.write(charskill)
TypeError: must be str, not float

如何解决此问题?我希望文件在记事本上运行; /因为这是我在学校的作业。

3 个答案:

答案 0 :(得分:7)

如果你使用的是Python 3.x(可能会给你print),那么不是使用.write或字符串格式,而是使用:

print('Your Skill:', charskill, file=myFile)

这样做的好处是可以在其中放置一个空格,并为您添加换行符,而不需要任何明确的转换。

答案 1 :(得分:5)

您应该将str对象传递给file.write。但似乎charskillfloat对象。

替换以下行:

myFile.write(charskill)

使用:

myFile.write(str(charskill)) # OR   myFile.write(str(charskill) + '\n')

myFile.write('{}'.format(charskill)) # OR  myFile.write('{}\n'.format(charskill))

float转换为str

答案 2 :(得分:0)

在编写之前尝试将浮动转换为字符串:

myFile.write(str(charskill))