我在python中編寫了這個函數來計算給定值下的素數。當我執行代碼時它打印「0」。有誰能告訴我爲什麼我的代碼出錯了嗎?'For'迭代器在python中沒有返回正確的答案
def is_prime(x):
if x<2:
return False
else:
for value in range(2, x):
if x%value == 0:
return False
else:
return True
def primes_in(x):
primes = [ ]
for value in range(2, x+1):
if is_prime(value):
primes.append(1)
elif not is_prime(value):
primes.append(0)
else:
primes.append(0)
return sum(primes)
print primes_in(25)
'範圍(2,X + 1)'可以確保'x'也被包括在迭代。所以,它總是會返回'False'。 – thefourtheye
另外pythonic的方式是: 如果is_prime(value): ..... elif not is_prime(value): – TheGeorgeous
爲什麼兩個'else'? ...我認爲第一個就足夠了? –