小编Eli*_*sky的帖子

有效解决Python中的字母/数字问题

如果a = 15152表示为a2while,215则表示为2a必须找到数字x

8x = 8*x8

我试过这个天真的Python代码

>>> i = 0
>>> while(i<=100000000000000000):
...   if(int("8"+str(i))==8*int(str(i)+"8")):
...     break
...   i = i+1
... print i
Run Code Online (Sandbox Code Playgroud)

但是要花费大量时间才能产生正确的结果.

如何优化代码?

python math

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

使用python应用程序在Windows上"打开..."文件

我试图找出当用户右键单击文件并选择"打开方式"时如何使python程序打开文件.例如,我希望用户能够右键单击文本文件并选择我的程序,以便我的程序可以处理文本文件.是否将文本文件的名称传递到我的程序中?谢谢.

python windows

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

扩展的正则表达式是否支持反向引用?

维基百科,扩展的正则表达式"不再支持反向引用",因此必须使用"基本"正则表达式模式来实现这些功能.但是,似乎许多实现支持扩展正则表达式的反向引用.例如,在Ubuntu Precise上使用gcc 4.6,它们是受支持的.FreeBSD实现似乎只在基本模式下支持它们.

Boost说(并且似乎同意维基百科),扩展正则表达式不支持反向引用,但Boost :: Regex将它们作为扩展添加.

这只是标准中一个定义不明确的部分,每个实现的解释都不同吗?

c regex posix

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

在对象销毁时清理内部pysqlite连接

我有一个内部数据库连接的对象,它在整个生命周期中都是活动的.在程序运行结束时,必须提交和关闭连接.到目前为止,我已经使用了一个显式close方法,但这有点麻烦,特别是当调用代码中发生异常时.

我正在考虑使用这种__del__方法来关闭,但经过一些在线阅读后我有所顾虑.这是一种有效的使用模式吗?我可以确定内部资源是否可以__del__正确释放?

这次讨论提出了类似的问题但没有找到令人满意的答案 我不想有一个显式的close方法,并且使用with不是一个选项,因为我的对象不像开放式播放关闭那样简单,而是作为另一个更大的对象的成员保存,使用它在GUI中运行时.

C++有完美的工作析构函数,可以安全地释放资源,所以我认为Python也有同意的东西.由于某种原因,似乎并非如此,社区中的许多人发誓反对__del__.那么替代方案是什么?

python destructor pysqlite

7
推荐指数
2
解决办法
3345
查看次数

Fannkuch如何运作?

我无法理解实施Fannkuch的指示.说明:http://www.haskell.org/haskellwiki/Shootout/Fannkuch

在"计算翻转次数,这里5"之后,我迷路了.

algorithm

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

在C和C++中实现字符串文字串联

AFAIK,这个问题同样适用于C和C++

C标准中规定的"翻译阶段"的第6步(C99标准草案中的5.1.1.2)规定,必须将相邻的字符串文字连接成单个文字.

printf("helloworld.c" ": %d: Hello "
       "world\n", 10);
Run Code Online (Sandbox Code Playgroud)

等同于(语法上):

printf("helloworld.c: %d: Hello world\n", 10);
Run Code Online (Sandbox Code Playgroud)

但是,标准似乎没有指定编译器的哪个部分必须处理它 - 它应该是预处理器(cpp)还是编译器本身.一些在线研究告诉我,这个函数通常应该由预处理器(源#1,源#2,还有更多)执行,这是有道理的.

但是,cpp在Linux中运行显示cpp不执行此操作:

eliben@eliben-desktop:~/test$ cat cpptest.c 
int a = 5;

"string 1" "string 2"
"string 3"

eliben@eliben-desktop:~/test$ cpp cpptest.c 
# 1 "cpptest.c"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "cpptest.c"
int a = 5;

"string 1" "string 2"
"string 3"
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是:在预处理器或编译器本身中,应该在何处处理该语言的这一特性?

也许没有一个好的答案.基于经验,已知编译器和一般良好工程实践的启发式答案将不胜感激.


PS如果你想知道为什么我关心这个......我正在试图弄清楚我的基于Python的C语法分析器是否应该处理字符串文字连接(目前它没有这样做),或者将它留给cpp哪个它假设在它之前运行.

c c++ string-literals c-preprocessor

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

在函数中使用@lazy属性会导致生成错误

我试图将类范围限制在函数内.这似乎有效:

func foo() {
    class MyClass {
        var s = ""
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以在foo()函数中创建MyClass的实例.

但是,当我尝试将@lazy说明符添加到属性时......

func foo() {
    class MyClass {
        @lazy var s = ""
    }
}
Run Code Online (Sandbox Code Playgroud)

...我收到以下构建错误:

  • 全球是外部的,但没有外部或弱的联系!
  • 函数声明的链接类型无效
  • LLVM错误:找到损坏的模块,编译中止!

注意:如果我将类移出函数的作用域,代码将编译:

class MyClass {
    @lazy var s = ""
}
Run Code Online (Sandbox Code Playgroud)

为什么会失败,这个错误应该如何解决?如果无法解决,是否有另一种方法在函数内部使用@lazy属性?

swift

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

TypeScript 相当于 Go 的 Defer 语句

TypeScript 有类似 Go 的Defer语句吗?

我厌倦了在整个函数的多个位置编写清理代码。寻找更简单的解决方案。

我快速谷歌了一下,但没有找到任何东西。

typescript

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

用于Javascript编写的游戏的服务器端高分

我正在用Javascript实现一个简单的游戏,并且我有兴趣拥有一个在线高分榜,因此玩家可以互相竞争.我对此有两个担忧:

  1. 为此目的,我需要的最简单的服务器端程序是什么?我不需要一个成熟的"Web应用程序",只需要一些简单的东西就可以获得高分数的POST请求,更新数据库并发回分数列表.我熟悉Django.你有什么建议?
  2. 如何使highscores表合理安全?我知道让它对抗有能力和专注的黑客很难,但我不希望任何能够访问Javascript源代码的人能够过于简单地提交虚构的分数.为此目的的任何工具?

javascript django

6
推荐指数
2
解决办法
3157
查看次数

python sax错误"文件元素之后的垃圾"

我使用python sax来解析xml文件.xml文件实际上是多个xml文件的组合.它看起来如下:

<row name="abc" age="40" body="blalalala..." creationdate="03/10/10" />
<row name="bcd" age="50" body="blalalala..." creationdate="03/10/09" />
Run Code Online (Sandbox Code Playgroud)

我的python代码如下.它显示"文件元素之后的垃圾"错误.有任何好主意来解决这个问题.谢谢.

from xml.sax.handler import ContentHandler
from xml.sax import make_parser,SAXException
import sys

class PostHandler (ContentHandler):
    def __init__(self):
        self.find = 0
        self.buffer = ''
        self.mapping={}
    def startElement(self,name,attrs):
        if name == 'row':
             self.find = 1
             self.body = attrs["body"]
             print attrs["body"]
    def character(self,data):
        if self.find==1:
             self.buffer+=data
    def endElement(self,name):
        if self.find == 1:
             self.mapping[self.body] = self.buffer
             print self.mapping
parser = make_parser()
handler = PostHandler()
parser.setContentHandler(handler)
try:
    parser.parse(open("2.xml"))
except SAXException:
Run Code Online (Sandbox Code Playgroud)

python sax

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