如何重置接受它作为参数的函数中使用的变量?
How to reset a variable used in a function that accepts it as a parameter?
我有一个问题,我在 Python 中使用函数创建了一个乘法游戏,但是当我检查用户是否有足够的点数来更改级别时,点数计数器(“compteur”)没有重置为 0 .我是初学者所以很可能错误很愚蠢,但我不明白......
You can see this in Python tutor, but I tried adding "return compteur" but that doesn't work either...
功能代码如下:
def update (compteur) :
global level
if compteur == 20 :
level+=1
print("Niveau",level-1,"terminé. Passage au niveau",level,"!")
compteur = 0
return compteur
以及整个代码:
###############################################################################
# Importation de fonctions externes #
import random
###############################################################################
# Définitions locales de fonctions #
compteur=0
def calcul (max) :
'''
Cette fonction calcule une mutiplication avec des valeures aléatoires, elle
admet un seul paramètre :
- Maximum des valeures alétoires
Elle retourne le nombre saisi par l'utilisateur ainsi que le nombre calculé
par l'ordinateur.
'''
global compteur
global nb_user
global nb_result
valeur_1=random.randint(1, max)
valeur_2=random.randint(1, max)
nb_result=valeur_1*valeur_2
print(valeur_1,"*",valeur_2)
print("Debug =",nb_result,)
nb_user=int(input("Entrer votre réponse : \n"))
return nb_user
return nb_result
def verif (nb_user, nb_result) :
'''
Cette fonction vérifie si le résultat saisi par l'utilisateur est égale au
résultat attendu, elle admet donc deux paramètres :
- Nb_user
- Nb_result
Elle retourne l'indice de réussite.
'''
global compteur
if nb_user == nb_result :
compteur+=1
print("Bonne réponse !")
else :
compteur-=1
print("Mauvaise réponse !")
def update (compteur) :
global level
if compteur == 20 :
level+=1
print("Niveau",level-1,"terminé. Passage au niveau",level,"!")
compteur = 0
return compteur
###############################################################################
# Corps principal du programme
# Déclarations des variables
level=1
# Debut
print("Bienvenue dans le Jeu des multiplications !")
while level == 1 :
calcul(10)
print(compteur, level)
verif(nb_user, nb_result)
update(compteur)
while level == 2 :
calcul(20)
print(compteur, level)
verif(nb_user, nb_result)
update(compteur)
while level == 3 :
calcul(50)
verif(nb_user, nb_result)
update(compteur)
while level == 4 :
calcul(100)
verif(nb_user, nb_result)
update(compteur)
while level == 5 :
print("Bien joué ! Tu es venu à bout du jeu.")
提前感谢您的帮助!
每次调用 update(compteur)
都必须将值赋值给 compteur
:
替换:
update(compteur)
作者:
compteur = update(compteur)
您必须缩进 return compteur
:
def update (compteur) :
global level
if compteur == 20 :
level+=1
print("Niveau",level-1,"terminé. Passage au niveau",level,"!")
compteur = 0
return compteur # Remove one tab
我有一个问题,我在 Python 中使用函数创建了一个乘法游戏,但是当我检查用户是否有足够的点数来更改级别时,点数计数器(“compteur”)没有重置为 0 .我是初学者所以很可能错误很愚蠢,但我不明白...... You can see this in Python tutor, but I tried adding "return compteur" but that doesn't work either...
功能代码如下:
def update (compteur) : global level if compteur == 20 : level+=1 print("Niveau",level-1,"terminé. Passage au niveau",level,"!") compteur = 0 return compteur
以及整个代码:
###############################################################################
# Importation de fonctions externes #
import random
###############################################################################
# Définitions locales de fonctions #
compteur=0
def calcul (max) :
'''
Cette fonction calcule une mutiplication avec des valeures aléatoires, elle
admet un seul paramètre :
- Maximum des valeures alétoires
Elle retourne le nombre saisi par l'utilisateur ainsi que le nombre calculé
par l'ordinateur.
'''
global compteur
global nb_user
global nb_result
valeur_1=random.randint(1, max)
valeur_2=random.randint(1, max)
nb_result=valeur_1*valeur_2
print(valeur_1,"*",valeur_2)
print("Debug =",nb_result,)
nb_user=int(input("Entrer votre réponse : \n"))
return nb_user
return nb_result
def verif (nb_user, nb_result) :
'''
Cette fonction vérifie si le résultat saisi par l'utilisateur est égale au
résultat attendu, elle admet donc deux paramètres :
- Nb_user
- Nb_result
Elle retourne l'indice de réussite.
'''
global compteur
if nb_user == nb_result :
compteur+=1
print("Bonne réponse !")
else :
compteur-=1
print("Mauvaise réponse !")
def update (compteur) :
global level
if compteur == 20 :
level+=1
print("Niveau",level-1,"terminé. Passage au niveau",level,"!")
compteur = 0
return compteur
###############################################################################
# Corps principal du programme
# Déclarations des variables
level=1
# Debut
print("Bienvenue dans le Jeu des multiplications !")
while level == 1 :
calcul(10)
print(compteur, level)
verif(nb_user, nb_result)
update(compteur)
while level == 2 :
calcul(20)
print(compteur, level)
verif(nb_user, nb_result)
update(compteur)
while level == 3 :
calcul(50)
verif(nb_user, nb_result)
update(compteur)
while level == 4 :
calcul(100)
verif(nb_user, nb_result)
update(compteur)
while level == 5 :
print("Bien joué ! Tu es venu à bout du jeu.")
提前感谢您的帮助!
每次调用 update(compteur)
都必须将值赋值给 compteur
:
替换:
update(compteur)
作者:
compteur = update(compteur)
您必须缩进 return compteur
:
def update (compteur) :
global level
if compteur == 20 :
level+=1
print("Niveau",level-1,"terminé. Passage au niveau",level,"!")
compteur = 0
return compteur # Remove one tab