Question de débutant: renvoyant une valeur booléenne à partir d'une fonction en Python

Je vais essayer d'obtenir cette roche papier ciseaux jeu soit de renvoyer une valeur Booléenne, comme dans le jeu de player_wins True ou False selon si le joueur gagne, ou de revoir ce code entièrement, afin de ne pas utiliser une boucle while.
Je suis en provenance du sysadmin côté du monde, de sorte s'il vous plaît être doux si c'est écrit dans le mauvais style.
J'ai essayé quelques petites choses, et je comprends TIMTOWTDI, et voudrais juste une entrée.

Grâce.

import random

global player_wins
player_wins=None

def rps():

    player_score = 0
    cpu_score = 0

    while player_score < 3 and cpu_score < 3:

        WEAPONS = 'Rock', 'Paper', 'Scissors'

        for i in range(0, 3):
          print "%d %s" % (i + 1, WEAPONS[i])

        player = int(input ("Choose from 1-3: ")) - 1
        cpu = random.choice(range(0, 3))

        print "%s vs %s" % (WEAPONS[player], WEAPONS[cpu])
        if cpu != player:
          if (player - cpu) % 3 < (cpu - player) % 3:
            player_score += 1
            print "Player wins %d games\n" % player_score
          else:
            cpu_score += 1
            print "CPU wins %d games\n" % cpu_score
        else:
          print "tie!\n"
rps()

Je suis en train de faire quelque chose comme ceci:

   print "%s vs %s" % (WEAPONS[player], WEAPONS[cpu])
    if cpu != player:
      if (player - cpu) % 3 < (cpu - player) % 3:
        player_score += 1
        print "Player wins %d games\n" % player_score
        if player_score == 3:
            return player_wins==True
      else:
        cpu_score += 1
        print "CPU wins %d games\n" % cpu_score
        if cpu_score == 3:
            return player_wins==False
    else:
      print "tie!\n"
Quelle valeur booléenne doit être retourné pour une cravate?
Parce que c'est à l'intérieur d'une boucle while, liens juste dump vous de retour au début. Le match retour!
Je le prends, ce n'est pas un bon projet d'acquérir une bonne compréhension de la programmation?
matt, essayez de faire des projets qui vous font réfléchir davantage sur le processus. Essayez les problèmes au Projet Euler (projecteuler.net) à la place.
"Je comprends que TIMTOWTDI" - vous devez être déroutant, Python, Perl 😉 "Il devrait y avoir un, et de préférence seulement une façon évidente de le faire. Bien que cette façon peut-être pas évident à première vue, sauf si vous êtes en néerlandais." (PEP 20 aka Le Zen De Python) 😉

OriginalL'auteur matt | 2010-11-12