J'essaie d'écrire un jeu de texte et j'ai rencontré une erreur dans la fonction que je suis en train de définir qui vous permet de dépenser vos points de compétence après avoir créé votre personnage. Au début, l'erreur indiquait que j'essayais de soustraire une chaîne d'un entier dans cette partie du code: balance - strength
. Évidemment, c’était faux, j’ai donc corrigé le problème avec strength = int(strength)
... mais maintenant j’obtiens cette erreur que je n’ai jamais vue auparavant (nouveau programmeur) et je suis perplexe sur ce qu’elle essaie de me dire exactement et comment. répare le.
Voici mon code pour la partie de la fonction qui ne fonctionne pas:
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()
Et voici l'erreur que je reçois quand j'arrive à cette partie du code dans le 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 <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
Quelqu'un sait-il comment résoudre ceci? Merci d'avance.
Vous ne pouvez pas concaténer un string
avec un int
. Vous devez convertir votre int
en string
à l'aide de la fonction str
ou utiliser formatting
pour formater votre sortie.
Changement: -
print("Ok. Your balance is now at " + balanceAfterStrength + " skill points.")
à: -
print("Ok. Your balance is now at {} skill points.".format(balanceAfterStrength))
ou: -
print("Ok. Your balance is now at " + str(balanceAfterStrength) + " skill points.")
ou selon le commentaire, utilisez ,
pour passer différentes chaînes à votre fonction print
, plutôt que de la concaténer à l'aide de +
: -
print("Ok. Your balance is now at ", balanceAfterStrength, " skill points.")