我试图转换这个php函数
function strpos_r($haystack, $needle)
{
if(strlen($needle) > strlen($haystack))
trigger_error(sprintf("%s: length of argument 2 must be <= argument 1", __FUNCTION__), E_USER_WARNING);
$seeks = array();
while($seek = strrpos($haystack, $needle))
{
array_push($seeks, $seek);
$haystack = substr($haystack, 0, $seek);
}
return $seeks;
}
我已经编写了这个python函数,但是没有按预期工作。在
^{pr2}$我做错什么了?任何建议都将不胜感激。在
这对我有用:
函数真的不应该处理输入错误。您通常只是
return False
或者让函数抛出一个执行错误。在警告
当无法定位针时,}返回的值不相同。在php中
strrpos
和{strrpos
返回false,而python的string.rfind
返回-1!php版本中的while conditional没有使用严格的比较,因此如果在结果数组中找到指针,则函数不会将偏移量
0
存储在结果数组中,要解决此问题,代码应该编写为:while (($seek = strrpos ($haystack, $needle)) !== false)
问题的根源….
上面两行没有提供等价的功能,php条件相当于写:
^{pr2}$我将您的python循环改为:
一些小变化:
相关问题 更多 >
编程相关推荐