CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourHigh-Tech
    • Actus High-Tech
    • Hardware
    • Smartphones
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • High-Tech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Python]Variables globales

[Kyomaro]
[Kyomaro]
Niveau 10
08 juillet 2014 à 13:54:05

Yop !

Alors voilà, j'ai un petit soucis avec Python 3.
J'essaye de créer une fonction dans un TP que je me suis créé moi-même : cette fonction devra prendre une variable (test, par exemple), lui enlever 10 (c'est un int) et la renvoyer.

J'ai pensé à ce code : (Sans les indentations c'est pas grave)

test = 100

def enlever():
test - 10
return test

J'appelle la fonction enlever() dans IDLE, marche pas. En fait, ça me retourne 100.

J'ai refait ma fonction, après j'ai pondu ça :

def enlever(x):
test = x - 10
print(test)

Ça m'afficher bien test-10 (donc 90), mais sauf qu'après quand je veux réafficher la variable test, elle vaut toujours 100. Comme si la fonction n'avait pas de réél impact sur la variable, qu'elle en faisait une copie, et qu'elle la supprimait ensuite.

Vous auriez pas une solution pour ça ? :merci:

guyver2
guyver2
Niveau 10
08 juillet 2014 à 14:10:11

def enlever():
test - 10
return test

ici la seconde ligne fait juste l'operation mais stocke le resultat nul part.
Ce que tu cherches a faire c'est :

def enlever():
global test
test = test - 10
return test

Note au passage le mot clé "global" pour eviter que ta fonction ne redefinisse une variables locale avec le meme nom.

[Kyomaro]
[Kyomaro]
Niveau 10
08 juillet 2014 à 18:44:43

Merci VDD, j'avais essayé de faire test=test-10 mais ça ne marchait pas, mais ce devait être à cause de "global" :)

Merci beaucoup, ça marche !

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment