Случайный в Python 2.5 не работает? - PullRequest
8 голосов
/ 16 сентября 2008

Я пытаюсь использовать оператор import random в python, но, похоже, в нем нет методов для использования.

Я что-то упустил?

Ответы [ 8 ]

35 голосов
/ 16 сентября 2008

Возможно, у вас есть файл с именем random.py или random.pyc в вашем рабочем каталоге. Это затенение встроенного случайного модуля. Вам нужно переименовать random.py во что-то вроде my_random.py и / или удалить файл random.pyc.

Чтобы точно сказать, что происходит, сделайте следующее:

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

Это точно покажет, какой файл импортируется.

3 голосов
/ 17 сентября 2008

Это происходит потому, что у вас есть файл random.py в пути поиска python, скорее всего, текущий каталог.

Python ищет модули, используя sys.path, который обычно включает текущий каталог перед стандартными пакетами сайта, который содержит ожидаемый random.py.

Ожидается, что это будет исправлено в Python 3.0, поэтому вы не сможете импортировать модули из текущего каталога без использования специального синтаксиса импорта.

Просто удалите random.py + random.pyc из каталога, из которого вы запускаете python, и он будет работать нормально.

2 голосов
/ 16 сентября 2008

Я думаю, вам нужно дать больше информации. На самом деле невозможно ответить, почему это не работает, основываясь на информации в вопросе. Основная документация для случайных находится по адресу: https://docs.python.org/library/random.html

Вы можете проверить там.

1 голос
/ 17 сентября 2008

Если скрипт, который вы пытаетесь запустить, сам по себе называется random.py, то у вас возникнет конфликт имен. Выберите другое имя для вашего сценария.

1 голос
/ 16 сентября 2008
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 голосов
/ 16 сентября 2008

у меня работает:

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'
0 голосов
/ 16 сентября 2008

Кажется, работает нормально для меня. Проверьте методы в официальной документации Python для случайных:

>>> import random
>>> random.random()
0.69130806168332215
>>> random.uniform(1, 10)
8.8384170917436293
>>> random.randint(1, 10)
4
0 голосов
/ 16 сентября 2008

Можете ли вы опубликовать пример того, что вы пытаетесь сделать? Из твоего вопроса не ясно, в чем собственно проблема.

Вот пример использования случайного модуля:

import random
print random.randint(0,10)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...