我是python的新手,我仍然在努力去理解sytnax是如何工作的,以及如何使你的If和其他工具正确工作。我怎么知道还有哪些与之相关的呢?特别是在使用嵌套代码块时。
在下面的代码中,其他的评论Prime!从我的理解,如果(n % div == 0):的语句与其他语句一起使用,但为什么它与FOR语句被赋值?
我认为if n == 2:的最后一个else语句是其他语句,但其他语句不与它对齐,而是后面的语句。对于相同的语句if n == 2:,为什么n += 1在pime_count +=1之前被分配,而不是在PLACEHOLDER_FOR_CODE_4之后。
我知道Else的位置和if是非常重要的,因为如果我决定移动它们中的任何一个,代码就停止工作。我似乎无法理解的是,如果python知道哪些内容不一致的话,那么python如何知道其他哪些内容。
#!/usr/bin/env python
#
# Problem Set 1a
#
# A program that computes and prints the 1000th prime number.
# Finds primes using trial division (least efficient method)
#------------------------------------------------------------
prime_count = 0
n = 2
while (prime_count <= 1000):
#if even, check for 2, the only even prime
if (n % 2 == 0):
if n == 2:
prime_count += 1
n += 1
else:
# number is odd, possible prime
for div in range(3, n, 2):
if (n % div == 0):
# not a prime
n += 1
break
else:
# prime!
prime_count += 1
if prime_count == 1000:
print "The 1000 prime is", n
else:
n += 1