Questions tagged «python»

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


5
用其他类型和消息重新引发异常,保留现有信息
我正在编写一个模块,并希望它可以引发的异常具有统一的异常层次结构(例如,从FooError抽象类继承所有foo模块的特定异常)。这使模块的用户可以捕获那些特定的异常,并在需要时进行区别处理。但是从模块引发的许多异常是由于其他一些异常而引发的;例如,由于文件上的OSError而导致某些任务失败。 我需要的是“包装”捕获到的异常,使其具有不同的类型和消息,以便通过捕获异常的方式在传播层次结构中进一步获取信息。但是我不想丢失现有的类型,消息和堆栈跟踪;这对于尝试调试问题的人来说都是有用的信息。顶级异常处理程序是不好的,因为我正在尝试在异常传播到传播堆栈之前对其进行装饰,并且顶级处理程序为时已晚。 这可以通过foo从现有类型(例如class FooPermissionError(OSError, FooError))中派生模块的特定异常类型来部分解决,但这并没有使将现有异常实例包装为新类型或修改消息变得更加容易。 Python的PEP 3134 “异常链接和嵌入式回溯”讨论了Python 3.0中接受的“链接”异常对象更改,以指示在处理现有异常期间引发了新异常。 我想做的是相关的:我需要它在早期的Python版本中也能工作,我不需要链,而只需要多态。什么是正确的方法?

9
Shell脚本:从Shell脚本中执行python程序
我尝试谷歌搜索答案,但没有运气。 我需要使用我的超级计算机服务器,但是要运行我的python脚本,必须通过shell脚本执行。 例如我要job.sh执行python_script.py 如何做到这一点?
139 python  shell 

6
检查pandas数据框索引中是否存在值
我敢肯定有一个明显的方法可以做到这一点,但是现在还不能想到任何光滑的东西。 基本上不是引发异常,而是要获取True或False查看pandas df索引中是否存在值。 import pandas as pd df = pd.DataFrame({'test':[1,2,3,4]}, index=['a','b','c','d']) df.loc['g'] # (should give False) 我现在工作的是以下内容 sum(df.index == 'g')
139 python  pandas  ipython 

11
找不到满足<package>要求的版本
我正在使用以下requirements.txt文件在Ubuntu 12.04中安装几个Python软件包: numpy&gt;=1.8.2,&lt;2.0.0 matplotlib&gt;=1.3.1,&lt;2.0.0 scipy&gt;=0.14.0,&lt;1.0.0 astroML&gt;=0.2,&lt;1.0 scikit-learn&gt;=0.14.1,&lt;1.0.0 rpy2&gt;=2.4.3,&lt;3.0.0 和这两个命令: $ pip install --download=/tmp -r requirements.txt $ pip install --user --no-index --find-links=/tmp -r requirements.txt (第一个下载软件包,第二个安装软件包)。 该过程经常因错误而停止: Could not find a version that satisfies the requirement &lt;package&gt; (from matplotlib&lt;2.0.0,&gt;=1.3.1-&gt;-r requirements.txt (line 2)) (from versions: ) No matching distribution found for &lt;package&gt; (from …

8
使用Scipy(Python)使经验分布适合理论分布吗?
简介:我列出了30,000多个整数值,范围从0到47(含0和47),例如[0,0,0,0,..,1,1,1,1,...,2,2,2,2,...,47,47,47,...]从某个连续分布中采样。列表中的值不一定按顺序排列,但顺序对于此问题并不重要。 问题:根据我的分布,我想为任何给定值计算p值(看到更大值的概率)。例如,您可以看到0的p值将接近1,数字较大的p值将趋于0。 我不知道我是否正确,但是为了确定概率,我认为我需要使我的数据适合最适合描述我的数据的理论分布。我认为需要某种拟合优度检验来确定最佳模型。 有没有办法在Python(Scipy或Numpy)中实现这种分析?你能举个例子吗? 谢谢!

10
为什么python dict.update()不返回对象?
我正在尝试: award_dict = { "url" : "http://facebook.com", "imageurl" : "http://farm4.static.flickr.com/3431/3939267074_feb9eb19b1_o.png", "count" : 1, } def award(name, count, points, desc_string, my_size, parent) : if my_size &gt; count : a = { "name" : name, "description" : desc_string % count, "points" : points, "parent_award" : parent, } a.update(award_dict) return self.add_award(a, siteAlias, alias).award …

8
如何用参数记录方法?
如何使用Python的文档字符串来记录带有参数的方法? 编辑: PEP 257给出了这个例子: def complex(real=0.0, imag=0.0): """Form a complex number. Keyword arguments: real -- the real part (default 0.0) imag -- the imaginary part (default 0.0) """ if imag == 0.0 and real == 0.0: return complex_zero ... 这是大多数Python开发人员使用的约定吗? Keyword arguments: &lt;parameter name&gt; -- Definition (default value if any) …


6
rreplace-如何替换字符串中表达式的最后一次出现?
Python中是否有一种快速的方法来替换字符串,而不是像从头开始那样replace从头开始呢?例如: &gt;&gt;&gt; def rreplace(old, new, occurrence) &gt;&gt;&gt; ... # Code to replace the last occurrences of old by new &gt;&gt;&gt; '&lt;div&gt;&lt;div&gt;Hello&lt;/div&gt;&lt;/div&gt;'.rreplace('&lt;/div&gt;','&lt;/bad&gt;',1) &gt;&gt;&gt; '&lt;div&gt;&lt;div&gt;Hello&lt;/div&gt;&lt;/bad&gt;'
139 python  string 

8
更好地“尝试”某些东西并捕获异常或测试是否有可能首先避免异常?
我应该测试if某种东西是有效的还是只是try为了做它并捕获异常? 有没有可靠的文档说首选方法? 还有一种方法更pythonic吗? 例如,我应该: if len(my_list) &gt;= 4: x = my_list[3] else: x = 'NO_ABC' 要么: try: x = my_list[3] except IndexError: x = 'NO_ABC' 一些想法... PEP 20说: 错误绝不能默默传递。 除非明确地保持沉默。 应该使用a try而不是an if解释为无声传递的错误吗?如果是这样,您是否通过以这种方式使用它来明确使其静音,从而使其正常运行? 我不是指只能以一种方式做事的情况;例如: try: import foo except ImportError: import baz

11
Python 3中是否有一个“ foreach”功能?
当我遇到这种情况时,我可以使用javascript做到这一点,我一直认为如果有一个foreach功能会很方便。通过foreach,我的意思是下面描述的功能: def foreach(fn,iterable): for x in iterable: fn(x) 他们只是在每个元素上执行它,而不产生或返回任何东西,我认为它应该是一个内置函数,并且应该比使用纯Python编写它要快,但我没有在列表中找到它,或者它只是叫另一个名字?还是我在这里想念一些要点? 也许我弄错了,导致在Python中调用函数的成本很高,绝对不是该示例的好习惯。该函数应该在其主体看起来像下面这样的循环中进行循环,而不是在out循环中进行下面的循环,这在许多python的代码建议中已经提到: def fn(*args): for x in args: dosomething 但基于以下两个事实,我认为foreach仍然受欢迎: 通常情况下,人们只是不在乎性能 有时,API不接受可迭代对象,因此您无法重写其源代码。

13
如何以完全相同的方式对两个列表(相互引用)进行排序
说我有两个清单: list1 = [3, 2, 4, 1, 1] list2 = ['three', 'two', 'four', 'one', 'one2'] 如果我运行list1.sort(),它将进行排序,[1,1,2,3,4]但是还有没有一种list2同步的方法(因此我可以说item 4属于'three')?因此,预期输出为: list1 = [1, 1, 2, 3, 4] list2 = ['one', 'one2', 'two', 'three', 'four'] 我的问题是我有一个非常复杂的程序,可以很好地处理列表,但是我有点需要开始引用一些数据。我知道这对字典来说是一个完美的情况,但是我在处理过程中尽量避免使用字典,因为我确实需要对键值进行排序(如果必须使用字典,我知道如何使用它们)。 基本上,该程序的性质是,数据按随机顺序排列(如上),我需要对其进行排序,处理然后发送结果(顺序无关紧要,但是用户需要知道哪个结果属于哪个结果)键)。我考虑过先将其放入字典中,然后再对列表进行排序,但是如果不保持顺序(如果将结果传达给用户,可能会产生影响),我将无法区分具有相同值的项。因此,理想情况下,一旦获得列表,我就想出一种将两个列表排序在一起的方法。这可能吗?
139 python  list  sorting 

4
如何在IPython Notebook Server 3中看到函数参数?
我最近切换到了Anaconda版本的IPython Notebook 3(确切地说是3.1.0-cbccb68)。以前,当我键入一个函数并打开一个这样的括号时: time.sleep() 如果光标在括号之间,那么我将获得一个显示功能参数的上下文覆盖菜单。现在,我没有看到它,尽管已经搜索了,但仍然找不到如何打开此功能的方法。

7
Python __repr__的目的
def __repr__(self): return '&lt;%s %s (%s:%s) %s&gt;' % ( self.__class__.__name__, self.urlconf_name, self.app_name, self.namespace, self.regex.pattern) 此方法的意义/目的是什么?
139 python 

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.