Próbuję użyć instrukcji import random
w Pythonie, ale wydaje się, że nie ma żadnych metod w nim używać.Losowe w python 2.5 nie działa?
Czy brakuje mi czegoś?
Próbuję użyć instrukcji import random
w Pythonie, ale wydaje się, że nie ma żadnych metod w nim używać.Losowe w python 2.5 nie działa?
Czy brakuje mi czegoś?
Prawdopodobnie masz plik o nazwie random.py lub random.pyc w katalogu roboczym. To jest cień wbudowanego modułu losowego. Musisz zmienić nazwę random.py na coś podobnego do my_random.py i/lub usunąć plik random.pyc.
Aby powiedzieć na pewno, co się dzieje, to zrobić:
>>> import random
>>> print random.__file__
To pokaże Ci dokładnie, który plik jest importowany.
Myślę, że trzeba podać trochę więcej informacji. Nie można odpowiedzieć, dlaczego nie działa w oparciu o informacje w pytaniu. Podstawowa dokumentacja dotycząca losowania znajduje się pod adresem: https://docs.python.org/library/random.html
Możesz tam sprawdzić.
Czy możesz podać przykład tego, co próbujesz zrobić? Z twojego pytania nie wynika jednoznacznie, jaki jest faktyczny problem.
Oto przykład, w jaki sposób korzystać z modułu losowe:
import random
print random.randint(0,10)
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
>>>
wydaje się działać dobrze dla mnie. Sprawdź metod w official python documentation dla przypadkowy:
>>> import random
>>> random.random()
0.69130806168332215
>>> random.uniform(1, 10)
8.8384170917436293
>>> random.randint(1, 10)
4
działa na mnie:
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'
Czy to możliwe, że uruchamiany skrypt nazywa się sam losowo?
Dzieje się tak, ponieważ w ścieżce wyszukiwania python znajduje się plik random.py, najprawdopodobniej katalog bieżący.
Python szuka modułów za pomocą sys.path, który zwykle zawiera katalog bieżący przed standardowymi pakietami site, które zawierają oczekiwany los.py.
To powinno zostać naprawione w Pythonie 3.0, aby nie można było importować modułów z bieżącego katalogu bez użycia specjalnej składni importu.
Po prostu usuń random.py + random.pyc z katalogu, w którym używasz Pythona, i wszystko będzie działać poprawnie.
W powłoce Python 3.3.2 muszę pominąć 'print', aby uzyskać ścieżkę do pliku. – Tony
@ Tony w Pythonie 3, 'print' jest funkcją. Więc możesz napisać 'print (losowy plik .__ __)'. – Zenadix