Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“如何发出信号”;“未找到索引”;Python函数结果中的_Python_Indexing - Fatal编程技术网

“如何发出信号”;“未找到索引”;Python函数结果中的

“如何发出信号”;“未找到索引”;Python函数结果中的,python,indexing,Python,Indexing,我正在编写一个小函数,使用“模糊”比较返回字符串列表中第一次出现的字符串的索引 我的问题是:什么是表示目标字符串与源列表中的任何字符串都不匹配的正确方法 显然(唯一?)要做的是返回-1。但是,由于Python中的-1表示序列的最后一个元素,我觉得这可能不是好的Python风格。有没有一种更像蟒蛇的方式 我的问题是:什么是表示目标字符串与源列表中的任何字符串都不匹配的正确方法 您引发了一个错误: raise ValueError("String Not Found") Python是一种鸭式的语

我正在编写一个小函数,使用“模糊”比较返回字符串列表中第一次出现的字符串的索引

我的问题是:什么是表示目标字符串与源列表中的任何字符串都不匹配的正确方法

显然(唯一?)要做的是返回-1。但是,由于Python中的-1表示序列的最后一个元素,我觉得这可能不是好的Python风格。有没有一种更像蟒蛇的方式

我的问题是:什么是表示目标字符串与源列表中的任何字符串都不匹配的正确方法

引发了一个错误

raise ValueError("String Not Found")
Python是一种鸭式的
语言;请看:所以“提出适当的错误”是完全可以接受和接受的惯例

更新:像往常一样,到目前为止已经有了一些答案,并提出了使用
raisevalueerror
的意见甚至建议。IHMO我认为
索引器
更合适;但这可能是风格和个人品味的问题。还可以阅读:——特别是在“应该有一种——最好只有一种——显而易见的方法来做这件事”这一行的周围

更新II:为了与Pyton的内置
list.index()
str.index()保持一致,我想应该使用:)

我的问题是:什么是表示目标字符串与源列表中的任何字符串都不匹配的正确方法

引发了一个错误

raise ValueError("String Not Found")
Python是一种鸭式的
语言;请看:所以“提出适当的错误”是完全可以接受和接受的惯例

更新:像往常一样,到目前为止已经有了一些答案,并提出了使用
raisevalueerror
的意见甚至建议。IHMO我认为
索引器
更合适;但这可能是风格和个人品味的问题。还可以阅读:——特别是在“应该有一种——最好只有一种——显而易见的方法来做这件事”这一行的周围


更新II:为了与Pyton的内置
list.index()
str.index()保持一致,我想应该使用
提升值错误(…)
:)

您可以返回
None
,这是空对象


要检查结果,请使用
is
运算符。选中

可以返回空对象
None


要检查结果,请使用
is
运算符。根据Python文档检查

str.rindex;
类似于rfind(),但在未找到子字符串sub时引发ValueError。

str.rfind();
故障时返回-1

如果您希望保持与Python的std libs相同的设计,假设您的函数执行的操作与str.rindex几乎相同,那么请引发ValueError()。但是,如果您的函数更像rfind,则返回-1

如果您不在乎保持与std LIB相同的设计原则,那么使用您喜欢的任何样式


参见Python文档中的

str.rindex;
类似于rfind(),但在未找到子字符串sub时引发ValueError。

str.rfind();
故障时返回-1

如果您希望保持与Python的std libs相同的设计,假设您的函数执行的操作与str.rindex几乎相同,那么请引发ValueError()。但是,如果您的函数更像rfind,则返回-1

如果您不在乎保持与std LIB相同的设计原则,那么使用您喜欢的任何样式


请参阅

@jornsharpe谢谢:)这到底是不是野兽(Python)的本性。话虽如此,它确实使用了
ValueError
。我猜是因为错误与
sub
参数有关(它不是要查找的有效子字符串);实际上没有下标。@jornsharpe这是
True
:)我将更新
ValueError
的答案,因为
list.index()
str.index()
两者都提出了这一点——同样是为了一致性:)我仍然认为最好提出
索引器
,但哦,好吧:)@jornsharpe谢谢:)这毕竟是野兽(Python)的本性。话虽如此,确实使用了
ValueError
。我猜是因为错误与
sub
参数有关(它不是要查找的有效子字符串);实际上没有下标。@jornsharpe这是
True
:)我会更新我对
ValueError
的答案,因为
list.index()
str.index()
都提出了这个问题——同样是为了一致性:)我仍然认为提出
indexer
更好,但哦,好吧:)谢谢大家提出的好建议。作为Python新手,我没有想到引发异常。对我来说,并行索引方法的想法似乎是最具Python风格的(Python风格?)。然而,我可能会选择None路线,因为我确实发现带try/exception子句的Pepper One代码有点麻烦。再次,非常感谢。感谢大家提出的好建议。作为Python新手,我没有想到引发异常。对我来说,并行索引方法的想法似乎是最具Python风格的(Python风格?)。然而,我可能会选择None路线,因为我确实发现带try/exception子句的Pepper One代码有点麻烦。再次,非常感谢。