我试图检查一个string是否是一个数字,所以正则expression式“\ d +”看起来不错。 然而,这个正则expression式也适合“78.46.92.168:8000”由于某种原因,我不想要一点代码: class Foo(): _rex = re.compile("\d+") def bar(self, string): m = _rex.match(string) if m != None: doStuff() 而当inputIP地址时,doStuff()会被调用。 我有点困惑,“怎么样”。 或“:”匹配“\ d”?
当匹配一个电子邮件地址,当我匹配像yasar@webmail类的东西之后,我想要捕获一个或多个(\.\w+) (我正在做的更复杂一点,这只是一个例子)添加(。\ w +)+,但它只捕获最后一场比赛。 例如, yasar@webmail.something.edu.tr yasar@webmail yasar@webmail.something.edu.tr匹配yasar@webmail部分后只包含.tr ,所以我丢失了.something和.edu组。 我可以在Python的正则expression式中做到这一点,或者你会build议首先匹配所有东西,然后再拆分子模式吗?
我有一个简单的节拍器运行,由于某种原因,当它在一个较低的Bpm是好的,但在更高的BPM它是不一致的,并不稳定。 我不知道发生了什么事。 我想尝试使用某些东西来定期运行它。 有没有办法做到这一点? 这是我的代码: class thalam(): def __init__(self,root,e): self.lag=0.2 self.root=root self.count=0 self.thread=threading.Thread(target=self.play) self.thread.daemon=True self.tempo=60.0/120 self.e=e self.pause=False self.tick=open("tick.wav","rb").read() self.count=0 self.next_call = time.time() def play(self): if self.pause: return winsound.PlaySound(self.tick,winsound.SND_MEMORY) self.count+=1 if self.count==990: self.thread=threading.Thread(target=self.play) self.thread.daemon=True self.thread.start() return self.next_call+=self.tempo new=threading.Timer(self.next_call-time.time(),self.play) new.daemon=True new.start() def stop(self): self.pause=True winsound.PlaySound(None,winsound.SND_ASYNC) def start(self): self.pause=False def settempo(self,a): self.tempo=a class Metronome(Frame): def __init__(self,root): Frame.__init__(self,root) self.first=True […]
我一直在学习,工作和使用Python一年半。 作为一个慢慢转向生物信息学的生物学家,这个语言一直是我在实验室做出的所有主要贡献的核心。 我或多或less地爱上了Python允许我expression美丽的解决scheme的方式,以及语言的语义,从思想到可行代码的自然stream动。 我想知道的是你对这个或其他论坛中很less见到的问题的回答。 这个问题对于我来说对于Python改进之路上的任何人来说似乎都是重中之重,但是谁也不知道他的下一步应该是什么。 让我总结一下我不想先问的问题;) 我不想知道如何快速学习Python 我也不想找出熟悉这门语言的最好方法 最后,我不想知道“一举两得”的方法。 我想知道你的意见是: 你会推荐给一个Python熟练人员的步骤,从学徒到专家身份(随时停止,无论你的专业知识是什么),以便持续改进,成为更好,更好的Python编码器,一步一个脚印。 在SO上的一些人几乎似乎值得崇拜他们的Python的威力,请赐教:) 我会喜欢的那种答案(但是可以让读者感到惊讶:P)的格式或多或less是这样的: 阅读这个(例如:python教程),注意那种细节 代码如此多的时间/问题/代码行 然后,阅读这个(例如:这本或那本书),但是这一次,注意这一点 解决一些真实的问题 然后,继续阅读Y. 一定要把握这些概念 代码为X时间 回到这样或那样的基础,或进一步移动到… (你明白了:) 我真的很在意在不同的阶段知道你应该注意什么,以便不断地进步(当然还有适当的努力)。 如果您来自特定的专业领域,请在此领域讨论适当的path。 编辑:感谢您的伟大的投入,我回到了Python的改进轨道上! 我真的很感激!
我刚刚才知道python中有Truthy和Falsy的值,与正常的True和False 。 有人可以请深入解释真相和谬误的价值是什么? 我应该在哪里使用它们? 真理与True值, False 谬和False值有什么区别 ?
在运行这个脚本时: #! /usr/bin/env python import MySQLdb as mdb import sys class Test: def check(self, search): try: con = mdb.connect('localhost', 'root', 'password', 'recordsdb'); cur = con.cursor() cur.execute( "SELECT * FROM records WHERE email LIKE '%s'", search ) ver = cur.fetchone() print "Output : %s " % ver except mdb.Error, e: print "Error %d: %s" % (e.args[0],e.args[1]) […]
这当然有可能吗? 我一直在通过PyQt教程和文档寻找,但找不到答案。 可能我只需要用不同的方式来描述我的search查询。 [编辑] 感谢PEZ的答案 – 更多详细信息,包括在Win32第20章Python编程中使用.pyw扩展名
当我尝试获取一个整数并将“b”前置到它时,我得到这个错误,将它转换成一个string: File "program.py", line 19, in getname name = "b" + num TypeError: Can't convert 'int' object to str implicitly 这与这个function有关: num = random.randint(1,25) name = "b" + num
我amm写一个小的python脚本,将从我正在运行的Windows虚拟机中获取信息。 目前我可以使用以下方法在32位XP机器上列出进程: http://code.activestate.com/recipes/305279/ 是否有可能以某种方式检测正在运行的Windows版本,并执行一个不同的方法来获取64位机器上的进程,我试图从64位Vista和64位Windows 7获得进程。 有任何想法吗?
我有以下function,它将XML文件parsing为字典粗略的工作。 不幸的是,由于Python字典没有sorting,所以我无法按照我的意愿循环访问节点。 我该如何改变它,所以它输出一个有序的字典,它反映了当用'for'循环时节点的原始顺序。 def simplexml_load_file(file): import collections from lxml import etree tree = etree.parse(file) root = tree.getroot() def xml_to_item(el): item = None if el.text: item = el.text child_dicts = collections.defaultdict(list) for child in el.getchildren(): child_dicts[child.tag].append(xml_to_item(child)) return dict(child_dicts) or item def xml_to_dict(el): return {el.tag: xml_to_item(el)} return xml_to_dict(root) x = simplexml_load_file('routines/test.xml') print x for y in x['root']: […]