小编Tim*_*Tim的帖子

Python是否支持正则表达式中的条件结构?

Python是否支持正则表达式中的条件结构?

  1. 如果是,为什么我不能拥有以下(在if部分使用前瞻)对吧?有什么办法让Python支持它吗?

    >>> p = re.compile(r'(?(?=regex)then|else)')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/usr/lib/python2.7/re.py", line 190, in compile
        return _compile(pattern, flags)
      File "/usr/lib/python2.7/re.py", line 242, in _compile
        raise error, v # invalid expression
    sre_constants.error: bad character in group name
    
    Run Code Online (Sandbox Code Playgroud)
  2. 但是,使用反向引用作为if部分可以工作:

    >>> p = re.compile(r'(expr)?(?(1)then|else)')
    
    Run Code Online (Sandbox Code Playgroud)

http://www.regular-expressions.info/conditional.html

JGsoft引擎,Perl,PCRE,Python和.NET框架支持条件.

在正则表达式中使用条件的最接近的解决方案是什么?

我的Python是2.7.3.我不知道如何检查re模块的版本(我该怎么办?).谢谢.

python regex

5
推荐指数
1
解决办法
144
查看次数

显式捕获和处理异常是否会导致切换到内核模式?

从一本OS的书上,我了解到异常(例如算术溢出,未定义的指令,无效的内存访问)会导致cpu从用户模式切换到内核模式,以便OS可以处理异常

在高级编程语言中,我们可以捕获并处理程序中的默认异常(如上所述)或自定义异常,例如在 C++ 中,通过使用tryandcatch以及 Java 和 Python 中的类似结构。我注意到在这种情况下,用户程序中会给出异常处理程序。

通过在用户程序中显式捕获和处理异常,

  • 默认异常是否 仍会导致CPU从用户模式切换到内核模式,以便操作系统可以处理异常?

  • 自定义的异常还会 导致cpu从用户态切换到内核态,以便OS能够处理异常吗?

谢谢!(如果需要特定于操作系统,则使用 Linux)

linux operating-system exception

5
推荐指数
1
解决办法
1322
查看次数

为什么POSIX中的字符类中有双括号?

在POSIX中,为什么一个字符类如[[:digit:]]双括号?外支架和内支架是否相同?谢谢?

regex

5
推荐指数
2
解决办法
396
查看次数

什么算法可以将字符组合成单词?

我有一些糟糕的OCR软件生成的文本.

输出包含单词和空格分隔字符的混合,这些字符应该被分组为单词.例如,

Expr e s s i o n Syntax
S u m m a r y o f T e r minology 
Run Code Online (Sandbox Code Playgroud)

本来应该

Expression Syntax
Summary of Terminology 
Run Code Online (Sandbox Code Playgroud)

什么算法可以将字符组合成单词?

如果我使用Python,C#,Java,C或C++编程,哪些库提供了算法的实现?

谢谢.

algorithm nlp

5
推荐指数
1
解决办法
141
查看次数

如何在查找过程中使用`__getattribute__`方法?

Nutshell中的Python描述:

__getattribute__上述查找过程中涉及的方法如何?

  • __getattribute__方法是在查找过程中调用的吗?

  • 或者,是否通过调用启动查找过程__getattribute__,然后执行两个链接中的所有工作?

谢谢.

python python-3.x

5
推荐指数
1
解决办法
96
查看次数

`getattr`如何与`object .__ getattribute__`和`object .__ getattr__`相关?

来自https://docs.python.org/3.6/library/functions.html#getattr

getattr(object, name[, default])
Run Code Online (Sandbox Code Playgroud)

返回指定属性的值object.name必须是一个字符串.如果字符串是对象属性之一的名称,则结果是该属性的值.例如,getattr(x, 'foobar')相当于x.foobar.如果named属性不存在,default则返回(如果提供),否则 AttributeError引发.

如何getattrobject.__getattribute__object.__getattr__

getattr打电话object.__getattribute__object.__getattr__?我猜这个前者?

python operators built-in magic-methods python-3.x

5
推荐指数
2
解决办法
1709
查看次数

什么是结构或联合的非现场成员?

来自K&R C编程语言:

结构或联合的非字段成员可以具有任何对象类型.

字段成员(不需要声明符,因此可以是未命名的)具有int,unsigned int或signed int类型,并且被解释为指定长度的整数类型的对象(以位为单位); int字段是否被视为signed是依赖于实现的.

...

结构的非字段成员根据其类型在寻址边界处对齐; 因此,结构中可能存在未命名的孔.

  1. 我认为结构或联合的成员被称为其领域.那么结构或联合的非现场成员是什么?它与现场成员有什么不同?
  2. 你能用一些例子解释"结构或联合的非字段成员可能有任何对象类型"吗?
  3. 引用中的第二个句子是否表示字段成员只能具有int,unsigned int或signed int类型?
  4. 引文中的最后一句提到非字段成员是对齐的.场成员是否对齐?如果没有,字段成员如何存储在内存中?

谢谢.

c

5
推荐指数
1
解决办法
388
查看次数

“子程序”和“例程”是同一个概念吗?

我在编程语言书籍中看到过“子例程”和“例程”。它们是同一个概念吗?“子”是什么意思?

我想除了Scott 所著的《编程语言语用学》中的以下示例之外,您可能在计算机科学书籍中见过很多示例:

在第 3.2.2 节中,我们讨论了子程序调用堆栈上的空间分配(图 3.1)。每个例程在调用时都会在堆栈顶部获得一个新的堆栈帧或激活记录。该帧可以包含参数和/或返回值、簿记信息(包括返回地址和保存的寄存器)、局部变量和/或临时变量。当子例程返回时,其帧从堆栈中弹出。

谢谢。

computer-science programming-languages routines subroutine

5
推荐指数
1
解决办法
2985
查看次数

"特殊方法的隐式使用总是依赖于特殊方法的类级绑定"

我在Nutshell中很难理解Python中的最后一部分(粗体)

每实例方法

实例可以为所有属性提供特定于实例的绑定,包括可调用属性(方法).对于方法,就像任何其他属性一样(除了那些绑定到覆盖描述符的属性),特定于实例的绑定隐藏了类级别绑定:属性查找在直接在实例中找到绑定时不考虑该类.可调用属性的特定于实例的绑定不执行第110页的"绑定和未绑定方法"中详述的任何转换:属性引用返回与先前直接绑定到实例属性的可调用对象完全相同的内容.

但是,这并不像您可能期望的那样,Python会因各种操作而隐式调用的特殊方法的每个实例绑定,如第123页的"特殊方法"中所述.特殊方法的这种隐式使用始终依赖于特殊方法的类级绑定(如果有).例如:

def fake_get_item(idx): return idx
class MyClass(object): pass
n = MyClass()
n.__getitem__ = fake_get_item
print(n[23])                      # results in:
# Traceback (most recent call last):
#   File "<stdin>", line 1, in ?
# TypeError: unindexable object
Run Code Online (Sandbox Code Playgroud)

具体是什么意思?

为什么这个例子的错误?

谢谢.

python

5
推荐指数
1
解决办法
91
查看次数

为什么输出不能跟随输入,反之亦然?

来自APUE

当打开文件进行读写(类型中的加号)时,有两个限制.

•如果没有干预fflush,fseek,fsetpos或倒带,输出不能直接输入.

•输入不能直接跟随输出而没有介入的fseek,fsetpos或倒带,或者遇到文件结束的输入操作.

为什么在这两种情况下"fseek,fsetpos或倒带"?

为什么在第二种情况下"输入操作遇到文件结束"?

谢谢.

Linux API的一个类似问题是可以`read()`直接后跟`read()`和`read()`的`write()`?

c linux

5
推荐指数
1
解决办法
113
查看次数