如果a = 15和152表示为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程序打开文件.例如,我希望用户能够右键单击文本文件并选择我的程序,以便我的程序可以处理文本文件.是否将文本文件的名称传递到我的程序中?谢谢.
我有一个内部数据库连接的对象,它在整个生命周期中都是活动的.在程序运行结束时,必须提交和关闭连接.到目前为止,我已经使用了一个显式close方法,但这有点麻烦,特别是当调用代码中发生异常时.
我正在考虑使用这种__del__方法来关闭,但经过一些在线阅读后我有所顾虑.这是一种有效的使用模式吗?我可以确定内部资源是否可以__del__正确释放?
这次讨论提出了类似的问题但没有找到令人满意的答案 我不想有一个显式的close方法,并且使用with不是一个选项,因为我的对象不像开放式播放关闭那样简单,而是作为另一个更大的对象的成员保存,使用它在GUI中运行时.
C++有完美的工作析构函数,可以安全地释放资源,所以我认为Python也有同意的东西.由于某种原因,似乎并非如此,社区中的许多人发誓反对__del__.那么替代方案是什么?
我无法理解实施Fannkuch的指示.说明:http://www.haskell.org/haskellwiki/Shootout/Fannkuch
在"计算翻转次数,这里5"之后,我迷路了.
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哪个它假设在它之前运行.
我试图将类范围限制在函数内.这似乎有效:
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属性?
我正在用Javascript实现一个简单的游戏,并且我有兴趣拥有一个在线高分榜,因此玩家可以互相竞争.我对此有两个担忧:
我使用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 ×4
c ×2
algorithm ×1
c++ ×1
destructor ×1
django ×1
javascript ×1
math ×1
posix ×1
pysqlite ×1
regex ×1
sax ×1
swift ×1
typescript ×1
windows ×1