内容不是在 Python 中使用多处理打印的



我只想从这个站点运行一个示例,它是以下代码:

from multiprocessing import Process

def square(x):
for x in numbers:
print('%s squared  is  %s' % (x, x**2))
if __name__ == '__main__':
numbers = [43, 50, 5, 98, 34, 35]
p = Process(target=square, args=('x',))
p.start()
p.join()
print ("Done")

它说,如果你运行代码,你应该看到以下结果:

#result
Done
43 squared  is  1849
50 squared  is  2500
5 squared  is  25
98 squared  is  9604
34 squared  is  1156
35 squared  is  1225

但是当我运行此代码时,我只看到结果中的Done,仅此而已。在该教程中使用了 Python 2.7,但我有 3.6,我在打印中添加了()

谢谢你的帮助

您的代码段存在一些问题。

  1. 缩进:if __name__ == '__main__':是平方函数的一部分
  2. 函数square应该接受参数numbers而不是x
  3. 传递给进程的参数应args=(numbers,)

一旦你解决了所有这些问题,你就会得到:

from multiprocessing import Process

def square(numbers):
for x in numbers:
print('%s squared  is  %s' % (x, x**2))
if __name__ == '__main__':
numbers = [43, 50, 5, 98, 34, 35]
p = Process(target=square, args=(numbers,))
p.start()
p.join()
print ("Done")

运行正常。

如果您在 Windows 上使用 IDLE,要查看输出,您需要从命令行启动 IDLE:

C:UsersMyName>python -m idlelib

如本问题所述

如果 IDLE 退出且没有消息,并且它不是从控制台启动的,请尝试从控制台 (python -m idlelib( 启动,看看是否显示消息。 例如,如果你的python文件在桌面上,你可以写

C:\Users\MyName> Desktop\python-file-name -m idlelib

PRSSwin + x并选择command prompt

相关内容

  • 没有找到相关文章

最新更新