2017-05-17 5 views
0

私は、継続の目的を深く理解しています。 continueがループの先頭に戻ると、breakは実行を停止し、passは何もしません。 continueがループの先頭に戻ると再帰的になりませんか?私の例では、continueは実行を停止するために使用されます。Pythonが継続して壊れた差異

import re 
value = [] 
items=[x for x in raw_input().split(',')] 
for p in items: 
    if len(p)<6 or len(p)>12: 
     continue 
    else: 
     pass 
    if not re.search("[a-z]",p): 
     continue 
    elif not re.search("[0-9]",p): 
     continue 
    elif not re.search("[A-Z]",p): 
     continue 
    elif not re.search("[$#@]",p): 
     continue 
    elif re.search("\s",p): 
     continue 
    else: 
     pass 
    value.append(p) 
print ",".join(value) 
+1

なぜ再帰的ですか?あなたの実際の質問は何ですか?すでに2つのステートメントの違いを理解しているようです。 – Carcigenicate

+0

ループ全体を複数回通過することはありません。いくつかのケースをスキップしながら、それを一度通過します。 – bernie

+0

@Carcigenicateそれはループの先頭に戻るので、繰り返しはありませんか?なぜなら、それは継続すると毎回バックアップを続けるからです。 –

答えて

1

continue単に「ループ本体の残りの部分のいずれかの周りにこの時間を実行しない」を意味します。

continue dがない場合、次の反復は全く同じになります。つまり、ループ変数pは、通常のようにitemsの次の要素にバインドされます。

私はのように、あなたはそれが最後の時間だったようpitems同じ要素にバインドされると思われる。「再帰的」で、あなたが「終了しない」という意味だと思いますこれは、一般に「再帰的」であることを意味するものではありません。再帰的な関数は、通常、明示的にそれ自体を呼び出す関数であると理解されます。通常、無限再帰を防ぐためにベースケースが使用されます。

+0

ループの先頭に戻ってしまうという定義を読んだときに、混乱してしまったので、ちょうど反復で実行されるシーンの背後にあると思った –

+0

これが質問に答えたと感じたら、それを受け入れるためにチェックマークをクリックしてください。そうすれば、他の人はそれに答える必要がないことを知るでしょう。 – Personman

関連する問題