Python TypeError moet Str niet int

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 separator:

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

Other episodes