2番目のreturn文のインデントレベル(return False)は、forループのすぐ下にあり、ループの外側です。 forループの中に置かなければなりませんか?Pythonのreturn文インデントレベル
import scrabble
letters = "abcdefghijklmnoprstuvwxyz"
def has_a_double(letter):
for word in scrabble.wordlist:
if letter + letter in word:
return True
return False
for letter in letters:
if not has_a_double(letter):
print(letter + " never appears doubled")
私は誤った出力で同じインデントレベルの結果、他のスニペットを持っている:
#word_list = ["one", "two", "four"]
#word_list = ["three", "five", "six", "seven", "nine"]
word_list = ["one", "two", "three", "five", "four"]
#word_list = ["one", "two", "three", "five"]
def has_o_in_it(words):
for word in words:
if "o" not in word:
return False
return True
if has_o_in_it(word_list):
print("word list has o in it")
else:
print("word list has no o in it")
私はスニペットの上に実行すると、結果は「単語リストは、それにはOをしている」 なぜリターンを入れていないではありませんステートメントはすべて条件付きチェックの下にありますか?
可能性がありますが、すべての要素
を見たいと思っていると仮定し、それを追跡することができそれはループ内にあるべきだと思いますか?最初の反復でループを終了します。* always *。 –
言い換えれば、**ループに置かないで**ループ内のすべての項目が検査された後にのみ 'False'を返します。もっと正確だと思いますか? –
チュートリアルで 'any()'関数について言及していないと仮定します。 –