2016-12-19 9 views
1

私は宿題の一部として再帰的な関数を書いています。パイチャで二重印刷

Iは、長さnのすべてのバイナリシーケンスを印刷するためのコードのこの部分を書いた:

def binary_sequences_helper(n, sequence): 
    if len(sequence) == n: 
     print(sequence) 
    else: 
     binary_sequences_helper(n, sequence + '0') 
     binary_sequences_helper(n, sequence + '1') 


def print_binary_sequences(n): 
    binary_sequences_helper(n, '') 


print_binary_sequences(1) 

pycharmシェルで出力

0 
1 
0 
1 

の代わりにちょうど0 1私は正確に実行するときでありますIDLEまたは私の友人のコンピュータ上の同じコード。

何が問題なのでしょうか?

+0

出力は一貫して '0 1 0 1'ですか? print関数に 'flush = True'を渡すとどうなりますか? –

+1

あなたの環境では何かがうんざりしているはずです。私のパイチャでは、それはうまく見えます(二重印刷なし)。 – alfasin

+0

このコードは実際にはあなたがそれを実行しているIDEに関係なく期待していることをしていないと思う...私はこのコードが正しく答えることができる問題文を見て苦労している –

答えて

1

コードに問題はないようです。

コメントによれば、いくつかの人が(私自身も含めて)それを実行しようとしましたが、期待どおりに動作しました。

したがって、PyCharmに問題があると思われます。 File - >Invalidate and Restartにアクセスしてキャッシュをクリアしてください。

+0

これを行うと、4オプション:「無効化と再起動」、「無効化」、「キャンセル」、および「再起動」。 PyCharmでダブルプリントを見ている人には、どちらのボタンをクリックすべきですか? – Jarad

+0

私は@Jaradの答えを更新しました。 – Shadow

関連する問題