导致Python异常的语法正确字符数最少
它似乎会导致一个异常,比如在程序中执行一个快速而延迟的代码中止是不可能的导致Python异常的语法正确字符数最少,python,exception,syntax,Python,Exception,Syntax,它似乎会导致一个异常,比如在程序中执行一个快速而延迟的代码中止是不可能的 引发异常。但在快速开发过程中,更好的习惯用法可能是找到一个更方便的错误: 如果您清楚地知道索引器是[[0]的占位符,那么使用5个字符可以更快地完成此操作 但是如果使用4个字符[]-0,并产生类型错误,则效果会更好 现在我们将-[]或+[]改进为3个字符,这也是类型错误。所有这些字符串和元组的变体都是可能的 在Python中,语法上有效的代码是否可以抛出一个不超过2个字符的异常,而该异常是独立的、无依赖的?这意味着不定义变量
引发异常
。但在快速开发过程中,更好的习惯用法可能是找到一个更方便的错误:
如果您清楚地知道索引器
是[[0]
的占位符,那么使用5个字符可以更快地完成此操作
但是如果使用4个字符[]-0
,并产生类型错误,则效果会更好
现在我们将-[]
或+[]
改进为3个字符,这也是类型错误。所有这些字符串和元组的变体都是可能的
在Python中,语法上有效的代码是否可以抛出一个不超过2个字符的异常,而该异常是独立的、无依赖的?这意味着不定义变量,并且在任何地方都有效,因此不使用任何单字母变量名,否则a
将抛出namererror
,但显然,如果程序中使用a
变量,它将不起作用
至少我能找到上面的3个字符的组合,这可能是一个非常快速的开发时间唯一的方法,仅仅为了快速测试代码而中止
最新消息:我想出了一个办法来详尽地回答这个问题,所以我继续做下去。诚然,这是一个代码高尔夫风格的问题,但也可能很有趣。要获得可以在其他地方跟踪的特定异常,可以定义一个包含自定义异常类实例的单字母变量,该类在应用反转运算符时会自动引发:
class CustomError(Exception):
def __invert__(self):
raise self
É = CustomError() # Unlikely to be used elsewhere single letter variable.
用法:
~É ==> raises a CustomError exception
要获取可以在其他地方跟踪的特定异常,可以定义一个包含自定义异常类实例的单字母变量,该类在应用反转运算符时会自动引发:
class CustomError(Exception):
def __invert__(self):
raise self
É = CustomError() # Unlikely to be used elsewhere single letter variable.
用法:
~É ==> raises a CustomError exception
好的,我意识到这可以在一个详尽的ASCII字符枚举程序中编写,这个程序不仅编写简单,而且可以用python进行计算。但是,\uuu
关键字显然是python解释中的一个特殊符号,它是最后一个表达式的结果,因此必须在新实例中运行,而不执行先前的命令(除了导入和函数定义之外)
2个字符永远不起作用。但是,如果使用3个字符,您将得到以下内容,为了方便起见,这些内容将表示为正则表达式(仅语法为[].-
):
[\-\+\\~][\[\]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
任何[0-9]/0
或[0-9]%0
产生10+10个零分错误组合
任何~[0-9]j
,*[0-9],
~[0-9]。
和~[0-9]
增加了10+10+10更多的类型错误的可能性
任何产生100种类型错误组合的[0-9]@[0-9]
[0-9]()
中的任何一个,它给出了10个组合,每个组合都带有一个语法警告:“int”对象是不可调用的;在抛出TypeError
因此20ZeroDivisionError
和168TypeError
是可能的
谁会想到,多达188个保证异常生成程序只能用3个字符编写 好的,所以我意识到这可以在一个详尽的ASCII字符枚举程序中编写,该程序不仅编写简单,而且可以通过python进行计算。但是,\uuu
关键字显然是python解释中的一个特殊符号,它是最后一个表达式的结果,因此必须在新实例中运行,而不执行先前的命令(除了导入和函数定义之外)
2个字符永远不起作用。但是,如果使用3个字符,您将得到以下内容,为了方便起见,这些内容将表示为正则表达式(仅语法为[].-
):
[\-\+\\~][\[\]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
任何[0-9]/0
或[0-9]%0
产生10+10个零分错误组合
任何~[0-9]j
,*[0-9],
~[0-9]。
和~[0-9]
增加了10+10+10更多的类型错误的可能性
任何产生100种类型错误组合的[0-9]@[0-9]
[0-9]()
中的任何一个,它给出了10个组合,每个组合都带有一个语法警告:“int”对象是不可调用的;在抛出TypeError
因此20ZeroDivisionError
和168TypeError
是可能的
谁会想到,多达188个保证异常生成程序只能用3个字符编写 π
会导致名称错误
,只要没有人使用unicode字符定义变量。(很明显,每个字符名都有效)不是2个字符的答案,但对我来说,3个字符的明显解决方案是1/0
。可以有很多3个字符:~1j
,~'
,*1,
这不仅仅是一个实际问题,还带有代码高尔夫的味道。π
会导致名称错误
,只要没有人用unicode字符定义变量。(很明显,每个字符的名称都有效)不是2个字符的答案,但对我来说,3个字符的明显解决方案是1/0
。可以有很多3个字符:~1j
,~'
,*1,
这不仅仅是一个实际问题,还有点代码高尔夫的味道。干得好。但是Python并不局限于ASCII,而且范围(256)
也不是ASCII范围,因为ASCII是7位的。你是对的,事实上它只是使用ASCII进行单字节编码,所有3个字符的组合。无效的ASCII范围为