IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Random dans fonction maison


Sujet :

Python

  1. #1
    Membre actif
    Homme Profil pro
    ...
    Inscrit en
    Septembre 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : ...
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2015
    Messages : 33
    Par défaut Random dans fonction maison
    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

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 322
    Par défaut
    bonjour
    Citation Envoyé par Mr ZEE Voir le message
    ne marche pas
    Question bien floue, je n'ai jamais vu du code avec des pieds. Parfois une valeur d'une variable n'est pas celle souhaitée et parfois il y a un plantage

    Dans ton code , tu ne l'utilises pas, donc elle ne fait rien... pas de plantage ni mauvaise valeur

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 827
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par Mr ZEE Voir le message
    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
    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]

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 535
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 535
    Par défaut
    elle fonctionne comme il faut. peut-être pas comme tu le souhaiterai parce que tu n'utilises pas n pour définir ton range

  5. #5
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 322
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    ]le paramètre "n" ne sert à rien
    Je pense que si pour lui, et qu'il utilisait cette fonction comme une procédure et "n" un pointeur ou variable globale ???
    Elle ne marche pas (car ne modifie pas n)

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 827
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par papajoker Voir le message
    Je pense que si pour lui, et qu'il utilisait cette fonction comme une procédure et "n" un pointeur ou variable globale ???
    Bien vu Il 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]

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 715
    Par défaut
    Citation Envoyé par Mr ZEE Voir le message
    Pourquoi cette fonction ne marche pas ?
    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
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  8. #8
    Membre actif
    Homme Profil pro
    ...
    Inscrit en
    Septembre 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : ...
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2015
    Messages : 33
    Par défaut
    @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
    Citation Envoyé par umfred Voir le message
    elle fonctionne comme il faut. peut-être pas comme tu le souhaiterai parce que tu n'utilises pas n pour définir ton range
    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

  9. #9
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 068
    Par défaut
    Dans rand(n) n n'est pas un pointeur mais la valeur de n.

  10. #10
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 827
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Mr ZEE Voir le message
    Mon exemple est un test qui doit renvoyer une valeur aléatoire sur cet appel :
    mais n reste à zéro
    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.

    Citation Envoyé par Mr ZEE Voir le message
    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.
    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]

  11. #11
    Membre actif
    Homme Profil pro
    ...
    Inscrit en
    Septembre 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : ...
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2015
    Messages : 33
    Par défaut
    Merci.

  12. #12
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 535
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 535
    Par défaut
    Mais ici pourquoi faire une fonction qui fait exactement ce que fait random.randint(0,10) ?

  13. #13
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 715
    Par défaut
    Citation Envoyé par umfred Voir le message
    Mais ici pourquoi faire une fonction qui fait exactement ce que fait random.randint(0,10) ?
    Pour le plaisir de créer soi-même une fonction.... histoire de voir comment ça marche même si ça ne fait rien.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/03/2014, 19h50
  2. [J2SE] intérêt du final dans : fonction( final int arg) ?
    Par guile.rondins dans le forum Langage
    Réponses: 4
    Dernier message: 20/07/2005, 16h03
  3. Problème de date dans fonction utlisateur
    Par lutin2003 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/04/2005, 16h25
  4. Switch dans fonction membre
    Par Raish dans le forum C++
    Réponses: 11
    Dernier message: 30/03/2005, 14h41
  5. Réponses: 5
    Dernier message: 13/08/2004, 15h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo