Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
772 views
in Technique[技术] by (71.8m points)

python - TypeError: unsupported operand type(s) for +: 'float' and 'str'

Why is my code not working and what does this error mean?

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", "
attr_c1_skil", "

attr_c2_stre","
attr_c2_skill")
file = open("Attribute.txt", "w")
file.write(attributes)
file.close()
input("

Press enter to exit")

This is what IDLE says:

Traceback (most recent call last):
  File "H:Python task - diceTask 2python 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'

Many thanks

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

initial_val is a string:

initial_val = str(10)

You are trying to add it to a floating point value:

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

initial_val should not be a string; leave it as an integer instead:

initial_val = 10

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...