2013-11-23 50 views
0

这是我的脚本的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) 

有一次,我在执行蟒蛇,它给我的错误:

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 

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

回答

4

如果你正在使用Python 3.x的(这是可能的,你可能会得到你的print),然后而是采用.write或字符串格式化,另一种是使用:

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

这有把一个空间在那里的优势,并为你一个换行符并且不需要任何显式转换。

2

您应该将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

0

尝试铸造你的浮到一个字符串写入之前:

myFile.write(str(charskill)) 
+0

's/integer/float /' – delnan

+0

cheers ... fixed – zjm555

相关问题