javascript

java

python

c#

node.js

reactjs

android

php

c++

ruby-on-rails

html

jquery

git

css

ios

sql

.net

c

<img src="//i.stack.imgur.com/bk9VA.png" alt="" class="sponsor-tag-img" width="18" height="16"/>android

string

Python - write()与writelines()和连接字符串

所以我正在学习Python。 我正在经历课程并遇到一个问题,我必须将很多write()压缩成一个writelines(),同时在每个用户输入变量(write()的对象)之间有一个"\n"

我提出了:

nl = "\n"
lines = line1, nl, line2, nl, line3, nl
textdoc.writelines(lines)

如果我尝试做:

textdoc.write(lines)

我收到一个错误。 但如果我输入:

textdoc.write(line1 + "\n" + line2 + ....)

然后它工作正常。 为什么我无法在write()中使用字符串作为换行符,但我可以在writelines()中使用它?

Python 2.7当我搜索google时,我发现的大部分资源都是我的头脑,我还是一个非专业人士。

trans by 2019-08-13T23:00:57Z

python - 确定2个列表是否具有相同的元素,无论顺序如何?

这个问题在这里已有答案:

  • 如何在Python中有效地比较两个无序列表(不是集合)?                                     9个答案

很抱歉这个简单的问题,但我很难找到答案。

当我比较2个列表时,我想知道它们是否相等&#34; 因为它们具有相同的内容,但顺序不同。

例如:

x = ['a', 'b']
y = ['b', 'a']

我希望x == y来评估True

trans by 2019-08-11T02:03:35Z

python - 向异常添加信息?

编辑:我正在运行python 2.6

我希望实现这样的目标:

def foo():
   try:
       raise IOError('Stuff ')
   except:
       raise

def bar(arg1):
    try:
       foo()
    except Exception as e:
       e.message = e.message + 'happens at %s' % arg1
       raise

bar('arg1')
Traceback...
  IOError('Stuff Happens at arg1')

但我得到的是:

Traceback..
  IOError('Stuff')

关于如何实现这一点的任何线索?

trans by 2019-08-09T18:42:37Z

继承 - Python super()引发TypeE

在Python 2.5中,以下代码引发了class X

>>> class X:
      def a(self):
        print "a"

>>> class Y(X):
      def a(self):
        super(Y,self).a()
        print "b"

>>> c = Y()
>>> c.a()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 3, in a
TypeError: super() argument 1 must be type, not classobj

如果我用class X(object)替换class X,它将起作用。 对此有何解释?

trans by 2019-07-19T22:59:25Z

Python中的raw_input函数

什么是raw_input的功能? 它是用户界面吗? 我们什么时候使用它?

trans by 2019-07-19T05:19:38Z

语法 - Python中“in”的相关性?

我正在制作一个Python解析器,这让我很困惑:

>>>  1 in  []  in 'a'
False

>>> (1 in  []) in 'a'
TypeError: 'in <string>' requires string as left operand, not bool

>>>  1 in ([] in 'a')
TypeError: 'in <string>' requires string as left operand, not list

关于结合性等,“in”在Python中的工作原理究竟如何?

为什么这些表达式中没有两个表现方式相同?

trans by 2019-07-16T20:19:20Z

闭包 - Python 2.x中的非本地关键字

我正在尝试在Python 2.6中实现一个闭包,我需要访问一个非局部变量,但似乎这个关键字在python 2.x中不可用。 如何在这些版本的python中访问闭包中的非局部变量?

trans by 2019-07-13T11:26:28Z

unicode - 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)

我知道如何避免错误&#34; u&#34; 字符串上的前缀。 我只是想知道为什么错误是&#34;无法解码&#34; 当编码被调用时。 什么是Python在幕后做什么?

trans by 2019-07-03T20:44:31Z

Python异常链接

这个问题在这里已有答案:

  • Python中的“内部异常”(带回溯)?                                     9个答案

是否有在Python中使用异常链的标准方法? 像Java引起的'异常'一样?

这是一些背景知识。

我有一个带有一个主要异常类DSError的模块:

 class DSError(Exception):
     pass

在这个模块的某个地方会有:

try:
    v = my_dict[k]
    something(v)
except KeyError as e:
    raise DSError("no key %s found for %s" % (k, self))
except ValueError as e:
    raise DSError("Bad Value %s found for %s" % (v, self))
except DSError as e:
    raise DSError("%s raised in %s" % (e, self))

基本上这个片段应该只抛出DSError并告诉我发生了什么以及为什么。 问题是try块可能会抛出很多其他异常,所以我更喜欢我能做的事情如下:

try:
    v = my_dict[k]
    something(v)
except Exception as e:
    raise DSError(self, v, e)  # Exception chained...

这是标准的pythonic方式吗? 我没有在其他模块中看到异常链,那么在Python中如何完成?

trans by 2019-06-22T21:49:07Z

python - 没有换行的打印(打印'a',)打印一个空格,如何删除?

我有这个代码:

>>> for i in xrange(20):
...     print 'a',
... 
a a a a a a a a a a a a a a a a a a a a

我想输出'a',没有像这样的' '

aaaaaaaaaaaaaaaaaaaa

可能吗?

trans by 2019-06-09T01:05:34Z

Python闭包:写入父作用域中的变量

我在函数中有以下代码:

stored_blocks = {}
def replace_blocks(m):
    block = m.group(0)
    block_hash = sha1(block)
    stored_blocks[block_hash] = block
    return '{{{%s}}}' % block_hash

num_converted = 0
def convert_variables(m):
    name = m.group(1)
    num_converted += 1
    return '<%%= %s %%>' % name

fixed = MATCH_DECLARE_NEW.sub('', template)
fixed = MATCH_PYTHON_BLOCK.sub(replace_blocks, fixed)
fixed = MATCH_FORMAT.sub(convert_variables, fixed)

添加元素到nonlocal num_converted工作正常,但我无法在第二个子函数中增加num_converted

UnboundLocalError:赋值前引用的局部变量'num_converted'

我可以使用nonlocal num_converted,但全局变量很难看,我真的根本不需要该变量。

所以我很好奇如何写入父函数范围内的变量。nonlocal num_converted可能会完成这项工作,但我需要一个适用于Python 2.x的解决方案。

trans by 2019-06-04T14:31:47Z

如何在Python C-API中动态创建派生类型

假设我们有关于为Python编写C扩展模块的教程中定义的类型PyDescr_NewMethod()。 现在我们要创建一个派生类型,只覆盖type()type()方法。

目前我使用以下方法(为了便于阅读而删除了错误检查):

PyTypeObject *BrownNoddyType =
    (PyTypeObject *)PyType_Type.tp_alloc(&PyType_Type, 0);
BrownNoddyType->tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE;
BrownNoddyType->tp_name = "noddy.BrownNoddy";
BrownNoddyType->tp_doc = "BrownNoddy objects";
BrownNoddyType->tp_base = &NoddyType;
BrownNoddyType->tp_new = BrownNoddy_new;
PyType_Ready(BrownNoddyType);

这有效,但我不确定它是不是正确的方法。 我本以为我必须设置PyDescr_NewMethod()标志,因为我在堆上动态分配类型对象,但这样做会导致解释器中出现段错误。

我还想过用type()或类似的方式明确地调用PyDescr_NewMethod(),但我放弃了这个想法。 我需要将函数type()包装在Python函数对象中并创建一个字典映射tp_new到这个函数对象,这看起来很傻。

最好的方法是什么? 我的方法是否正确? 我错过了接口功能吗?

更新

python-dev邮件列表(1)(2)上的相关主题有两个主题。 从这些线程和一些实验我推断我不应该设置PyDescr_NewMethod(),除非通过调用type()分配类型。这些线程中有不同的建议是否更好地手动分配类型或调用type().I' 如果我知道推荐的方式来包装应该放在tp_new插槽中的C函数是什么,请对后者感到高兴。 对于常规方法,这一步很简单 - 我可以使用PyDescr_NewMethod()来获得合适的包装器对象。 我不知道如何为我的__new__()方法创建这样的包装器对象 - 也许我需要未记录的函数PyCFunction_New()来创建这样的包装器对象。

trans by 2019-06-01T02:12:44Z

为什么Python在默认编码为ASCII时会打印unicode字符?

从Python 2.6 shell:

>>> import sys
>>> print sys.getdefaultencoding()
ascii
>>> print u'\xe9'
é
>>> 

我希望在print语句之后有一些乱码或错误,因为“é”字符不是ASCII的一部分,我没有指定编码。 我想我不明白ASCII是默认编码的意思。

编辑

我将编辑移动到了答案部分并按照建议接受了它。

trans by 2019-05-27T01:02:43Z

迭代器 - 如何从生成器中选择一个项目(在python中)?

我有一个如下的生成器函数:

def myfunct():
  ...
  yield result

调用此函数的常用方法是:

for r in myfunct():
  dostuff(r)

我的问题是,有什么方法可以随时从发电机中获取一个元素吗?例如,我想做类似的事情:

while True:
  ...
  if something:
      my_element = pick_just_one_element(myfunct())
      dostuff(my_element)
  ...
trans by 2019-05-23T03:12:29Z

可变参数函数 - Python,可变长度位置参数后的默认关键字参数

我想我可以在Python 2的函数调用中使用可变长度位置参数之后的命名参数,但是在导入python类时我得到了SyntaxError。 我正在使用以下“get”方法编写,例如:

class Foo(object):
    def __init__(self):
        print "You have created a Foo."

    def get(self, *args, raw=False, vars=None):
        print len(args)
        print raw
        print vars

错误看起来像:

def get(self, *args, raw=False, vars=None):
                     ^
SyntaxError: invalid syntax

我希望能够通过几种方式调用该方法:

f = Foo()
f.get(arg1, arg2)
f.get(arg1, raw=True)
f.get(arg1, arg2, raw=True, vars=something)

等等

trans by 2019-05-19T17:35:23Z

为什么Python的dict.keys()返回一个列表而不是一个集合?

我希望Python的key方法返回一个集合而不是列表。 因为它最类似于hashmap的键所提供的保证。 具体来说,它们是唯一的,没有排序,就像一组。 但是,此方法返回一个列表:

>>> d = {}
>>> d.keys().__class__
<type 'list'>

这只是Python API中的一个错误,还是有其他原因让我失踪?

trans by 2019-05-18T03:28:32Z

Python:在Unicode转义字符串上使用.format()

我使用的是Python 2.6.5。 我的代码需要使用“超过或等于”的符号。 在这里:

>>> s = u'\u2265'
>>> print s
>>> ≥
>>> print "{0}".format(s)
Traceback (most recent call last):
     File "<input>", line 1, in <module> 
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2265'
  in position 0: ordinal not in range(128)`  

为什么我会收到此错误? 有没有正确的方法来做到这一点? 我需要使用.format()功能。

trans by 2019-05-17T06:28:46Z

python - 我们为什么不在py脚本中使用sys.setdefaultencoding(“utf-8”)?

我见过很少的py脚本在脚本的顶部使用它。 在什么情况下应该使用它?

import sys
reload(sys)
sys.setdefaultencoding("utf-8")
trans by 2019-05-13T13:58:29Z

python - 为什么不在lambda中打印工作?

为什么这不起作用?

lambda: print "x"

这不是一个单一的陈述,还是别的什么?关于lambda中允许的内容,文档似乎有点稀疏......

trans by 2019-04-30T21:19:11Z

网络 - 如何在python 2.x中检查ip是否在网络中?

给定一个IP地址(比如192.168.0.1),如何在Python中检查它是否在网络中(比如192.168.0.0/24)?

Python中是否有用于ip地址操作的通用工具? 像主机查找,ip adddress到int,网络地址与netmask到int等等? 希望在2.5的标准Python库中。

trans by 2019-04-16T02:37:43Z

1 2 下一页 共2页