小编cor*_*zza的帖子

以下Python代码有什么作用?这就像括号中的列表理解.

我正在研究用Python制作的网络爬虫,我偶然发现了一个非常简单的网页爬虫.但是,我不理解最后几行,在以下代码中突出显示:

import sys
import re
import urllib2
import urlparse

tocrawl = [sys.argv[1]]
crawled = []

keywordregex = re.compile('<meta\sname=["\']keywords["\']\scontent=["\'](.*?)["\']\s/>')
linkregex = re.compile('<a\s(?:.*?\s)*?href=[\'"](.*?)[\'"].*?>')

while 1:
    crawling = tocrawl.pop(0)
    response = urllib2.urlopen(crawling)
    msg = response.read()
    keywordlist = keywordregex.findall(msg)
    crawled.append(crawling)
    links = linkregex.findall(msg)
    url = urlparse.urlparse(crawling)

    a = (links.pop(0) for _ in range(len(links))) //What does this do?

    for link in a:
        if link.startswith('/'):
            link = 'http://' + url[1] + link
        elif link.startswith('#'):
            link = 'http://' + url[1] + url[2] + link
        elif not link.startswith('http'): …
Run Code Online (Sandbox Code Playgroud)

python web-crawler

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

如何在实现方法时使用命名空间?

.hpp在一个命名空间中包含的行中有一个类声明:

namespace mylib
{
    class MyClass
    {
        public:

        MyClass();
    }
}
Run Code Online (Sandbox Code Playgroud)

我计划在.cpp文件中实现类的功能.

但是,这两种方法似乎都有效:

mylib::MyClass::MyClass()
{
}
Run Code Online (Sandbox Code Playgroud)

namespace mylib
{
    MyClass::MyClass()
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我想知道这些方法之间有什么区别,我是否应该优先选择其中一种方法.

c++ namespaces class header-files

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

为什么我的天文模拟不准确?

我制作了一个模拟太阳系中物体运动的程序,然而,我的结果却出现了各种不准确之处.

我相信它可能与我的集成方法有关.


tl; dr我的模拟和NASA数据之间的地球位置和速度之间有细微差别,如果你可以请看下面我的代码并告诉我数学是否错误.


我跑的测试是一个10天长(864000秒)的模拟,从开始到Thu Mar 13 18:30:59 2006结束Thu Mar 23 18:30:59 2006.

模拟结束后,该计划报告了地球的以下统计数据:

Earth position: (-1.48934630382e+11, -7437423391.22)
Earth velocity: (990.996767368, -29867.6967867)
Run Code Online (Sandbox Code Playgroud)

测量单位当然是米和米每秒.

我已经使用HORIZONS系统来获取Thu Mar 13 18:30:59 2006太阳系中大多数大型物体的起始位置和速度矢量,并将它们放入模拟中.

测试结束后,我再次查询HORIZONS的Thu Mar 23 18:30:59 2006地球数据,得到了以下结果:

Earth position: (-1.489348720130393E+11, -7437325664.023257)
Earth velocity: (990.4160633376971, -2986.736541327986)
Run Code Online (Sandbox Code Playgroud)

如您所见,结果的前四位数几乎总是相同.然而,这仍然是一个非常大的错过!我很担心,因为我将不得不模拟几年的时间,错误可能会升级.

你能看看我模拟的核心,告诉我我的数学是不正确的吗?

def update (self, dt):
    """Pushes the uni 'dt' seconds forward in time."""

    self.time += dt

    for b1, b2 in combinations(self.bodies.values(), 2):
        fg = self.Fg(b1, b2)

        if b1.position.x > b2.position.x: …
Run Code Online (Sandbox Code Playgroud)

python simulation floating-point astronomy

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

从Java程序运行系统命令时没有输出

这是尝试运行系统命令的代码:

String command = "java -cp 1outinstr;out Main";
Process p      = Runtime.getRuntime().exec("cmd /c " + command);
Run Code Online (Sandbox Code Playgroud)

我的问题是我看不到命令​​的输出.

java stdio

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

列表理解中的Haskell懒惰

我想得到所有偶数<= 1000的总和.

以下代码:

sum [x | x <- [1..1000], even x] (我知道可以用[2,4..1000]完成,这是为了练习)

报告总和是250500.

然而:

sum [x | x <- [1..], even x && x <= 1000]

从未完成,必须中断!

我认为我可以安全地编写[1..],这是一个无限的列表,因为Haskell不会尝试评估它.

此外,我认为它只是开始x x,检查并添加它们.

那么为什么上面的结果不能产生呢?

haskell list-comprehension range

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

为什么可以在Scala中为非惰性val分配递归lambda?

在以下语句中,val f被定义为引用自身的lambda(它是递归的):

val f: Int => Int = (a: Int) =>
    if (a > 10) 3 else f(a + 1) + 1 // just some simple function
Run Code Online (Sandbox Code Playgroud)

我在REPL中尝试过它,它编译并正确执行.

根据规范,这似乎是非法前向引用的一个例子:

s[1]...s[n]构成块的语句序列中,如果一个简单的名称是s[i]指由s[j]where 定义的实体j >= i,那么对于所有s[k]之间和包括s[i]s[j],

  • s[k] 不能是变量定义.
  • 如果s[k]是值定义,则必须是lazy.

赋值是单个语句,因此它满足j >= i条件,并且它包含在两个规则适用于(之间和包括s[i]s[j])之间的语句间隔中.

但是,它似乎违反了第二条规则,因为f它不是懒惰的.

这是一个法律声明(在Scala 2.9.2中尝试过)?

recursion lambda specifications scala definition

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

如何用JS播放声音?

可能重复:
使用Javascript播放声音通知?

我正在使用JS制作游戏,当发生某些事情时我需要一种正确的方式来播放声音.你如何用JS/HTML5做到这一点?我看过这篇文章,但即使有他们的例子,也没有真正奏效!有时我确实听到那只鸟,但只是很短的时间,我再也无法让它工作了.

html javascript audio html5

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

为什么JS中的这种递归算法不起作用?

我做了这个简单的算法,但Chrome表现得很奇怪,几乎就像递归的函数不返回...算法的任务是循环通过rs数组的所有可能性,它有三个元素,可以是0或1.

//rs is the list of all variables that can be 0 or 1
//cS, or currentStack is the variable that s

rs = [0, 0, 0];

circ = function(cS)
{
     for (pos = 0; pos <= 1; pos ++)
     {
          rs[cS] = pos;
          if (cS + 1 < rs.length)
               circ(cS + 1);
     }
     return 0;                    
}

circ(0); //this should cycle trough all the possibilities of the rs array, it should look like this:
/*
000 - first …
Run Code Online (Sandbox Code Playgroud)

javascript recursion

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

Node.js可以具有与PHP相同的功能,还是应该一起使用?

我知道PHP和Node.js的基础知识,但我不明白为什么有些人争论哪一个更好......可以用Node.js来渲染像PHP这样的网页吗?例如,你可以使用Node.js创建一个BBS(我知道你可以访问DB,但是rwndering的帖子似乎有问题)?在我看来,Node.js可以用作一个非常简单的HTTP服务器,只提供基本的HTML,而不是更改它,或者用于通信(我用它).例如,我正在制作一个浏览器MMO游戏,我使用PHP来为该网站和论坛/ devblog提供服务,并使用Node.js进行实际游戏.或者我错过了什么?

javascript php node.js

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

C 怎么不是面向对象的?

可能的重复:
你能用 C 编写面向对象的代码吗?
C中的面向对象编程

所以,据我所知,“对象”基本上只是值和方法的包装器。你不能在 C 中使用structs拥有相同的功能吗?Astruct看起来就像一个简单的class,但是,当然,它没有任何方法。在这里,我们触及了我的问题的核心:我根本不明白为什么需要方法。如果我们有一个只接受指向 a 实例的指针的外部函数,岂不是更简单、更节省内存struct?或者甚至让structs 指向这些函数,但这似乎纯粹是美学......

c architecture oop struct class

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