小编jbo*_*chi的帖子

列出N以下所有素数的最快方法

这是我能提出的最佳算法.

def get_primes(n):
    numbers = set(range(n, 1, -1))
    primes = []
    while numbers:
        p = numbers.pop()
        primes.append(p)
        numbers.difference_update(set(range(p*2, n+1, p)))
    return primes

>>> timeit.Timer(stmt='get_primes.get_primes(1000000)', setup='import   get_primes').timeit(1)
1.1499958793645562
Run Code Online (Sandbox Code Playgroud)

可以做得更快吗?

此代码有一个缺陷:由于numbers是无序集,因此无法保证numbers.pop()从集中删除最小数字.然而,它对某些输入数字起作用(至少对我而言):

>>> sum(get_primes(2000000))
142913828922L
#That's the correct sum of all numbers below 2 million
>>> 529 in get_primes(1000)
False
>>> 529 in get_primes(530)
True
Run Code Online (Sandbox Code Playgroud)

python math optimization primes

347
推荐指数
11
解决办法
19万
查看次数

使用背景图像填充SVG路径元素

是否可以background-image为SVG <path>元素设置?

例如,如果我设置元素class="wall",CSS样式.wall {fill: red;}可以工作,但.wall{background-image: url(wall.jpg)}不会.wall {background-color: red;}.

html css svg image background-image

157
推荐指数
2
解决办法
18万
查看次数

审计日志的数据库设计

每次我需要设计一个新的数据库时,我都会花一些时间考虑如何设置数据库模式来保存更改的审核日志.

这里已经提出了一些问题,但我不同意所有场景都有一个最好的方法:

我还偶然发现了这篇关于维护数据库更改日志的有趣文章,该文章试图列出每种方法的优缺点.它写得很好并且有很多有趣的信息,但它使我的决定更加困难.

我的问题是:是否有一个我可以使用的参考,可能是一本书或类似决策树的东西,我可以参考决定我应该根据一些输入变量去哪种方式,例如:

  • 数据库模式的成熟度
  • 如何查询日志
  • 需要重新创建记录的概率
  • 更重要的是:写或读性能
  • 正在记录的值的性质(字符串,数字,blob)
  • 存储空间可用

我知道的方法是:

1.为创建和修改的日期和用户添加列

表格示例:

  • ID
  • _1
  • _2
  • VALUE_3
  • 创建日期
  • 修改日期
  • 由...制作
  • modified_by

主要缺点:我们失去了修改的历史.提交后无法回滚.

2.仅插入表格

表格示例:

  • ID
  • _1
  • _2
  • VALUE_3
  • 删除(布尔值)
  • 用户

主要缺点:如何保持外键最新?需要巨大的空间

3.为每个表创建单独的历史记录表

历史表示例:

  • ID
  • _1
  • _2
  • VALUE_3
  • VALUE_4
  • 用户
  • 删除(布尔值)
  • 时间戳

主要缺点:需要复制所有审计表.如果架构发生更改,则还需要迁移所有日志.

4.为所有表创建合并历史记录表

历史表示例:

  • TABLE_NAME
  • 领域
  • 用户
  • NEW_VALUE
  • 删除(布尔值)
  • 时间戳

主要缺点:如果需要,我能否轻松重建记录(回滚)?new_value列需要是一个巨大的字符串,因此它可以支持所有不同的列类型.

audit logging database-design

143
推荐指数
4
解决办法
8万
查看次数

用于Python的无头浏览器(需要Javascript支持!)

我需要一个相当容易使用的无头浏览器(我仍然是相当新的Python和一般的编程),这将允许我导航到一个页面,登录到需要Javascript的表单,然后通过以下方式刮擦生成的网页搜索符合特定条件的结果,单击复选框,然后单击以下载文件.所有这些都需要Javascript.

我听到无头浏览器是我想要的 - 需求/偏好是我能够从Python运行它,并且最好是生成的脚本可以通过py2exe编译(我正在为其他用户编写这个程序).

到目前为止风车看起来很像我想要的,但我不确定.

任何想法赞赏!

javascript python screen-scraping headless-browser

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

django excel xlwt

在django站点上,我想基于数据库中的一些数据生成excel文件.

我正在考虑使用xlwt,但它只有一种方法将数据保存到文件中.如何将文件获取到HttpResponse对象?或者你知道一个更好的图书馆吗?

我也找到了这个片段,但它没有做我需要的.我想要的是一种从xlwt对象获取流到响应对象的方法(无需写入临时文件)

python django excel xlwt

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

是否有django模板过滤器来显示百分比?

我想要类似于标准库中字符串格式.

'%'百分比.将数字乘以100并以固定('f')格式显示,后跟百分号.

django formatting django-templates

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

在Windows上安装PygraphViz,Python 2.6

有人在Windows上成功安装了PygraphViz吗?

由于没有适用于Windows的正式版本,我正在尝试自己构建它,但它无法编译.我不是第一个面对这个问题,但我无法找到答案.

这是控制台输出:

C:\Python26\Lib\site-packages\pygraphviz-0.99.1>c:\python26\python.exe setup.py
install
library_path=C:/Program Files/Graphviz2.26.3/lib/debug/dll
include_path=C:/Program Files/Graphviz2.26.3/include/graphviz
running install
running build
running build_py
running build_ext
building 'pygraphviz._graphviz' extension
C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W
3 /GS- /DNDEBUG "-IC:/Program Files/Graphviz2.26.3/include/graphviz" -Ic:\python
26\include -Ic:\python26\PC /Tcpygraphviz/graphviz_wrap.c /Fobuild\temp.win32-2.
6\Release\pygraphviz/graphviz_wrap.obj
graphviz_wrap.c
warning: I don't know what to do with 'runtime_library_dirs': ['C:/Program Files
/Graphviz2.26.3/lib/debug/dll']
error: don't know how to set runtime library search path for MSVC++
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激!

c python windows installation graphviz

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

赋值语句值

每个人都知道在Python中,赋值不会返回一个值,大概是为了避免if在通常只是进行比较时对语句进行赋值:

>>> if a = b:
  File "<stdin>", line 1
    if a = b:
         ^
SyntaxError: invalid syntax

>>> if a == b:
...     pass
...
Run Code Online (Sandbox Code Playgroud)

出于同样的原因,人们可能会怀疑同一语句中的多个赋值也是语法错误.

实际上,a = (b = 2)这不是一个有效的表达式:

>>> a = (b = 2)
  File "<stdin>", line 1
    a = (b = 2)
           ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是:为什么a = b = 2在Python中工作,因为它适用于赋值语句有值的其他语言,比如C?

>>> a = b = c = 2
>>> a, b, c
(2, 2, 2)
Run Code Online (Sandbox Code Playgroud)

这种行为是否有记录?我在赋值语句文档中找不到任何相关内容:http: …

python variable-assignment

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

是否有一个库,在图像上放置一个放大/缩小按钮,允许增量+和 -

是否有任何允许Photoshop或PDF风格变焦那里我有希望用户能够图片点击可放大和出库或组件,我想支持能够在多次放大和缩小了一些时间

我想要相当于每个能够做这样的事情的用户:https: //addons.mozilla.org/en-US/firefox/addon/139

html javascript image zoom

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

Django:使用@login_required并设置LOGIN_URL时出现信息泄漏问题

当使用@login_required装饰器并设置LOGIN_URL变量时,我发现了一种信息泄漏.

我有一个网站,要求所有内容的强制登录.问题是,当它是现有页面时,您将被重定向到登录页面,并设置下一个变量.

所以当没有登录并要求:

 http://localhost:8000/validurl/
Run Code Online (Sandbox Code Playgroud)

你看到了这个:

 http://localhost:8000/login/?next=/validurl/
Run Code Online (Sandbox Code Playgroud)

在请求不存在的页面时:

 http://localhost:8000/faultyurl/
Run Code Online (Sandbox Code Playgroud)

你看到了这个:

 http://localhost:8000/login/
Run Code Online (Sandbox Code Playgroud)

这揭示了一些我不想要的信息.我想过覆盖login方法,强制下一个为空并在这个子类方法上调用'super'.

另一个问题是我的一些测试在没有设置LOGIN_URL的情况下失败.他们重定向到'/ accounts/login /'而不是'/ login /'.因此,为什么我想使用LOGIN_URL但禁用'自动下一个'功能.

谁可以对这个问题有所了解?

非常感谢.

杰拉德.

python authentication django django-urls

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