这是我几天前给出的回答的后续问题.编辑:似乎该问题的OP已经使用了我发给他的代码来问同样的问题,但我没有意识到它.道歉.提供的答案虽然不同!
我基本上观察到:
>>> def without_else(param=False):
... if param:
... return 1
... return 0
>>> def with_else(param=False):
... if param:
... return 1
... else:
... return 0
>>> from timeit import Timer as T
>>> T(lambda : without_else()).repeat()
[0.3011460304260254, 0.2866089344024658, 0.2871549129486084]
>>> T(lambda : with_else()).repeat()
[0.27536892890930176, 0.2693932056427002, 0.27011704444885254]
>>> T(lambda : without_else(True)).repeat()
[0.3383951187133789, 0.32756996154785156, 0.3279120922088623]
>>> T(lambda : with_else(True)).repeat()
[0.3305950164794922, 0.32186388969421387, 0.3209099769592285]
Run Code Online (Sandbox Code Playgroud)
......或换句话说:else
无论if
条件是否被触发,使条款更快.
我假设它与两者生成的不同字节码有关,但有人能够详细确认/解释吗?
编辑:似乎不是每个人都能重现我的时间,所以我认为在我的系统上提供一些信息可能是有用的.我正在安装默认的python运行Ubuntu 11.10 64位.python …
在没有关于解析(X)HTML或XML并且询问正则表达式的问题的情况下,SO上没有任何日子.
虽然相对容易想出用于演示此任务的正则表达式的不可行性的示例或用表达概念的表达式集合,我仍然无法在SO上找到为什么在外行人中无法做到这一点的正式解释条款.
到目前为止我在这个网站上找到的唯一正式解释可能非常准确,但对于自学成才的程序员来说也很神秘:
这里的缺陷是HTML是Chomsky Type 2语法(无上下文语法)而RegEx是Chomsky Type 3语法(正则表达式)
要么:
正则表达式只能匹配常规语言,但HTML是无上下文的语言.
要么:
有限自动机(它是正则表达式下面的数据结构)除了它所处的状态之外没有内存,如果你有任意深度的嵌套,你需要一个任意大的自动机,它与有限自动机的概念相冲突.
要么:
常规语言的Pumping引理是你不能这样做的原因.
[公平地说:以上大多数解释链接到维基百科页面,但这些并不比答案本身更容易理解].
所以我的问题是:有人可以提供一个外行人的上述正式解释的翻译,为什么不可能使用正则表达式来解析(X)HTML/XML?
编辑:在读完第一个答案之后,我认为我应该澄清:我正在寻找一个"翻译",它也简要地解释了它试图翻译的概念:在答案的最后,读者应该有一个粗略的想法 - 例如 - "常规语言"和"无语境语法"是什么意思......
在优化我的代码时,我意识到以下内容:
>>> from timeit import Timer as T
>>> T(lambda : 1234567890 / 4.0).repeat()
[0.22256922721862793, 0.20560789108276367, 0.20530295372009277]
>>> from __future__ import division
>>> T(lambda : 1234567890 / 4).repeat()
[0.14969301223754883, 0.14155197143554688, 0.14141488075256348]
>>> T(lambda : 1234567890 * 0.25).repeat()
[0.13619112968444824, 0.1281130313873291, 0.12830305099487305]
Run Code Online (Sandbox Code Playgroud)
并且:
>>> from math import sqrt
>>> T(lambda : sqrt(1234567890)).repeat()
[0.2597470283508301, 0.2498021125793457, 0.24994492530822754]
>>> T(lambda : 1234567890 ** 0.5).repeat()
[0.15409398078918457, 0.14059877395629883, 0.14049601554870605]
Run Code Online (Sandbox Code Playgroud)
我假设它与C实现python的方式有关,但我想知道是否有人会解释为什么会如此?
有很多关于如何做到这一点的信息,但由于"有一种方法可以给猫皮肤",所以涵盖一些过程的所有教程/手册似乎都做出了与其他不同的某些假设.教程,我仍然无法掌握它.
到目前为止,这是我认为我理解的.
CDBS
或debhelper
.Debhelper是初学者的推荐方式.DEBIAN
命令.dh_make
现在我的问题:
setup.py
安装独立程序的脚本? 编辑:通过独立程序我的意思是一个程序供桌面用户使用(而不是我理解的模块,就像导入后其他软件使用的功能集合).在我的具体情况下,我实际上需要两个这样的"程序":主软件和一个单独的实用程序(实际上是第二个"程序",应该与另一个程序包在同一个程序包中).顺便说一句:这些是迄今为止我能找到的最好的信息来源.如果你有什么比这更好的,请分享!:)
是否可以映射NumPy阵列?如果有,怎么样?
给定a_values
- 二维数组 - 这是我现在可以解决的一些代码:
for row in range(len(a_values)):
for col in range(len(a_values[0])):
a_values[row][col] = dim(a_values[row][col])
Run Code Online (Sandbox Code Playgroud)
但它太难看了,我怀疑在NumPy中的某个地方必须有一个功能可以做同样的事情:
a_values.map_in_place(dim)
Run Code Online (Sandbox Code Playgroud)
但如果存在上述情况,我一直无法找到它.
我是一个非常开心的Eclipse用户(我主要使用PHP和Python开发),但是我找到了"Vim/Emacs在GUI文本编辑器上提供了哪些具体的生产力提升?"的答案.足够有趣,让我希望尝试Vim或Emacs,看看它们是否会成为一个更好的解决方案.
我普遍认为Vim和Emacs并不是你通过"玩它"而学习的那种编辑器.我有这样的印象,你必须花一些时间和精力来"研究"它们,然后才能从它们的力量中获益.
所以,我对社区有两个问题:
在链接的线程中,响应者基本上通过评论Vim来回答(经常提到:"我确信Emacs具有相同的").Google趋势似乎表明Vim是两者之间最常采用的,但我的第一个问题是:我知道我之前没有任何经验,而且我在GNU/Linux上使用和开发(主要是PHP和Python)系统(Ubuntu,Arch Linux),是否有两个代表更好的选择?(要明确的是:我的问题不是关于编辑的质量,而是关于在我的情况下在战略上更好地学习的内容).
对于如何学习使用它/他们,您会给我什么建议?我知道这是一个广泛的问题,但故意是这样.看看这个答案(不相关的主题),了解我正在寻找的那种信息/风格的答案[但不要觉得有必要以这种方式回答......任何形式的欢迎都会受到欢迎!]
编辑(选择"接受的答案")
我选择了一个答案作为刚才接受的答案,但我想对所有分享经验和建议的人说"谢谢" :几乎所有人都以某种方式对我有用.这个帖子肯定超出了我的期望!谢谢!:)
我正试图退出我用Facebook集成创建的网站.登录工作正常,但是当我想要注销时,Firebug一直给我这个错误:
FB.logout()
没有访问令牌调用.
我正在使用Facebook JavaScript SDK,我必须注销的代码如下所示:
$(document).ready($(function () {
$("#fblogout").click(facebooklogout);
}));
function facebooklogout() {
FB.logout(function (response) {
}
)};
Run Code Online (Sandbox Code Playgroud)
这是在Facebook开发人员文档中指定的注销代码,只是在document.ready上分配了一个按钮
在此代码之前我有FB.init()
方法,一切运行正常.
如果有人知道为什么FB.logout没有访问令牌,那么我们将不胜感激.
我有一堆旧的经典ASP页面,其中许多在表格中显示数据库数据.这些页面都没有内置任何排序功能:您可以使用原始开发人员认为适合使用的任何ORDER BY子句.
我正在快速修复以通过客户端javascript进行排序.我已经编写了一个主要完成我需要的脚本.但是,我仍然需要添加一点功能.这些页面中的表格行通常具有交替的行颜色,用于实现此目的的机制因页面而异.它可能就像更改CSS类一样简单,或者样式可能已由ASP代码内联呈现.
在对表格进行排序之后,每一行都保持着色方案被渲染,因此交替的行不再交替.我希望用这样简单的东西修复它:
/* "table" is a var for the table element I'm sorting.
I've already verified it exists, and that there are at least three rows.
At this point the first row (index 0) is always the header row.
*/
// check for alternating row styles:
var RowStyle = table.rows[1].style;
var AltStyle = table.rows[2].style;
// SORT HAPPENS HERE!!
// snip
// Apply alternating row styles
if (RowStyle === AltStyle) return true;
for (var i=1,il=table.rows.length;i<il;i+=1)
{
if (i%2==0) table.rows[i].style=RowStyle; …
Run Code Online (Sandbox Code Playgroud) 当我调用此函数时,图像视图中没有bitmapFactory.decodefile(filename)
显示null的图像
..请帮忙.
这是我的代码:
public Bitmap ShowImage(String imageName,String userImageName )
{
File sdcard_mainDirectory = new File(Environment.getExternalStorageDirectory(),"UserImages").getAbsoluteFile();
File file = new File(sdcard_mainDirectory, userImageName).getAbsoluteFile();
if (file != null) {
try {
String imageInSD = "/sdcard/UserImages/"+userImageName;
Bitmap bitmap = BitmapFactory.decodeFile(imageInSD);
return bitmap;
}
catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud) 我刚刚完成了第二次使用Django教程,现在我已经更加清楚地理解了这些内容.但是,我仍然不清楚网站内的应用程序如何互相交互.
例如,假设我正在编写一个博客应用程序(显然是一个相当受欢迎的活动).博客文章和评论倾向于一起,但它们足够明显,应该将它们构建到单独的应用程序中,这是Djano开发的一般理念.
请考虑以下示例.实际上我实际上并不会自己编写评论应用程序,因为网上已经存在好的代码,但这是为了演示/练习目的:
mysite的/博客/ models.py
from django.db import models
class post(models.Model):
title = models.CharField(max_length=200)
author = models.CharField(max_length=200)
content = models.TextField()
Run Code Online (Sandbox Code Playgroud)
mysite的/评论/ models.py
from django.db import models
from mysite.blog.models import post
class comment(models.Model):
id = models.AutoField()
post = models.ForeignKey(post)
author = models.CharField(max_length=200)
text = models.TextField()
Run Code Online (Sandbox Code Playgroud)
我上面写的是,从另一个应用程序导入模型并将其设置为外键,Django应用程序如何交互?或者是否有一个不同/更好的方法来构成一个网站进行交互?
更新
根据一个响应中的建议,我正在阅读contrib.contenttypes的文档.如果我正确读到这个,我可以像这样重写我的示例评论应用:
from django.db import models
from django.contrib.contenttypes.models import ContentType
from django.contrib.contentypes import generic
class comment(models.Model):
id = models.AutoField()
author = models.CharField(max_length=200)
text = models.TextField()
content_type = models.ForeignKey(ContentType)
content_object = generic.GenericForeignKey(content_type, id)
Run Code Online (Sandbox Code Playgroud)
这是正确的吗?
python ×5
javascript ×2
python-2.7 ×2
android ×1
arrays ×1
c ×1
debhelper ×1
debian ×1
distutils ×1
django ×1
django-apps ×1
editor ×1
emacs ×1
facebook ×1
html ×1
ide ×1
mapping ×1
numpy ×1
optimization ×1
packaging ×1
performance ×1
regex ×1
styles ×1
vim ×1