Ik heb problemen met het volgende stuk code:
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")
De resulterende fout komt als volgt op:
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
Ik ben niet zeker wat het probleem is, omdat ik de naam van Temp naar de temperatuur heb gewijzigd en de beugels rond de temperatuur heb toegevoegd, maar nog steeds de fout optreedt.
Antwoord 1, Autoriteit 100%
print("the furnace is now " + str(temperature) + "degrees!")
CADE IT NAAR str
Antwoord 2, Autoriteit 26%
Python wordt geleverd met talloze manieren om snaren te formatteren:
Nieuwe stijl .format()
, die een rijke opmaakmini-taal ondersteunt:
>>> temperature = 10
>>> print("the furnace is now {} degrees!".format(temperature))
the furnace is now 10 degrees!
Old Style %
Formaat Specificator:
>>> print("the furnace is now %d degrees!" % temperature)
the furnace is now 10 degrees!
In Py 3.6 met behulp van de nieuwe f""
tekenreeksen:
>>> print(f"the furnace is now {temperature} degrees!")
the furnace is now 10 degrees!
Of gebruik print()
s standaard sep
arator:
>>> print("the furnace is now", temperature, "degrees!")
the furnace is now 10 degrees!
En het minst effectief, maak een nieuwe string door deze te casten naar een str()
en samen te voegen:
>>> print("the furnace is now " + str(temperature) + " degrees!")
the furnace is now 10 degrees!
Of join()
eraan meedoen:
>>> print(' '.join(["the furnace is now", str(temperature), "degrees!"]))
the furnace is now 10 degrees!
Antwoord 3, autoriteit 9%
je moet int naar str casten voordat je kunt aaneenschakelen. gebruik daarvoor str(temperature)
. Of u kunt dezelfde uitvoer afdrukken met ,
als u niet op deze manier wilt converteren.
print("the furnace is now",temperature , "degrees!")