Python统计字符串前导零的函数遇全零字符串失效问题求解
问题产生原因
你的函数仅在遍历到非零字符时才会触发return逻辑,当输入为全零字符串时,整个for循环执行完毕都不会进入else分支的返回语句,函数最终会默认返回None,无法输出累计的总零数。
修复方案
你可以直接在循环结束后统一返回计数结果即可,修改后的代码如下:
def leading_zeros_counter(x: str): zeros = 0 for i in x: if i == '0': zeros += 1 else: # 遇到非零字符直接终止循环 break # 遍历结束后统一返回计数,兼容全零场景 return zeros
如果你需要更简洁的实现,也可以直接利用Python字符串内置的lstrip方法完成统计:
def leading_zeros_counter(x: str): # 原字符串长度减去移除前导零后的字符串长度,即为前导零个数 return len(x) - len(x.lstrip('0'))
内容的提问来源于stack exchange,提问作者S_K
相关产品推荐
相关产品推荐

