Bonjour,
Pourquoi cette fonction ne marche pas ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 import random def rand(n): x = random.randint(0,10) n = x return n
Bonjour,
Pourquoi cette fonction ne marche pas ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 import random def rand(n): x = random.randint(0,10) n = x return n
Bonjour
Qu'est-ce qui te permet de dire qu'elle ne fonctionne pas? L'as-tu appelée? Tu n'es certainement pas sans savoir qu'une fonction doit être appelée pour qu'elle s'exécute. A la réflexion si, tu dois être sans savoir (as-tu ouvert un tuto?)
Quelques détails
- le paramètre "n" ne sert à rien (un paramètre est un élément que la fonction utilise pour "paramétrer" son travail, et ici il n'est clairement pas utilisé, donc pas utilisé=pas utile).
- la variable "x" ne sert à rien
Bref cette fonction peut s'écrire def rand(): return random.randint(0, 10). Elle ne marchera ni mieux, ni moins bien que la tienne, mais au-moins elle n'a aucun élément superflu.
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
elle fonctionne comme il faut. peut-être pas comme tu le souhaiterai parce que tu n'utilises pas n pour définir ton range
Bien vuIl faut aller le chercher loin mais ça reste du domaine de l'envisageable.
Je pense que le mieux est d'attendre que Mr ZEE nous dise ce qu'il attend de sa fonction : qu'elle marche, qu'elle courre, qu'elle joue au football ou plus simplement qu'elle retourne une valeur aléatoire et dans ce dernier cas, qu'il précise entre combien et combien...
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
La syntaxe est correcte et ça devrait fonctionner.
Après çà ne fait peut être pas ce que vous vouliez mais sans le préciser... on n'est pas dans votre tête pour le savoir.
De plus une fonction "fonctionne" modulo un mode d'emploi plus ou moins compliqué.
Ici il est trivial pour moi mais peut être inconnu pour vous!
- W
@umfred
Je cherche à obtenir une... et plusieurs valeurs aléatoires dans une fonction. Mon exemple est un test qui doit renvoyer une valeur aléatoire sur cet appel :
mais n reste à zéro
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 n = 0 rand(n)
Je ne comprends pas random.randint(0,10) définit une valeur entre 0 et 10 qui est attribuée au paramètre de retour pourtant.
@papajoker, @Sve@r, @wiztricks
Désolé pour le dérangement![]()
Dans rand(n) n n'est pas un pointeur mais la valeur de n.
Parce que le "n" qui est dans la fonction (scope dit "local") n'est pas le même "n" qui est hors de la fonction (scope dit "global").
Cela permet d'écrire des fonctions indépendantes sans se soucier des collisions possibles dans les noms des variables qui restent localisés à la fonction. Ce comportement est la base de la programmation structurée dont Python suit les préceptes.
Donc ta fonction reçoit une valeur (ici "n"), la stocke en local dans une variable nommée aussi "n" mais qui n'a rien à voir et qui aurait pu s'appeler "toto", effectue un travail et retourne un résultat.
Du côté appelant, si tu veux récupérer le résultat renvoyé, ben il faut le demander explicitement. C'est d'ailleurs ce que tu fais quand tu écris x=random.randint(...), tu récupères le résultat de la fonction random.randint(). Donc si tu sais le faire pour une fonction, il n'y a aucune raison que tu ne saches pas le faire pour les autres.
Oui mais comme ce retour n'est pas récupéré il est perdu.
Ici un tutoriel sur les fonctions...
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
Mais ici pourquoi faire une fonction qui fait exactement ce que fait random.randint(0,10) ?
Partager