2008-09-16 3 views

答えて

34

あなたはおそらく、あなたの作業ディレクトリにrandom.pyまたはrandom.pycという名前のファイルを持っています。これは組み込みのランダムモジュールをシャドーイングしています。 random.pyの名前をmy_random.pyのように変更したり、random.pycファイルを削除する必要があります。

は何が起こっているのか確実に伝えるために、次の操作を行います。正確にインポートされているファイルを示します

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

を。

+0

Python 3.3.2シェルでは、ファイルパスを取得するために 'print'を省略する必要があります。 – Tony

+1

@Tony in Python 3、 'print'は関数です。だから、 'print(random .__ file __)'と書くことができます。 – Zenadix

2

私はあなたにいくつかの情報をもっと与える必要があると思います。問題の情報に基づいて動作していない理由は本当に答えられません。ランダムの基本的なドキュメントは、 https://docs.python.org/library/random.html

です。

0

あなたは何をしようとしているのかの例を投稿できますか?あなたの質問から、実際の問題が何であるかははっきりしない。ここで

は、ランダムなモジュールを使用する方法の例です:

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

は私のために正常に動作するようです。ランダムなためofficial python documentationのメソッドをチェックアウト:

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

作品私のために:

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

あなたが実行するスクリプトがrandom.pyと呼ばれる可能性はありますか?

3

これは、pythonの検索パスにあるrandom.pyファイル(おそらく現在のディレクトリ)があるために起こります。

Pythonはsys.pathを使ってモジュールを探しています。sys.pathは標準のsite-packagesの前にカレントディレクトリを含みます。

これはPython 3.0で修正される予定であるため、特殊なインポート構文を使用せずに現在のディレクトリからモジュールをインポートすることはできません。

Pythonを実行しているディレクトリでrandom.py + random.pycを削除すると正常に動作します。

関連する問題