擅长:python、mysql、java
<p>基本上你的<code>isPrime</code>函数是错误的。当数字可除(即非素数)时,它返回<code>True</code>,并且从不返回<code>False</code>。固定版本为:</p>
<pre><code>def isPrime(num):
if num > 1:
for i in range(2, num):
if (num % i) == 0:
return False
return True
else:
return False
</code></pre>
<p>也就是说,您的程序的一个更具Pythonic(和PEP-8兼容)的版本可以是:</p>
<pre><code>def is_prime(num):
if num > 1:
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
else:
return False
def prime_numbers(start, end):
count = 0
for num in range(start, end):
if is_prime(num):
count += 1
return count
print("The number of prime numbers between 100 and 200 is", prime_numbers(100, 200))
</code></pre>