2008-09-16 10 views

Répondre

34

Vous avez probablement un fichier nommé random.py ou random.pyc dans votre répertoire de travail. C'est en observant le module aléatoire intégré. Vous devez renommer random.py en quelque chose comme my_random.py et/ou supprimer le fichier random.pyc.

Pour dire à coup sûr ce qui se passe, faites ceci:

>>> import random 
>>> print random.__file__ 

qui va vous montrer exactement quel fichier est importé.

+0

Dans le shell Python 3.3.2, je dois omettre 'print' pour obtenir le chemin du fichier. – Tony

+1

@Tony en Python 3, 'print' est une fonction. Donc, vous pouvez écrire 'print (random .__ file __)'. – Zenadix

2

Je pense que vous devez donner plus d'informations. Il n'est pas vraiment possible de dire pourquoi cela ne fonctionne pas en fonction de l'information contenue dans la question. La documentation de base pour random est à: https://docs.python.org/library/random.html

Vous pouvez vérifier ici.

0

Pouvez-vous poster un exemple de ce que vous essayez de faire? Ce n'est pas clair à partir de votre question quel est le problème réel.

Voici un exemple de la façon d'utiliser le module aléatoire:

import random 
print random.randint(0,10) 
1
Python 2.5.2 (r252:60911, Jun 16 2008, 18:27:58) 
[GCC 3.3.4 (pre 3.3.5 20040809)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import random 
>>> random.seed() 
>>> dir(random) 
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', 'WichmannHill', '_BuiltinMethodType', '_MethodType', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '_acos', '_ceil', '_cos', '_e', '_exp', '_hexlify', '_inst', '_log', '_pi', '_random', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', '_warn', 'betavariate', 'choice', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'jumpahead', 'lognormvariate', 'normalvariate', 'paretovariate', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'uniform', 'vonmisesvariate', 'weibullvariate'] 
>>> random.randint(0,3) 
3 
>>> random.randint(0,3) 
1 
>>> 
0

semble fonctionner très bien pour moi. Consultez les méthodes du official python documentation pour au hasard:

>>> import random 
>>> random.random() 
0.69130806168332215 
>>> random.uniform(1, 10) 
8.8384170917436293 
>>> random.randint(1, 10) 
4 
0

Works pour moi:

Python 2.5.1 (r251:54863, Jun 15 2008, 18:24:51) 
[GCC 4.3.0 20080428 (Red Hat 4.3.0-8)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import random 
>>> brothers = ['larry', 'curly', 'moe'] 
>>> random.choice(brothers) 
'moe' 
>>> random.choice(brothers) 
'curly' 
1

Est-il possible que le script que vous exécutez s'appelle lui-même random.py?

3

Cela se produit parce que vous avez un fichier random.py dans le chemin de recherche python, probablement le répertoire en cours.

Python recherche des modules utilisant sys.path, qui inclut normalement le répertoire courant avant les packages de site standard, qui contient le fichier random.py attendu.

Cela devrait être corrigé dans Python 3.0, de sorte que vous ne pouvez pas importer de modules à partir du répertoire en cours sans utiliser une syntaxe d'importation spéciale. Il suffit de supprimer le fichier random.py + random.pyc du répertoire dans lequel vous exécutez python et il fonctionnera correctement.

Questions connexes