2008-09-16 16 views

उत्तर

34

आप शायद अपने काम निर्देशिका में फ़ाइल का नाम random.py या random.pyc है। यह अंतर्निहित यादृच्छिक मॉड्यूल को छाया दे रहा है। आपको my_random.py और/या random.pyc फ़ाइल को हटाने के लिए random.py का नाम बदलने की आवश्यकता है।

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

है कि आप वास्तव में कौन-फ़ाइल आयात किया जा रहा है दिखाएगा:

यकीन है कि क्या हो रहा है के लिए कहता हूं, यह करते हैं।

+0

पायथन 3.3.2 खोल में मुझे फ़ाइल पथ प्राप्त करने के लिए 'प्रिंट' को छोड़ना होगा। – Tony

+1

@ पायनी में पायथन 3, 'प्रिंट' एक समारोह है। तो, आप 'प्रिंट (यादृच्छिक .__ फ़ाइल __)' लिख सकते हैं। – 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

मेरे लिए ठीक काम करने के लिए लगता है। मेरे लिए

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

काम करता है:: यादृच्छिक के लिए official python documentation में तरीकों की जाँच करें

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

ऐसा इसलिए हो रहा है क्योंकि आपके पास पाइथन खोज पथ में एक random.py फ़ाइल है, जो वर्तमान निर्देशिका की संभावना है।

पायथन sys.path का उपयोग कर मॉड्यूल की खोज कर रहा है, जिसमें मानक साइट-पैकेज से पहले वर्तमान निर्देशिका शामिल होती है, जिसमें अपेक्षित random.py शामिल है।

यह पाइथन 3.0 में तय होने की उम्मीद है, ताकि आप एक विशेष आयात वाक्यविन्यास का उपयोग किये बिना मौजूदा निर्देशिका से मॉड्यूल आयात नहीं कर सकें।

बस उस निर्देशिका में random.py + random.pyc को हटाएं जिसे आप पाइथन चला रहे हैं और यह ठीक काम करेगा।

संबंधित मुद्दे