对于ProjectEuler上的任务,我编写了一些代码,该代码使用强力来查找低于100的最长的素数链,这些素数加起来为素数,并且代码确实给出了正确的结果.因此对于低于100的数字,答案是2 + 3 + 5 + 7 + 11 + 13 = 41
import math
def prime(n):
for x in xrange(2,int(math.sqrt(n)+1)):
if n%x == 0:
return False
return True
primes = []
for x in xrange(2,100):
if prime(x):
primes += [x]
record = 0
i = 0
for num in primes:
i += 1
chain = [num]
for secnum in xrange(i,len(primes)-1):
chain += [primes[secnum]]
if len(chain) > record and sum(chain) in primes:
record = len(chain)
seq = chain
print seq …Run Code Online (Sandbox Code Playgroud) 在multiprocessing.Pool我试图以相同的顺序显示我的打印.
from multiprocessing import Pool
import time
def func(arg):
time.sleep(0.001)
print(arg, end=" ")
proc_pool = Pool(4)
proc_pool.map(func, range(30))
Run Code Online (Sandbox Code Playgroud)
输出是:0 1 8 9 10 11 14 15 6 7 16 17 4 5 12 13 18 19 2 3或类似的.它不在订单中0 1 2 3 ...
我知道imap可以提供更好的订购......但它仍然不是我想要的.我可以覆盖打印功能,将其保存到一个变量中并立即打印出来 - 但我希望它们一完成就显示出来 - 而不是一切都完成.
我正在尝试刮除Airbnb清单。除了单击“更多”以外,我想不出一种获取全部设施的方法。我正在使用硒来模拟点击,但是它似乎并不起作用。
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
url = 'https://www.airbnb.com/rooms/4660676'
driver = webdriver.Firefox()
driver.get(url)
elem = driver.find_element_by_xpath('//a[@class="expandable-trigger-more"]')
actions.click(elem).perform()
Run Code Online (Sandbox Code Playgroud) 我正在研究在 Python 中实现 DSL,我正在寻找一种小型 DSL 语言,它对没有设计和实现语言经验的人很友好。到目前为止,我回顾了 Hy 和 Mochi 两个实现。Hy 实际上是 lisp 的一种方言,而 Mochi 似乎与 Elixir 非常相似。两者对我来说都很复杂,因为我现在的目标是对语言进行原型设计并进行尝试,以找出它是否真的有助于解决问题并适合问题所需的风格。我知道 Python 通过标准库中提供的语言工具得到了很好的支持。到目前为止,我实现了一种确实非常简单的 lisp 方言,我没有使用过任何 python AST,它完全是通过字符串处理实现的,这对于我正在寻找的内容来说绝对不灵活。
是否有任何实现而不是上面提到的两种语言,小到可以研究?
有哪些关于这个主题的好书(从某种意义上说是实用的,不仅限于理论和学术方面)?
学习 Python AST 并使用它的好方法是什么?
就实际生成的字节码的开销而言,是否存在与基于 Python 构建的语言(如 Hy)相关的重大性能问题?
谢谢