这是我脚本的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
如何解决此问题?我希望文件在记事本上运行; /因为这是我在学校的作业。
答案 0 :(得分:7)
如果你使用的是Python 3.x(可能会给你print
),那么不是使用.write
或字符串格式,而是使用:
print('Your Skill:', charskill, file=myFile)
这样做的好处是可以在其中放置一个空格,并为您添加换行符,而不需要任何明确的转换。
答案 1 :(得分:5)
您应该将str
对象传递给file.write
。但似乎charskill
是float
对象。
替换以下行:
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))