У меня есть две функции, которые идентичны, функция находит все простые числа до заданного числа
def count_primes2(num):
primes = [2,3,]
x = 5
if num < 2:
return 0
while x <= num:
for y in primes: # use the primes list!
if x%y == 0:
x += 2
break
else:
primes.append(x)
x += 2
print(primes)
return len(primes)
def count_primes3(num):
primes = [2]
x = 3
if num < 2 :
return 0
while x <= num:
for y in range(3,x,2):
if x%y == 0:
x += 2
break
else:
primes.append(y)
x += 2
print(primes)
count_primes2
работает отлично и дает мне выход, однако count_primes3
дает мне UnboundLocalError at primes.append(y)
Функция завершается, если я прокомментирую этот шаг.Кто-нибудь может сказать мне, почему это происходит?