TypeError: unsupported operand type(s) for +: 'float' et 'str'

Pourquoi mon code ne fonctionne pas et ce n'cette erreur signifie?

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")

C'est ce que l'INACTIVITÉ dit:

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'

Merci beaucoup

  • Il signifie ce qu'il dit; random.randint(1,12)/random.randint(1,4) est un nombre à virgule flottante, et initial_val est une chaîne de caractères. Vous ne pouvez pas ajouter un nombre et une chaîne.
  • Si a=3.5 et b="10", devrait a+b résultat dans 13.5 ou '3.510'? Python a aucun moyen de savoir quel argument doit être converti, il génère une erreur de laisser vous savez que vous devez être plus explicite sur le résultat prévu.
InformationsquelleAutor Flopadomp | 2014-03-26