Właśnie zacząłem wygłupiać się z pytonem dzisiaj; Nie mam absolutnie pojęcia, co robię. Poniżej znajduje się mały program napisałem do wyświetlania liczb pierwszych, które wydaje się działać dobrze i dość szybko:Czy konieczne jest wyrażenie math.sqrt()?
import math
N = input('List primes up to: ')
N = int(N)
for i in range(3,N,2):
for d in range(2,int(math.sqrt(i))):
if i%d==0:
break
else :
print(str(i))
Funkcja sqrt()
nie działa, chyba że trzymane w obu math.sqrt()
części i import math
części. Również podczas pisania rzeczy w powłoce działało tylko wtedy, gdy użyłem math.sqrt()
zamiast sqrt()
.
Więc ... pytanie zadaje proste pytanie: czy istnieje jakiś rodzaj linii, której mogę użyć, dla powłoki i pliku programu (choć może dla każdej z nich są różne wiersze), aby uniknąć wpisywania część "math.
" za każdym razem, gdy chcę korzystać z funkcji z modułu matematycznego? (Jest to moduł, prawda?) (Bo przysięgam Czytałem programów gdzieś kapelusz używać sqrt()
zamiast math.sqrt()
Ale może nie.).
Zasada, której należy użyć, to "jedyne zdefiniowane zmienne to te, które * Ty * zdefiniowałeś". Dobrą rzeczą jest to, że możesz od razu powiedzieć, co jest poprawną nazwą - instrukcja 'import' definiuje tylko jedną zmienną. Jeśli chcesz uczynić go lokalnym, możesz zrobić "sqrt = math.sqrt". – katrielalex
Możesz także napisać 'int (i ** .5)'. – Hyperboreus
Z ciekawości, czy sqrt() jest zdefiniowane jako i **. 5 lub czy jest lepsze/gorsze? –