
[code]

    >>> import tqdm
    >>> from tqdm import tqdm
    >>> import time
    >>> for i in tqdm(range(100)):
        time.sleep(1)
    
[/code]

これを実行すると

[code]

      0%|          | 0/100 [00:00<?, ?it/s]
      1%|1         | 1/100 [00:01<01:40,  1.02s/it]
      2%|2         | 2/100 [00:02<01:39,  1.01s/it]
      3%|3         | 3/100 [00:03<01:38,  1.01s/it]
    
    （略）
    
     98%|#########8| 98/100 [01:40<00:02,  1.02s/it]
     99%|#########9| 99/100 [01:41<00:01,  1.02s/it]
    100%|##########| 100/100 [01:42<00:00,  1.02s/it]
    
[/code]

という風に全１００行分（実際は改行なしで）表示されます。  
これが正しい挙動なのでしょうか？


CC BY-SA 3.0
2016-05-13T17:20:17.803
24834
2016-05-19T16:09:31.013
2016-05-13T17:30:22.827
15486
question
python
Python 3 tqdm　の不具合


質問の現象は、キャリッジ・リターン(`\r`)が解釈されていない状態に見えます。

`tqdm`のように画面制御を行なう場合、エスケープシーケンスを解釈出来る端末で動かす必要があります。  
`idle`やその他のIDE付属のreplの類はエスケープシーケンスを解さない事があります。  
質問者さんも、そういった環境で動かしているのではないでしょうか。  
普通の端末で動かせば大丈夫です。

普通の端末で動かしているのも関わらず、質問の現象が起こる場合はargusさんのコメントにある通り、端末がおかしな事になっているのかもしれません。  
リセット出来ないようであれば再起動してしまうのがよいでしょう。

* * *

本題とずれますが、`from tqdm import tqdm` とする場合は、その前の`import tqdm`は不要です。


CC BY-SA 3.0
2016-05-19T16:09:31.013
25001
2016-05-19T16:09:31.013
3054
24834
answer