Questions tagged «python»

Python是一种多范式,动态类型的多用途编程语言。它旨在快速学习,理解和使用并强制使用干净统一的语法。请注意,Python 2自2020年1月1日起已不再受支持。不过,对于特定于版本的Python问题,请添加[python-2.7]或[python-3.x]标签。使用Python变体或库(例如Jython,PyPy,Pandas,Numpy)时,请将其包含在标签中。

6
如何处理列表推导中的异常?
我在Python中有一些列表理解,其中每次迭代都可能引发异常。 例如,如果我有: eggs = (1,3,0,3,2) [1/egg for egg in eggs] 我将ZeroDivisionError在第3个元素中得到一个例外。 如何处理此异常并继续执行列表理解? 我能想到的唯一方法是使用辅助函数: def spam(egg): try: return 1/egg except ZeroDivisionError: # handle division by zero error # leave empty for now pass 但这对我来说有点麻烦。 有没有更好的方法在Python中执行此操作? 注意: 这是我做的一个简单示例(请参阅上面的“ 例如 ”),因为我的实际示例需要一些上下文。我对避免除以零错误不感兴趣,但对处理列表理解中的异常不感兴趣。

4
异步实际上是如何工作的?
这个问题是由我的另一个问题引起的:如何在cdef中等待? 网路上有关于的大量文章和网志文章asyncio,但它们都是非常肤浅的。我找不到任何有关如何asyncio实际实现以及使I / O异步的信息。我正在尝试阅读源代码,但是它是数千行,不是最高等级的C代码,其中很多处理辅助对象,但是最关键的是,很难在Python语法和它将翻译的C代码之间进行连接入。 Asycnio自己的文档甚至没有帮助。那里没有关于它如何工作的信息,只有一些有关如何使用它的指南,有时也会引起误解/写得很差。 我熟悉Go的协程实现,并希望Python做同样的事情。如果是这样的话,我在上面链接的帖子中出现的代码将奏效。既然没有,我现在想找出原因。到目前为止,我最好的猜测如下,请纠正我错的地方: 形式的过程定义async def foo(): ...实际上被解释为类继承的方法coroutine。 也许async def实际上是通过await语句分为多个方法,在这些方法上被调用的对象能够跟踪到目前为止执行所取得的进展。 如果上述条件成立,那么从本质上讲,协程的执行归结为某个全局管理器调用循环对象的方法(循环?)。 全局管理器以某种方式(如何?)知道何时由Python代码执行I / O操作(仅?),并且能够选择当前执行方法放弃控制后执行的待处理协程方法之一(命中该await语句) )。 换句话说,这是我尝试将某些asyncio语法“简化”为更易于理解的内容: async def coro(name): print('before', name) await asyncio.sleep() print('after', name) asyncio.gather(coro('first'), coro('second')) # translated from async def coro(name) class Coro(coroutine): def before(self, name): print('before', name) def after(self, name): print('after', name) def __init__(self, name): …

20
确保只运行一个程序实例
有没有一种Python方式可以只运行一个程序实例? 我想出的唯一合理的解决方案是尝试将其作为服务器在某个端口上运行,然后试图绑定到同一端口的第二个程序失败。但这不是一个好主意,也许有比这更轻巧的东西了吗? (考虑到程序有时可能会失败,例如segfault-因此“锁定文件”之类的东西将无法工作)

6
Google App Engine的项目结构
我刚问世时就在Google App Engine中启动了一个应用程序,以使用该技术并从事一个我一直想了很久但从未尝试过的宠物项目。结果是BowlSK。但是,随着它的增长和功能的添加,使其变得井井有条变得非常困难-主要是因为这是我的第一个python项目,在开始工作之前我对此一无所知。 我有的: 主级别包含: 所有.py文件(不知道如何使程序包正常工作) 主页面的所有.html模板 子目录: 用于CSS,图片,JS等的单独文件夹。 包含用于子目录类型网址的.html模板的文件夹 示例: http : //www.bowlsk.com/映射到HomePage(默认包),模板位于“ index.html” http://www.bowlsk.com/games/view-series.html?series=7130映射到ViewSeriesPage(同样是默认程序包),位于“ games / view-series.html”的模板 真讨厌 我如何重组?我有两个想法: 主文件夹包含:appdef,索引,main.py? 代码的子文件夹。这一定是我的第一个包裹吗? 模板的子文件夹。文件夹层次结构将与包层次结构匹配 CSS,图像,JS等的单个子文件夹。 主文件夹包含appdef,索引,main.py? 代码+模板的子文件夹。这样,我就在模板旁边设置了处理程序类,因为在此阶段,我要添加许多功能,因此对一个进行修改意味着对另一个进行了修改。同样,我必须将此文件夹名称作为班级的第一个软件包名称吗?我希望文件夹为“ src”,但我不希望我的班级为“ src.WhateverPage” 有最佳做法吗?随着Django 1.0的出现,当它成为正式的GAE模板引擎时,我现在可以做些什么来提高与它的集成能力?我将简单地开始尝试这些事情,然后看一看似乎更好,但是pyDev的重构支持似乎不能很好地处理程序包的移动,因此使所有这些再次工作可能不是一件容易的事。

21
无法通过pip安装Scipy
当通过pip安装scipy时: pip install scipy Pip无法构建scipy,并引发以下错误: Cleaning up... Command /Users/administrator/dev/KaggleAux/env/bin/python2.7 -c "import setuptools, tokenize;__file__='/Users/administrator/dev/KaggleAux/env/build/scipy/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/zl/7698ng4d4nxd49q1845jd9340000gn/T/pip-eO8gua-record/install-record.txt --single-version-externally-managed --compile --install-headers /Users/administrator/dev/KaggleAux/env/bin/../include/site/python2.7 failed with error code 1 in /Users/administrator/dev/KaggleAux/env/build/scipy Storing debug log for failure in /Users/administrator/.pip/pip.log 如何获得成功构建的秘诀?这可能是OSX Yosemite的一个新问题,因为我刚刚升级并且之前没有安装scipy的问题。 调试日志: Cleaning up... Removing temporary dir /Users/administrator/dev/KaggleAux/env/build... Command /Users/administrator/dev/KaggleAux/env/bin/python2.7 …
119 python  scipy 

3
Python中“(1,)== 1”是什么意思?
我正在测试元组结构,当我==像这样使用运算符时发现它很奇怪: >>> (1,) == 1, Out: (False,) 当我将这两个表达式分配给变量时,结果为true: >>> a = (1,) >>> b = 1, >>> a==b Out: True 在我看来,这个问题与Python元组尾随逗号语法规则不同。请问==运算符之间的表达式组。

6
遍历字符串
我有这样定义的多行字符串: foo = """ this is a multi-line string. """ 我们用作我正在编写的解析器的测试输入的字符串。解析器功能接收file-object作为输入并对其进行迭代。它还确实next()直接调用该方法以跳过行,因此我确实需要一个迭代器作为输入,而不是可迭代的。我需要一个迭代器,它可以在字符串的各个行之间进行迭代,就像file-object可以在文本文件的行之间进行迭代一样。我当然可以这样: lineiterator = iter(foo.splitlines()) 是否有更直接的方法?在这种情况下,字符串必须遍历一次才能进行拆分,然后再由解析器再次遍历。在我的测试用例中,这无关紧要,因为那里的字符串很短,我只是出于好奇而问。Python有很多有用且高效的内置程序,但是我找不到适合此需求的东西。
119 python  string  iterator 

5
使用python list comprehension根据条件查找元素的索引
当来自Matlab背景时,以下Python代码似乎很冗长 >>> a = [1, 2, 3, 1, 2, 3] >>> [index for index,value in enumerate(a) if value > 2] [2, 5] 在Matlab中,我可以写: >> a = [1, 2, 3, 1, 2, 3]; >> find(a>2) ans = 3 6 是否有使用Python编写此代码的简便方法,还是只保留长版本? 感谢您对Python语法原理的所有建议和解释。 在numpy网站上找到以下内容后,我想我已经找到了喜欢的解决方案: http://docs.scipy.org/doc/numpy/user/basics.indexing.html#boolean-or-mask-index-arrays 将来自该网站的信息应用于上述我的问题,将得到以下结果: >>> from numpy import array >>> a …
119 python 

6
保存交互式Matplotlib图形
有没有一种方法可以保存Matplotlib图形,以便可以重新打开它并恢复典型的交互作用?(就像MATLAB中的.fig格式一样?) 我发现自己多次运行相同的脚本来生成这些交互式图形。或者我要向同事发送多个静态PNG文件,以显示绘图的不同方面。我宁愿发送图形对象,并让它们自己与之交互。
119 python  matplotlib 

9
virtualenvwrapper和Python 3
我在ubuntu lucid上安装了python 3.3.1并成功创建了virtualenv,如下所示 virtualenv envpy331 --python=/usr/local/bin/python3.3 这envpy331在我的主目录上创建了一个文件夹。 我也已经virtualenvwrapper安装了。但是在文档中仅支持的2.4-2.7版本。python是否有人试图组织python3virtualenv?如果是这样,您能告诉我如何吗?

3
如何在Python中获得对当前模块属性的引用
我想做的事情在命令行中看起来像这样: >>> import mymodule >>> names = dir(mymodule) 我如何mymodule从mymodule自身内部引用所有定义的名称? 像这样: # mymodule.py names = dir(__thismodule__)
119 python 


7
Python-'ASCII'编解码器无法解码字节
我真的很困惑 我尝试编码,但错误提示can't decode...。 >>> "你好".encode("utf8") Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128) 我知道如何避免在字符串上加上“ u”前缀的错误。我只是想知道为什么在调用编码时错误是“无法解码”的。Python到底是做什么的?

5
您如何在Tkinter的事件循环中运行自己的代码?
我的弟弟刚刚开始​​编程,对于他的Science Fair项目,他正在模拟天空中一群鸟。他得到了大部分他写的代码,它工作得很好,但鸟儿需要移动的每一刻。 但是,Tkinter浪费了自己的事件循环的时间,因此他的代码无法运行。这样root.mainloop()运行,运行,并保持运行,并且它运行的唯一事情是事件处理程序。 有没有一种方法可以让他的代码与mainloop一起运行(没有多线程,这很令人困惑,应该保持简单),如果这样,那是什么? 现在,他想出了一个丑陋的方法,将其move()功能绑定到<b1-motion>,这样,只要按住按钮并摇动鼠标,它就可以工作。但是必须有一个更好的方法。
119 python  events  tkinter 

7
无限生成器有表达式吗?
是否有一个可以生成无限元素的简单生成器表达式? 这是一个纯粹的理论问题。此处无需“实用”答案:) 例如,很容易制作一个有限生成器: my_gen = (0 for i in xrange(42)) 但是,要制作一个无限个,我需要用虚假函数“污染”我的名称空间: def _my_gen(): while True: yield 0 my_gen = _my_gen() 在单独的文件中处理,import以后-ing不计算在内。 我也知道这itertools.repeat完全可以做到。我很好奇是否有没有这种情况的一线解决方案。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.