TypeError: Can't convert 'int' object to str implicitly

匿名 (未验证) 提交于 2019-12-03 02:56:01

问题:

I am trying to write a text game and I have run into an error in the function I am defining that lets you basically spend your skill points after you make your character. At first, the error stated that I was attempting to subtract a string from an integer in this part of the code:balance - strength. Obviously that was wrong so I fixed it with strength = int(strength)... but now I am getting this error which I have never seen before(new programmer) and I am stumped on what exactly it is trying to tell me and how I fix it.

Here is my code for the part of the function that isn't working:

def attributeSelection():     balance = 25     print("Your SP balance is currently 25.")     strength = input("How much SP do you want to put into strength?")     strength = int(strength)     balanceAfterStrength = balance - strength     if balanceAfterStrength == 0:         print("Your SP balance is now 0.")         attributeConfirmation()     elif strength  balance:         print("That is an invalid input. Restarting attribute selection. Keep an eye on your balance this time!")         attributeSelection()     elif balanceAfterStrength > 0 and balanceAfterStrength 

And here is the error I get when I get to this part of the code in the shell:

    Your SP balance is currently 25. How much SP do you want to put into strength?5 Traceback (most recent call last):   File "C:\Python32\APOCALYPSE GAME LIBRARY\apocalypseGame.py", line 205, in      gender()   File "C:\Python32\APOCALYPSE GAME LIBRARY\apocalypseGame.py", line 22, in gender     customizationMan()   File "C:\Python32\APOCALYPSE GAME LIBRARY\apocalypseGame.py", line 54, in customizationMan     characterConfirmation()   File "C:\Python32\APOCALYPSE GAME LIBRARY\apocalypseGame.py", line 93, in characterConfirmation     characterConfirmation()   File "C:\Python32\APOCALYPSE GAME LIBRARY\apocalypseGame.py", line 85, in characterConfirmation     attributeSelection()   File "C:\Python32\APOCALYPSE GAME LIBRARY\apocalypseGame.py", line 143, in attributeSelection     print("Ok. You're balance is now at " + balanceAfterStrength + " skill points.") TypeError: Can't convert 'int' object to str implicitly 

Does anyone know how to solve this? Thanks ahead.

回答1:

You cannot concatenate a string with an int. You would need to convert your int to a string using the str function, or use formatting to format your output.

Change: -

print("Ok. Your balance is now at " + balanceAfterStrength + " skill points.") 

to: -

print("Ok. Your balance is now at {} skill points.".format(balanceAfterStrength)) 

or: -

print("Ok. Your balance is now at " + str(balanceAfterStrength) + " skill points.") 

or as per the comment, use , to pass different strings to your print function, rather than concatenating using +: -

print("Ok. Your balance is now at ", balanceAfterStrength, " skill points.") 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!