Questions tagged «python»

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

6
Python“ for”循环的作用域
我不是在问Python的作用域规则。我大致了解作用域在Python中用于循环的原理。我的问题是为什么设计决策是以这种方式做出的。例如(无双关语): for foo in xrange(10): bar = 2 print(foo, bar) 上面将打印(9,2)。 这让我感到很奇怪:“ foo”实际上只是在控制循环,而“ bar”是在循环内部定义的。我可以理解为什么可能需要在循环外部访问“ bar”(否则,for循环的功能将非常有限)。我不明白的是为什么循环退出后,控制变量必须保留在范围内。以我的经验,它只会使全局名称空间混乱,并且使查找其他语言的解释器捕获的错误变得更加困难。
177 python  scope 

4
导入语句python3中的更改
我不了解pep-0404的以下内容 在Python 3中,包内的隐式相对导入不再可用-仅支持绝对导入和显式相对导入。此外,仅在模块级别代码中允许星号导入(例如,从x import *导入)。 什么是相对进口?在python2中还允许在其他什么地方导入星号?请举例说明。
177 python  python-3.x 

4
在Python中循环遍历列表
我有一个带有子列表的列表。我想打印长度等于3的所有子列表。 我在python中执行以下操作: for x in values[:]: if len(x) == 3: print(x) values是原始列表。上面的代码是否打印每个值等于3的子列表x?我只想显示length == 3一次子列表。 问题已经解决了。问题出在Eclipse编辑器上。我不明白原因,但是在运行循环时,它仅显示列表的一半。 我必须在Eclipse中更改任何设置吗?
177 python  list 

9
在for循环中如何修改列表项?
现在,我知道在迭代循环中修改列表是不安全的。但是,假设我有一个字符串列表,并且我想剥离字符串本身。替换可变值是否算作修改?
177 python 

2
子流程Popen和call有什么区别(我该如何使用它们)?
我想从Python调用一个外部程序。我已经使用过Popen()并且call()做到了。 两者有什么区别? 我的特定目标是从Python运行以下命令。我不确定重定向如何工作。 ./my_script.sh > output 我阅读了文档,并说它call()是便利功能或快捷功能。我们使用call()代替会失去任何功能Popen()吗?
177 python  subprocess  popen 

5
如何在Python中删除前导空格?
我有一个以多个空格开头的文本字符串,介于2和4之间。 删除前导空格的最简单方法是什么?(即删除某个字符之前的所有内容?) " Example" -> "Example" " Example " -> "Example " " Example" -> "Example"

5
单行列表理解:if-else变体
更多有关python列表理解语法的信息。我有一个列表推导,它产生给定范围的奇数列表: [x for x in range(1, 10) if x % 2] 这将构成一个过滤器-我有一个源列表,其中删除了偶数(if x % 2)。我想在这里使用if-then-else之类的东西。以下代码失败: >>> [x for x in range(1, 10) if x % 2 else x * 100] File "<stdin>", line 1 [x for x in range(1, 10) if x % 2 else x * 100] ^ SyntaxError: …



9
pandas DataFrame:用列的平均值替换nan值
我有一个熊猫DataFrame,其中大多数都是实数,但其中也有一些nan值。 如何nan用列的平均值替换s? 这个问题与这个问题非常相似:numpy array:用列的平均值替换nan值, 但是不幸的是,给出的解决方案不适用于pandas DataFrame。
177 python  pandas  nan 

4
__file__变量的含义/作用是什么?
A = os.path.join(os.path.dirname(__file__), '..') B = os.path.dirname(os.path.realpath(__file__)) C = os.path.abspath(os.path.dirname(__file__)) 我通常只是将这些与实际路径固定在一起。但是这些语句在运行时确定路径是有原因的,我真的很想了解os.path模块,以便可以开始使用它。
177 python 

13
在Python 3中将int转换为字节
我试图在Python 3中构建此byte对象: b'3\r\n' 所以我尝试了显而易见的(对我来说),发现了一个奇怪的行为: >>> bytes(3) + b'\r\n' b'\x00\x00\x00\r\n' 显然: >>> bytes(10) b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 我无法看到有关为什么字节转换以这种方式阅读文档的任何指示。但是,在此Python问题中,我确实发现了一些有关添加format到字节的惊奇消息(另请参见Python 3字节格式): http://bugs.python.org/issue3982 现在与byte(int)之类的奇数的相互作用更差,现在返回零 和: 如果bytes(int)返回该int的ASCIIfication,对我来说将更加方便;但老实说,即使是错误也比这种行为要好。(如果我想要这种行为-我从未有过-我宁愿它是一种类方法,就像“ bytes.zeroes(n)”一样被调用。) 有人可以向我解释这种行为的来源吗?
177 python  python-3.x 


14
使用Pip将软件包安装到Anaconda Environment
康达4.2.13 MacOSX 10.12.1 我正在尝试将软件包安装pip到使用anaconda创建的新环境(虚拟)中。 在Anaconda文档中,这说得很好。它的完成方式与virtualenv相同。 激活要放置程序的环境,然后pip安装程序... 我在Ananconda中创建了一个空环境,如下所示: conda create -n shrink_venv 激活它: source activate shrink_venv 然后,我可以在终端中看到我正在环境中工作(shrink_venv)。当我尝试使用来安装软件包时,问题来了pip: (shrink_venv): pip install Pillow Requirement already satisfied (use --upgrade to upgrade): Pillow in /Library/Python/2.7/site-packages 因此,我可以看到它认为从系统范围的软件包中可以满足要求。因此,似乎环境无法正常运行,绝对不像文档中所说的那样。我在这里做错什么了吗? 请注意,我知道您可以使用conda install这些软件包,但是anaconda的Pillow遇到了问题,因此我想从中获取它pip,并且由于文档说还可以。 输出which -a pip: /usr/local/bin/pip /Users/my_user/anaconda/bin/pip **更新**我看到这是很常见的问题。我发现,conda env在PYTHONPATH中的表现不佳。即使您使用的是conda环境,系统似乎也总是在PYTHONPATH位置中查找。现在,我总是unset PYTHONPATH在使用conda环境时运行,并且效果更好。我在Mac上。

8
Python 2.6中不推荐使用BaseException.message
当我使用以下用户定义的异常时,我收到一条警告:Python 2.6中不推荐使用BaseException.message: class MyException(Exception): def __init__(self, message): self.message = message def __str__(self): return repr(self.message) 这是警告: DeprecationWarning: BaseException.message has been deprecated as of Python 2.6 self.message = message 这怎么了 我要更改什么以摆脱过时警告?

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.