テキストゲームを作成しようとしていますが、キャラクターを作成した後、基本的にスキルポイントを使用できるように定義している関数でエラーが発生しました。最初、エラーは、コードのこの部分の整数から文字列を減算しようとしたことを示していました:balance - strength
。明らかにそれは間違っていたので、strength = int(strength)
で修正しました...しかし、今まで見たことのない(新しいプログラマー)このエラーが発生しており、正確にそれが私に伝えようとしていることと修正方法に困惑しています。
動作していない関数の一部のコードは次のとおりです。
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()
そして、これがシェルのコードのこの部分に到達したときに表示されるエラーです。
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 <module>
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
誰もこれを解決する方法を知っていますか?先に感謝します。
string
とint
を連結することはできません。 int
関数を使用してstring
をstr
に変換するか、formatting
を使用して出力をフォーマットする必要があります。
変化する: -
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
関数に異なる文字列を渡します。-
print("Ok. Your balance is now at ", balanceAfterStrength, " skill points.")