CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • 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
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
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
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment