Par exemple:
def main():
if something == True:
player()
Elif something_else == True:
computer()
def player():
# do something here
check_winner() # check something
computer() # let the computer do something
def check_winner():
check something
if someone wins:
end()
def computer():
# do something here
check_winner() # check something
player() # go back to player function
def end():
if condition:
# the player wants to play again:
main()
Elif not condition:
# the player doesn't want to play again:
# stop the program
# whatever i do here won't matter because it will go back to player() or computer()
main() # start the program
Mon problème est que si une certaine condition devient vraie (dans la fonction check_winner) et que la fonction end () est exécutée, elle retournera à computer () ou à player () car aucune ligne n'indique à l'ordinateur de cesser d'exécuter player () ou ordinateur. () .Comment arrêtez-vous les fonctions en Python?
Une simple déclaration de retour va "arrêter" ou renvoyer la fonction; en termes précis, il "retourne" l'exécution de la fonction au point où la fonction a été appelée - la fonction est terminée sans autre action.
Cela signifie que vous pourriez avoir plusieurs endroits dans votre fonction où cela pourrait revenir. Comme ça:
def player():
do something here
check_winner_variable = check_winner() #check something
if(check_winner_variable == '1')
return
second_test_variable = second_test()
if(second_test_variable == '1')
return
#let the computer do something
computer();
def player(game_over):
do something here
game_over = check_winner() #Here we tell check_winner to run and tell us what game_over should be, either true or false
if not game_over:
computer(game_over) #We are only going to do this if check_winner comes back as False
def check_winner():
check something
#here needs to be an if / then statement deciding if the game is over, return True if over, false if not
if score == 100:
return True
else:
return False
def computer(game_over):
do something here
game_over = check_winner() #Here we tell check_winner to run and tell us what game_over should be, either true or false
if not game_over:
player(game_over) #We are only going to do this if check_winner comes back as False
game_over = False #We need a variable to hold wether the game is over or not, we'll start it out being false.
player(game_over) #Start your loops, sending in the status of game_over
Ci-dessus est un exemple assez simple ... J'ai composé une déclaration pour check_winner
En utilisant score = 100
Pour indiquer que le jeu est terminé.
Vous voudrez utiliser une méthode similaire pour passer score
en check_winner
, En utilisant game_over = check_winner(score)
. Ensuite, vous pouvez créer une partition au début de votre programme et la transmettre à computer
et player
comme si game_over
Était traité.
Dans cet exemple, la ligne do_something_else()
ne sera pas exécutée si do_not_continue
est True
. Le contrôle retournera à la place de la fonction appelée some_function
.
def some_function():
if do_not_continue:
return # implicitly, this is the same as saying return None
do_something_else()