Я получил ошибку при измерении времени выполнения небольших фрагментов кода

Вот док
Когда я использую интерфейс командной строки в Windows cmd, я получаю эту ошибку:

C:\Windows\system32>
C:\Windows\system32>python3 -m timeit '"-".join(str(n) for n in range(100))'
Traceback (most recent call last):
  File "C:\Program Files\Python36\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "C:\Program Files\Python36\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Program Files\Python36\lib\timeit.py", line 362, in <module>
    sys.exit(main())
  File "C:\Program Files\Python36\lib\timeit.py", line 315, in main
    t = Timer(stmt, setup, timer)
  File "C:\Program Files\Python36\lib\timeit.py", line 123, in __init__
    compile(stmtprefix + stmt, dummy_src_name, "exec")
  File "<timeit-src>", line 2
    '-.join(str(n)
                 ^
SyntaxError: EOL while scanning string literal

C:\Windows\system32>

Кто-нибудь может мне помочь?

2 ответа

Используйте двойные кавычки снаружи и одинарные кавычки внутри выражения.

python -m timeit "'-'.join(str(n) for n in range(100))"

Скорее всего, вам нужно экранировать строку кода Python. В последней строке предоставленной трассировки стека вы видите, что cmd убрал двойные кавычки.

Другие вопросы по тегам