Forum Python

Fil d’Ariane du forum – Vous êtes ici :ForumLangage Python: Langage PythonFonction choice
Please or S’enregistrer to create posts and topics.

Fonction choice

Bonjour.

Je suis débutant sur Python. Concernant la fonction choice, j'ai fait des recherches sur Google. J'ai invariablement trouvé la même écriture de cette fonction : random.choice(sequence). Or, j'ai utilisé cette fonction avec l'écriture : choice(sequence) (sans random) et ça fonctionne :

Ma question est la suivante : si les 2 écritures coexistent, pourquoi la plus simple (sans random) n'est-elle pas préconisée ?

Merci d'avance pour vos réponses.

Salut Didier_93

1)- Quand tu utilise le code :

from random import *

A ce moment là vous importer la totalité du contenu du module y compris la fonction choice() qui est importé! Donc on peut dans ce cas l'utiliser directement :

# La fonction choice() est déjà importée et est là
# on peut donc l'utiliser
nom = choice(liste_noms)

2)-  Quand tu import le module random avec le code:

import random

A ce moment là c'est le module random que vous importer et vous n'avez importé aucune fonction de ce module. Dans ce cas si vous voulez utiliser une fonction quelconque du module comme la fonction choice(), vous devez utiliser

le_nom_du_module.nom_de_la_fonction()

Exemple dans ton cas:

import random
# Ici on a importé le module rnadom et non pas le contenu du module
# Donc aucune fonction n'est importée
# pour utiliser une fonction quelconque du module on doit passer par ce dernier
nom = random.choice(liste_noms)

# Et si vous utilisez la syntaxe suivante elle vous renvoie une erreur:
nom = choice(liste_noms)
# Vous obtenez l'erreur : NameError: name 'choice' is not defined

Je pense que cela va vous aidez à comprendre la différence entre les deux syntax:

from random import *

et 

import random

Si vous rencontrez le moindre problème, veuillez le partager ici afin d'aider d'autres membres du forum!

Bonne chance Didier_93