蟒蛇;尝试用变量写入外部文档

时间:2014-07-11 12:22:45

标签: python

我遇到了这段代码的麻烦:

import random
import time

y = 0

while y <3:
x = 0
y += 1
numlist = []

while x <5:
    x += 1
    four = random.randint (1,4)
    twelve = random.randint (1,12)
    newint = 10 + twelve /four
    round (newint)
    numlist.append (newint)

strength = numlist[0]
skill = numlist[1]
health = numlist[2]
dexterity = numlist[3]

round (strength, 10)
round (skill, 10)
round (health, 10)
round (dexterity, 10)

print (strength)
print (skill)
print (health)
print (dexterity)

str(strength)
str(skill)
str(health)
str(dexterity)

doc = open ("character1", "w")
doc.write ("Strength is")
doc.write (strength)
doc.close()

输出:

13.0

10.25

11.75

15.5


Traceback (most recent call last):    
File "D:\LOCATION OF CODE, line 41, in <module>
    doc.write (strength)   
TypeError: must be str, not float

这很奇怪;我已经将它定义为一个字符串,所以我不知道为什么我会收到这个错误。

3 个答案:

答案 0 :(得分:3)

你必须把它变成一个字符串。

strength = str(strength)

只是说

str(strength)

不会更改其类型。

答案 1 :(得分:1)

  

“我已将其定义为字符串”

不,你没有。 str() 更改输入对象,它会创建新对象并返回*。您需要将分配该新对象返回到引用旧对象的名称,例如:

strength = str(strength)

* ,除非参数已经是一个字符串;然后你得到同样的对象。

答案 2 :(得分:0)

你所犯的错误是

str(strength)
str(skill)
str(health)
str(dexterity)

您尝试将变量转换为字符串但未将其保存到相应的变量

尝试

strength=str(strength)
skill=str(skill)
health=str(health)
dexeterity=str(dexterity)