私はPythonが初めてで、sytnaxがどのように機能するか、Ifとelseを正しく機能させるためにどのように調整する必要があるかを理解するのにまだ苦労しています。他にどれがどのifに当てはまるかを本当に知るにはどうすればよいですか? 特にネストされたコード ブロックを使用する場合。
以下のコードでは、else の後にコメント Prime! が続きます。私が理解していることから、elseはifステートメント(n % div == 0):
と一致しますが、代わりにFORステートメントと一致するのはなぜですか?
私が思う最後のelseステートメントは一緒だと思いますif n == 2:
が、elseはそれと一致しておらず、代わりに後にあります。同じステートメントのif n == 2:
理由は、その後ではなくn += 1
前に配置pime_count +=1
されます。
Else と if の配置が非常に重要であることは理解しています。それらのいずれかを移動するとコードが機能しなくなるからです。私が理解できないように見えるのは、整列が一貫していないように見える場合、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