python - Timeit 模块拒绝 print("\n") 语句
问题描述
我正在尝试运行以下代码示例
from timeit import timeit as t
setup = '''
import time
from multiprocessing import Pool
def square(x):
square = x * x
time.sleep(1)
return square
'''
case01 = '''
def caso01():
print("\nPART 1")
starttime = time.time()
pool = Pool(4)
pool.map(square, range(0, 5))
pool.close()
endtime1 = time.time()
print(f"Time taken {endtime1-starttime} seconds")
return None
'''
def main():
print( t(setup=setup,stmt=case01,number=100) )
return None
main()
我总是得到同样的错误:
File "/usr/lib/python3.8/timeit.py", line 233, in timeit
return Timer(stmt, setup, timer, globals).timeit(number)
File "/usr/lib/python3.8/timeit.py", line 122, in __init__
compile(stmtprefix + stmt, dummy_src_name, "exec")
File "<timeit-src>", line 16
print("
我发现从打印句子中删除“\ n”问题就消失了。Timeit 模块根本不能使用“\n”吗?我错过了什么?
谢谢
PS:在linux机器上使用Python 3
解决方案
您需要添加一个前导反斜杠 ( \
) 来转义,\n
因为它是在运行时解码的。
case01 = '''
def caso01():
print("\\nPART 1")
starttime = time.time()
pool = Pool(4)
pool.map(square, range(0, 5))
pool.close()
endtime1 = time.time()
print(f"Time taken {endtime1-starttime} seconds")
return None
'''
推荐阅读
- python-3.x - 打开文本文件并在python中更改它
- django - 在 AWS 服务器中使用 Outlook REST API Oauth2 时出现凭据不允许错误
- reactjs - 无法在包含到 React 组件的富文本编辑器(react-draft-wysiwyg)中获取输入的数据
- php - 在 ionic 4 上使用 Angular 7 帖子时出现 Cors 策略错误
- python - Python中合并列表和数据框的问题
- javascript - Javascript - Issue on event listeners of classList
- vue.js - 插件未在 instance.vue 中定义
- laravel - 如何返回所有插入的批量数据 Laravel?
- html - 为什么 contentEditable=true div 在通过选项卡聚焦时不接受文本输入?
- python - 试图访问谷歌电子表格,但没有名为“谷歌”的模块