2014-03-26 257 views
1

爲什麼我的代碼不工作,這個錯誤是什麼意思?TypeError:不支持的操作數類型爲+:'float'和'str'

import random 
initial_val = str(10) 
attr_c1_stre = ("Character 1's Strength: ",str(random.randint(1,12)/random.randint(1,4)  + initial_val)) 
attr_c1_skill = ("Character 1's Skill: ",str(random.randint(1,12)/random.randint(1,4) +  initial_val)) 
attr_c2_stre = ("Character 2's Strength: ",str(random.randint(1,12)/random.randint(1,4)  + initial_val)) 
attr_c2_skill = ("Character 2's Skill: ",str(random.randint(1,12)/random.randint(1,4) +  initial_val)) 
print("attr_c1_stre", "\nattr_c1_skil", "\n\nattr_c2_stre","\nattr_c2_skill") 
file = open("Attribute.txt", "w") 
file.write(attributes) 
file.close() 
input("\n\nPress enter to exit") 

這是IDLE說:

Traceback (most recent call last): 
    File "H:\Python task - dice\Task 2\python codefor task 2].py", line 3, in <module> 
    attr_c1_stre = ("Character 1's Strength: ",str(random.randint(1,12)/random.randint(1,4) + initial_val)) 
TypeError: unsupported operand type(s) for +: 'float' and 'str' 

非常感謝

+1

它意味着它說什麼; 'random.randint(1,12)/random.randint(1,4)'是一個浮點數,'initial_val'是一個字符串。您不能添加數字和字符串。 – Kevin

+1

如果'a = 3.5'和'b =「10」',a + b'應該是13.5還是'3.510'? Python無法知道應該轉換哪個參數,所以會產生一個錯誤,讓您知道您需要更加明確地瞭解預期的結果。 – chepner

回答

5

initial_val是一個字符串:

initial_val = str(10) 

您正在試圖將它添加到一個浮點值:

random.randint(1,12)/random.randint(1,4) + initial_val 

initial_val不應該是一個字符串;將其作爲整數代替:

initial_val = 10 
相關問題