2010-11-14 16 views
12

Mam niektóre kodu, który wygląda mniej więcej tak:random.randint błąd

import random 

n = 0 
while n <= 50: 
    n = n+1 
    a = random.randint(1, 16) 
    b = random.randint(1, 5) 
    print n, ". ", a, "-", b, "= " 

z jakiegoś powodu, po uruchomieniu go, pojawia się następujący błąd: AttributeError: 'module' object has no attribute 'randint'. Jednak nie mam żadnych problemów podczas uruchamiania tych samych zapytań random.randint w IDLE. Jak mogę to naprawić?

Odpowiedz

27

Masz jeszcze jeden moduł o nazwie "losowy". Czy nazwałeś swój skrypt "random.py"?

+0

Zgaduję - tak :) – khachik

+0

Dzięki! Chciałem tylko dodać do tego - w moim przypadku miałem funkcję o nazwie losowej (Co dostaję za to, że moi partnerzy wysłali mi swoją porcję kodu, lol) –

2

Kod działa dobrze dla mnie, więc trzeba mieć inny moduł o nazwie „random” na PYTHONPATH

Spróbuj dir (losowo), aby zobaczyć co jest w nim. Może to ułatwić zapamiętanie, dlaczego masz inny moduł o nazwie losowy i gdzie on jest.

4

Sprawdź nazwę swojego pliku! W twoim przypadku "losowe" jest słowem kluczowym, nie możesz użyć "losowego" jako nazwy pliku. Uważaj, aby żadne pliki nie nosiły nazwy random.py.

2

Jeśli nazwa pliku, nad którym pracujesz lub inny plik w projekcie nazywa się "random.py", program próbuje znaleźć funkcję randint w tej lokalizacji i nie może go znaleźć.

Należy zmienić nazwy plików random.py na coś innego. Następnie "importuj losowo" zostanie rozwiązany do "rzeczywistego" modułu random.py, a Ty z powodzeniem użyjesz randint lub dowolnej innej funkcji w module.