J'ai des problèmes avec le code suivant:
if verb == "stoke":
if items["furnace"] >= 1:
print("going to stoke the furnace")
if items["coal"] >= 1:
print("successful!")
temperature += 250
print("the furnace is now " + (temperature) + "degrees!")
^this line is where the issue is occuring
else:
print("you can't")
else:
print("you have nothing to stoke")
L'erreur résultante se présente comme suit:
Traceback(most recent call last):
File "C:\Users\User\Documents\Python\smelting game 0.3.1 build
incomplete.py"
, line 227, in <module>
print("the furnace is now " + (temperature) + "degrees!")
TypeError: must be str, not int
Je ne sais pas quel est le problème car j'ai changé le nom de temp en température et ajouté les crochets autour de la température, mais l'erreur persiste.
print("the furnace is now " + str(temperature) + "degrees!")
jette-le à str
Python propose de nombreuses manières de formater des chaînes:
Nouveau style .format()
, qui prend en charge un mini-langage de mise en forme riche:
>>> temperature = 10
>>> print("the furnace is now {} degrees!".format(temperature))
the furnace is now 10 degrees!
Ancien style %
Spécificateur de format:
>>> print("the furnace is now %d degrees!" % temperature)
the furnace is now 10 degrees!
Dans Py 3.6, en utilisant les nouvelles chaînes de format f""
:
>>> print(f"the furnace is now {temperature} degrees!")
the furnace is now 10 degrees!
Ou en utilisant print()
par défaut sep
arator:
>>> print("the furnace is now", temperature, "degrees!")
the furnace is now 10 degrees!
Et le moins efficacement, construisez une nouvelle chaîne en la convertissant en str()
et en concaténant:
>>> print("the furnace is now " + str(temperature) + " degrees!")
the furnace is now 10 degrees!
Ou join()
le:
>>> print(' '.join(["the furnace is now", str(temperature), "degrees!"]))
the furnace is now 10 degrees!
vous devez convertir int en str avant de concaténer. pour cela, utilisez str(temperature)
. Ou vous pouvez imprimer le même résultat avec ,
_ si vous ne voulez pas convertir comme ça.
print("the furnace is now",temperature , "degrees!")