私は最近コーディングを開始し、CodecademyでPythonを習得しようとしている間に完全に理解できなかったことに遭遇しました。Pythonのエラー[初心者]
このタスクは、番号が素数であったかどうかを知る関数を作成することでした。だからここ
が私の最初の解決策だった。それを実行した後
def is_prime(x):
if x < 2:
return False
elif x == 2:
return True
else:
for n in range(2, x-1):
if x % n == 0:
return False
else:
return True
print is_prime(5)
、それはis_primeは(3)の代わりに真を与える、Falseを与えていたメッセージを与え続けました。
def is_prime(x):
if x < 2:
return False
elif x == 2:
return True
else:
for n in range(2, x-1):
if x % n == 0:
return False
return True
print is_prime(5)
それが正常に動作し始めた: だからCodecademyフォーラムで少し検索した後、私は、コードの最後のビットがにalterdした場合ことがわかりました。 この変更によってコードがどのように動作するのか誰にも分かりますか? ありがとうございます。
最初のバージョンがtrueを返すときを考えてください。紙と鉛筆で例を挙げてください。エラーが何であるかははっきりしているはずです(ただし、素数を計算するときにこの間違いを犯すのは初めてではありませんが、Pythonの現在の質問にもかかわらず、心配しないでください)。 – jonrsharpe
'is_prime(3)'は、 'range(2、3-1)'が空でコードが決してチャンスを得ないので、最初のバージョンでは 'True'か' False'を返す方法がありません。デフォルトの 'None'以外のものを返します。 – TigerhawkT3
@ TigerhawkT3私はGraderが 'None'をfalse-yとして見たと思う。 – jonrsharpe