Я получил ошибку при измерении времени выполнения небольших фрагментов кода
Вот док
Когда я использую интерфейс командной строки в 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 убрал двойные кавычки.