小编RMW*_*aos的帖子

Python Float字符串格式不正常

我很确定我正确地这样做但没有得到我期望从Python 2.7.3字符串格式化迷你语言的结果.我正在尝试将float的输出格式化为3个整数值和不同数量的小数值.一切都有效,除了整数值.

单独使用以下代码可以获得3个整数值...

num = 3
value = '{:03}'.format(num)

returns '003'
Run Code Online (Sandbox Code Playgroud)

浮标工作......

num = 3.12345
value = '{:01.2f}'.format(num)

returns '3.12'
Run Code Online (Sandbox Code Playgroud)

但是,将两者结合起来似乎并不正常.小数精度有效,但整数精度不...

num = '3.12345'
value = '{:03.2f}'.format(num)

returns '3.12'

instead of the expected '003.12'
Run Code Online (Sandbox Code Playgroud)

如果我尝试以下任何格式,情况也是如此......

value = '{:03.02f}'.format(num)
- or -
value = '{0:3.2f}'.format(num)
- or -
value = '{:3.02f}'.format(num)
- or -
value = '{0:3.02f}'.format(num)
- or -
value = '{0:03.2f}'.format(num)
- or -
value = '{0:03.02f}'.format(num)
- or -
value = '{:0>3.2f}'.format(num)
etc...

Which all return the same …
Run Code Online (Sandbox Code Playgroud)

python string formatting mini-language

1
推荐指数
1
解决办法
2296
查看次数

wxPython非阻塞GUI线程和多处理?

Python 2.7.3 x64 wxPython 2.8 x64

已经阅读了很多关于python线程和多处理的内容,特别是Doug Hellmann撰写的一些文章,这些文章有很大的帮助.但是,我对一件事感到困惑......

认为 Python多处理模块或多或少是线程模块的直接替代品,除了args必须是可选择的,但我发现为了不阻止我的GUI,我必须首先创建一个新的线程使用threading.Thread然后使用multiprocessing.Process在该线程中进行多进程.这很有效,而且效果很好,但对我来说似乎有点笨拙.

如果我尝试在没有第一次线程的情况下直接进行多处理,那么我的GUI仍会阻塞,直到多处理作业完成.这是按设计工作,还是我遗漏了多处理模块的基本原理?

如果需要示例,我可以提供它们.

谢谢,

-RMWChaos

要求一个例子......

假设onProcess()由GUI中的按钮触发,这会阻止GUI ...

import time
import multiprocessing as mp

def myWorker(a, b):
    time.sleep(0.1)
    print '{} * {} = {}'.format(a, b, a*b)

def onProcess(event):
    jobs = mp.cpu_count() * 2
    a = 5
    b = 10

    for job in range(jobs):
        mp.Process(target = myWorker, args = (a, b,)).start()
Run Code Online (Sandbox Code Playgroud)

虽然这不......

import time
import multiprocessing as mp
import threading as th

def myWorker(a, b):
    time.sleep(0.1)
    print '{} * {} = …
Run Code Online (Sandbox Code Playgroud)

python multithreading wxpython nonblocking multiprocessing

1
推荐指数
1
解决办法
4325
查看次数