类型错误:无法将“int"对象隐式转换为 str
我正在尝试编写一个文本游戏,但我在定义的函数中遇到了一个错误,该错误使您基本上可以在创建角色后花费技能点.起初,错误指出我试图从这部分代码中的整数中减去一个字符串:balance - strength
.显然这是错误的,所以我用 strength = int(strength)
修复了它......试图告诉我以及我如何解决它.
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 < 0:
print("That is an invalid input. Restarting attribute selection. Keep an eye on your balance this time!")
attributeSelection()
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 < 26:
print("Ok. You're balance is now at " + balanceAfterStrength + " skill points.")
else:
print("That is an invalid input. Restarting attribute selection.")
attributeSelection()
这是我在 shell 中访问这部分代码时得到的错误:
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:Python32APOCALYPSE GAME LIBRARYapocalypseGame.py", line 205, in <module>
gender()
File "C:Python32APOCALYPSE GAME LIBRARYapocalypseGame.py", line 22, in gender
customizationMan()
File "C:Python32APOCALYPSE GAME LIBRARYapocalypseGame.py", line 54, in customizationMan
characterConfirmation()
File "C:Python32APOCALYPSE GAME LIBRARYapocalypseGame.py", line 93, in characterConfirmation
characterConfirmation()
File "C:Python32APOCALYPSE GAME LIBRARYapocalypseGame.py", line 85, in characterConfirmation
attributeSelection()
File "C:Python32APOCALYPSE GAME LIBRARYapocalypseGame.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.
您不能将 string
与 int
连接起来.您需要使用 str
函数将 int
转换为 string
,或使用 formatting
来格式化输出.
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.
更改:-
print("Ok. Your balance is now at " + balanceAfterStrength + " skill points.")
到:-
print("Ok. Your balance is now at {} skill points.".format(balanceAfterStrength))
或:-
print("Ok. Your balance is now at " + str(balanceAfterStrength) + " skill points.")
或根据注释,使用 ,
将不同的字符串传递给您的 print
函数,而不是使用 +
连接:->
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.")