2016-05-14 3 views
1

forcing division to be floating pointという異なる方法で実行時間を比較したいと思います。python -m timeit:SyntaxError:from __future__インポートはファイルの先頭になければなりません

ターミナルでtimeitと、次のコードをテストしている間は、

from __future__ import division 
a = 2/3 

私はエラーが発生し、

$ python -m timeit '2*1.0/3' # this works 
10000000 loops, best of 3: 0.0578 usec per loop 

$ python -m timeit -s 'from __future__ import division' '2/3' 
Traceback (most recent call last): 
    File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main 
    "__main__", fname, loader, pkg_name) 
    File "/usr/lib/python2.7/runpy.py", line 72, in _run_code 
    exec code in run_globals 
    File "/usr/lib/python2.7/timeit.py", line 330, in <module> 
    sys.exit(main()) 
    File "/usr/lib/python2.7/timeit.py", line 294, in main 
    t = Timer(stmt, setup, timer) 
    File "/usr/lib/python2.7/timeit.py", line 136, in __init__ 
    code = compile(src, dummy_src_name, "exec") 
    File "<timeit-src>", line 3 
SyntaxError: from __future__ imports must occur at the beginning of the file 

はどのようなスニペットコードの実行時間を測定するのですか?グローバル動作を可能にすることにより

答えて

1

:このような場合に

$ python -Q new -m timeit '2/3' 
10000000 loops, best of 3: 0.0242 usec per loop 
+0

、 '2/3'は' 0.66'または '0'に等しいですか? – SparkAndShine

+0

@ sparkandshine: '-Q'が何をしているかを見るにはmanページを見ましたか? –

+0

今、私は参照してください。あなたのリマインダーのためのThx。 – SparkAndShine

関連する問題