问题列表 - 第13085页

什么是更快的Python,"while"或"for xrange"

我们可以做数字迭代,如:

for i in xrange(10):
    print i,
Run Code Online (Sandbox Code Playgroud)

和C风格:

i = 0
while i < 10:
    print i,
    i = i + 1
Run Code Online (Sandbox Code Playgroud)

是的,我知道,第一个不容易出错,更像pythonic,但它是否足够快作为C风格的版本?

PS.我是来自C++星球,而且是Python上的新星.

python micro-optimization

5
推荐指数
2
解决办法
1万
查看次数

为什么比乘以两个随机数更快地对数字进行平方?

将两个二进制数相乘需要n ^ 2次,但是以某种方式可以更有效地对数字进行平方.(n是位数)这怎么可能?

还是不可能?这是精神错乱!

algorithm math bit-manipulation discrete-mathematics

33
推荐指数
5
解决办法
2万
查看次数

在Django站点中将HTML呈现为PDF

对于我的django支持的网站,我正在寻找一个简单的解决方案,将动态html页面转换为pdf.

页面包括来自Google可视化API的HTML和图表(基于javascript,但包括这些图表是必须的).

html python pdf django pdf-generation

111
推荐指数
5
解决办法
9万
查看次数

如何检查perl版本是否大于某个值?

要确保脚本至少具有perl的X版本,您可以执行以下操作

require 5.6.8;
Run Code Online (Sandbox Code Playgroud)

检查版本不是太近的最佳方法是什么?(即版本5.8.x如果罚款,但5.9或5.10不正常).

perl

5
推荐指数
2
解决办法
4543
查看次数

为什么我的C++异常没有被捕获?

我有一些使用非常标准的异常模式的C++代码:

try {
  // some code that throws a std::exception
}
catch (std::exception &e) {
  // handle the exception
}
Run Code Online (Sandbox Code Playgroud)

问题是异常没有被捕获,我无法弄清楚原因.

代码编译为OS X中的静态库(通过Xcode).该库链接到一个Cocoa应用程序,通过Objective-C++ thunk调用所讨论的函数.我怀疑Objective-C和C++之间的相互作用是罪魁祸首,但我所有试图将其解决的尝试都失败了.

我无法创建一个简单的示例,在一个简单的示例中重现此行为.当我从大型程序的上下文中取出相关代码时,一切正常.

任何人都可以建议为什么我的例外没有被抓住?

c++ exception-handling objective-c

8
推荐指数
5
解决办法
1万
查看次数

桌面应用中的数据库使用swing

我在java中制作桌面应用程序并在数据库中使用MSAccess.我希望如果我运行应用程序的设置,应该在客户端计算机上创建数据库,因为可以有不同的客户端使用该应用程序,我如何创建设置?有免费的工具吗?请详细解释我..谢谢

java swing desktop-application

2
推荐指数
2
解决办法
2285
查看次数

使用twisted的反应器进行Python多处理

我正在开发一个xmlrpc服务器,它必须周期性地执行某些任务.我使用twisted作为xmlrpc服务的核心,但我遇到了一个小问题:

class cemeteryRPC(xmlrpc.XMLRPC):

    def __init__(self, dic):
        xmlrpc.XMLRPC.__init__(self)


    def xmlrpc_foo(self):
        return 1


    def cycle(self):
        print "Hello"
        time.sleep(3)


class cemeteryM( base ):

    def __init__(self, dic):   # dic is for cemetery
        multiprocessing.Process.__init__(self)
        self.cemRPC = cemeteryRPC()


    def run(self):
        # Start reactor on a second process
        reactor.listenTCP( c.PORT_XMLRPC, server.Site( self.cemRPC ) )
        p = multiprocessing.Process( target=reactor.run )
        p.start()

        while not self.exit.is_set():
            self.cemRPC.cycle()
            #p.join()


if __name__ == "__main__":

    import errno
    test = cemeteryM()
    test.start()

    # trying new method
    notintr = False
    while not notintr:
        try:
            test.join() …
Run Code Online (Sandbox Code Playgroud)

python twisted multiprocessing

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

我应该使用LINQ进行此查询吗?

我一直在阅读有关使用LINQ的性能,而不是使用每个循环的性能,并且从我理解的使用LINQ查询会稍微慢一点,但通常值得为方便和表达.但是,如果你在for循环中使用查询结果,我会感到有点困惑.

假设我有一个名为'Locations'的集合和一组名为'Items'的对象.每个"项目"只能属于一个"位置".我想将相同位置下的项链接到彼此.如果我使用正常的'For Each'循环来执行此操作,它将是这样的:

For Each it as Item in Items
   If it.Location.equals(Me.Location)
      Me.LinkedItems.Add(it)
   End If
Next
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用LINQ,它将改为:

For Each it as Item in Items.Where(Function(i) i.Location.equals(Me.Location))
   Me.LinkedItems.Add(it)
Next
Run Code Online (Sandbox Code Playgroud)

现在我的问题是,第二个(LINQ)选项是否会循环遍历整个'Items'集以完成查询,然后遍历结果以将它们添加到列表中,从而导致基本上两个循环,或者它会做什么像第一个(For Each)选项一样的循环?如果答案是前者,那么我认为在这种情况下使用LINQ会很愚蠢.

linq vb.net optimization

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

XNA:获取屏幕的宽度和高度

如何在XNA中获得整个屏幕的宽度和高度?

xna fullscreen

44
推荐指数
2
解决办法
4万
查看次数

侦听COM端口时,跨线程操作无效

可能重复:使
跨线程操作无效
跨线程操作无效

我正在尝试侦听COM端口,以便为SerialPort.DataReceived事件创建新的处理程序.逻辑很简单 - 我写了一些东西给TextBox1,按下Button1,我的文本应该在Label1中显示它自己.但我的应用程序不想运行,因为它抛出"交叉线程操作无效"错误.我做了一些搜索并找到了Invoke对象 - 我如何在我的例子中使用它?为什么我需要包含Invoke逻辑?

namespace WindowsApplication1
{
public partial class Form1 : Form
{
    SerialPort sp = new SerialPort();

    public Form1()
    {
        InitializeComponent();
        sp.DataReceived += MyDataReceivedHandler;
    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }

    private void MyDataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
    {
        try
        {
            //sp.PortName = "COM3";
            //sp.Open();
            Label1.Text = sp.ReadLine();
        }
        catch (Exception exception)
        {
            RichTextBox1.Text = exception.Message + "\n\n" + exception.Data;
        }
        finally
        {
            sp.Close();
        }
    }

    private void button1_Click(object sender, EventArgs e)
    { …
Run Code Online (Sandbox Code Playgroud)

.net c# multithreading exception-handling winforms

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