我正在研究用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) 我.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)
所以我想知道这些方法之间有什么区别,我是否应该优先选择其中一种方法.
我制作了一个模拟太阳系中物体运动的程序,然而,我的结果却出现了各种不准确之处.
我相信它可能与我的集成方法有关.
我跑的测试是一个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) 这是尝试运行系统命令的代码:
String command = "java -cp 1outinstr;out Main";
Process p = Runtime.getRuntime().exec("cmd /c " + command);
Run Code Online (Sandbox Code Playgroud)
我的问题是我看不到命令的输出.
我想得到所有偶数<= 1000的总和.
以下代码:
sum [x | x <- [1..1000], even x] (我知道可以用[2,4..1000]完成,这是为了练习)
报告总和是250500.
然而:
sum [x | x <- [1..], even x && x <= 1000]
从未完成,必须中断!
我认为我可以安全地编写[1..],这是一个无限的列表,因为Haskell不会尝试评估它.
此外,我认为它只是开始x x,检查并添加它们.
那么为什么上面的结果不能产生呢?
在以下语句中,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中尝试过)?
可能重复:
使用Javascript播放声音通知?
我正在使用JS制作游戏,当发生某些事情时我需要一种正确的方式来播放声音.你如何用JS/HTML5做到这一点?我看过这篇文章,但即使有他们的例子,也没有真正奏效!有时我确实听到那只鸟,但只是很短的时间,我再也无法让它工作了.
我做了这个简单的算法,但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) 我知道PHP和Node.js的基础知识,但我不明白为什么有些人争论哪一个更好......可以用Node.js来渲染像PHP这样的网页吗?例如,你可以使用Node.js创建一个BBS(我知道你可以访问DB,但是rwndering的帖子似乎有问题)?在我看来,Node.js可以用作一个非常简单的HTTP服务器,只提供基本的HTML,而不是更改它,或者用于通信(我用它).例如,我正在制作一个浏览器MMO游戏,我使用PHP来为该网站和论坛/ devblog提供服务,并使用Node.js进行实际游戏.或者我错过了什么?
可能的重复:
你能用 C 编写面向对象的代码吗?
C中的面向对象编程
所以,据我所知,“对象”基本上只是值和方法的包装器。你不能在 C 中使用structs拥有相同的功能吗?Astruct看起来就像一个简单的class,但是,当然,它没有任何方法。在这里,我们触及了我的问题的核心:我根本不明白为什么需要方法。如果我们有一个只接受指向 a 实例的指针的外部函数,岂不是更简单、更节省内存struct?或者甚至让structs 指向这些函数,但这似乎纯粹是美学......
javascript ×3
class ×2
python ×2
recursion ×2
architecture ×1
astronomy ×1
audio ×1
c ×1
c++ ×1
definition ×1
haskell ×1
header-files ×1
html ×1
html5 ×1
java ×1
lambda ×1
namespaces ×1
node.js ×1
oop ×1
php ×1
range ×1
scala ×1
simulation ×1
stdio ×1
struct ×1
web-crawler ×1