J'essaie de définir une fonction de base en python mais j'obtiens toujours l'erreur suivante lorsque j'exécute un programme de test simple;
>>> pyth_test(1, 2)
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
pyth_test(1, 2)
NameError: name 'pyth_test' is not defined
Voici le code que j'utilise pour cette fonction;
def pyth_test (x1, x2):
print x1 + x2
UPDATE: J'ai le script appelé pyth.py ouvert, puis je tape pyth_test (1,2) dans l'interpréteur lorsqu'il génère l'erreur.
Merci pour l'aide. (Je m'excuse pour la question de base, je n'ai jamais programmé auparavant et j'essaie d'apprendre le python comme passe-temps.)
import sys
sys.path.append ('/Users/clanc/Documents/Development/')
import test
printline()
## (the function printline in the test.py file
##def printline():
## print "I am working"
Oui, mais dans quel fichier la définition de pyth_test
est-elle déclarée? Est-il également situé avant de l'appeler?
Modifier:
Pour le mettre en perspective, créez un fichier appelé test.py
avec le contenu suivant:
def pyth_test (x1, x2):
print x1 + x2
pyth_test(1,2)
Maintenant, lancez la commande suivante:
python test.py
Vous devriez voir la sortie que vous désirez. Maintenant, si vous êtes dans une session interactive, cela devrait se passer comme ceci:
>>> def pyth_test (x1, x2):
... print x1 + x2
...
>>> pyth_test(1,2)
3
>>>
J'espère que cela explique le fonctionnement de la déclaration.
Pour vous donner une idée du fonctionnement de la mise en page, nous allons créer quelques fichiers. Créez un nouveau dossier vide pour garder les choses propres avec les éléments suivants:
myfunction.py
def pyth_test (x1, x2):
print x1 + x2
program.py
#!/usr/bin/python
# Our function is pulled in here
from myfunction import pyth_test
pyth_test(1,2)
Maintenant si vous courez:
python program.py
Il va imprimer 3. Maintenant, pour expliquer ce qui ne va pas, modifions notre programme de la manière suivante:
# Python: Huh? where's pyth_test?
# You say it's down there, but I haven't gotten there yet!
pyth_test(1,2)
# Our function is pulled in here
from myfunction import pyth_test
Voyons maintenant ce qui se passe:
$ python program.py
Traceback (most recent call last):
File "program.py", line 3, in <module>
pyth_test(1,2)
NameError: name 'pyth_test' is not defined
Comme indiqué, python ne peut pas trouver le module pour les raisons décrites ci-dessus. Pour cette raison, vous devriez garder vos déclarations en haut.
Maintenant, si nous exécutons la session interactive Python:
>>> from myfunction import pyth_test
>>> pyth_test(1,2)
3
Le même processus s'applique. Maintenant, l’importation de paquets n’est pas si simple, je vous recommande donc de regarder comment les modules fonctionnent avec Python . J'espère que cela vous aide et bonne chance dans vos apprentissages!
Ça marche pour moi:
>>> def pyth_test (x1, x2):
... print x1 + x2
...
>>> pyth_test(1,2)
3
Assurez-vous de définir la fonction avant vous l'appelez.
En python, les fonctions ne sont pas accessibles magiquement de partout (comme dans php, par exemple). Ils doivent être déclarés en premier. Donc cela fonctionnera:
def pyth_test (x1, x2):
print x1 + x2
pyth_test(1, 2)
Mais ça ne va pas:
pyth_test(1, 2)
def pyth_test (x1, x2):
print x1 + x2
Cela aiderait si vous montriez le code que vous utilisez pour le programme de test simple. Mettez directement dans l'interprète, cela semble fonctionner.
>>> def pyth_test (x1, x2):
... print x1 + x2
...
>>> pyth_test(1, 2)
3
>>>
si vous travaillez avec la version IDLE installée de Python
>>>def any(a,b):
... print(a+b)
...
>>>any(1,2)
3