J'essaie d'écrire une version assez facile de Rock Paper Scissors en Python 3 pour que les enfants d'âge scolaire puissent facilement comprendre et, espérons-le, se reproduire. En plus du jeu de base, je veux leur donner la possibilité d'entrer les noms d'un joueur1 et d'un joueur2, en utilisant% s pour que le programme l'imprime de nouveau. Je continue à obtenir cette erreur dans mon o/p:Python - Rock Paper Scissors - Inclure le nom d'utilisateur et le compteur
Player 1 name: me
Player 2 name: you
%s, what do you choose? Rock (1), Paper (2), or Scissors(3)?
**Traceback (most recent call last):
File "C:/Users/xyz/PycharmProjects/rps/scorekeeping.py", line 11, in <module>
print("%s, what do you choose? Rock (1), Paper (2), or Scissors(3)?") % player1
TypeError: unsupported operand type(s) for %: 'NoneType' and 'str'**
J'essaie aussi d'inclure le compteur de points qui se met à jour à chaque tour (player1 vs player2). Habituellement, il se réinitialise à 0 par tour pour gagner/égalité/perdre.
S'il vous plaît aidez-moi à voir où le code a mal tourné. Merci!
player1 = input("Player 1 name: ")
player2 = input("Player 2 name: ")
while 1:
player1score = 0
player2score = 0
print("%s, what do you choose? Rock (1), Paper (2), or Scissors(3)?") % player1
choice1 = input("> ")
print("%s, what do you choose? Rock (1), Paper (2), or Scissors(3)?") % player2
choice2 = input("> ")
if choice1 == choice2 :
print("Its's a tie.")
elif choice1 - choice2 == 1 or choice2 - choice1 == 2 :
print("%s wins.") % player1
score1 = score1 + 1
else:
print("%s wins.") % player2
score2 = score2 + 1
print("%s: %d points. %s: %d points.") % (player1, score1, player2, score2)
Les points 1 et 2 ne sont pas initialisés. Je pense que vous avez besoin de parenthèses supplémentaires dans votre impression. Aussi, ne mettez pas vos scores à zéro dans la boucle. – Stefan