Problème avec une fonction

Signaler
-
yg_be
Messages postés
10326
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
5 avril 2020
-
Bonjour,

Je suis en train de faire un programme en python plutôt long, et j'ai un problème pour l'instant. J'ai réussi à l'isoler, et apparemment ça vient de là :

variable = 0

def fonction():
           variable = 5

fonction()

 print(variable)


Le problème vient de la fonction, car si je met juste variable = 0, puis variable = 5 puis print, ça affiche bien 5, mais là, ça affiche 0 et je comprend vraiment pas pourquoi.
Si quelqu'un pourrait m'aider, ce serait sympa merci : )

(j'ai bien indenté en dessous de def fonction(), c'est juste que le site affiche pas les espaces)

Configuration: Macintosh / Safari 12.1.1

3 réponses

Messages postés
28484
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
5 avril 2020
6 106
Bonjour,

Voir la portée des variables : https://www.pierre-giraud.com/python-apprendre-programmer-cours/portee-variable/

Un petit tuto là https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Au dessus de la zone d'édition de tes messages, il y a des icones pour les enrichissements du texte.
Celle qui a cet aspect <>▼ permet d'appliquer aux codes le format correspondant à sa nature.


Merci beaucoup !

Autre question, est-ce qu'on peut renvoyer à une fonction à l'intérieur d'une fonction ? Comme ça par exemple :

variable = 0

def fonction_1()
global variable
variable = 5

def fonction_2():
fonction_1()
yg_be
Messages postés
10326
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
5 avril 2020
582
merci d'utiliser les balises de code.
as-tu testé le code? quelle est ta question?
En fait c'est bon merci, ce qui ne fonctionnait pas, c'est que je n'avais pas mis de guillemets à mon if variable == 10: car je pensais qu'il n'y en avait pas besoin pour les nombres.
yg_be
Messages postés
10326
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
5 avril 2020
582
peux-tu alors marquer le sujet comme résolu?