Python禁用len等函数时,如何统计字符串元素个数?
字符串长度统计(禁用len等方法)的解决方案
你的代码报错是因为当索引i超过字符串的最大有效索引时,访问s[i]会直接抛出IndexError,循环无法正常终止,而且最后计算长度时的i + 1逻辑也有问题。
这里给你两种可行的实现方式:
方法一:利用异常处理终止while循环
i = 0 s = input("enter string : ") try: while True: # 尝试访问当前索引的字符,不存在时触发异常 s[i] i += 1 except IndexError: # 捕获到索引越界异常时,说明已经遍历完所有字符 pass print(i)
原理:每一次循环尝试访问s[i],当i等于字符串长度时,该位置不存在字符,触发IndexError,此时i的值正好等于字符串的元素个数(比如'hello'遍历到i=5时触发异常,i就是5)。
方法二:用for循环直接遍历计数
count = 0 s = input("enter string : ") for _ in s: count += 1 print(count)
原理:字符串是可迭代对象,for循环会逐个取出每个字符,每遍历一个字符就给计数器加1,遍历完成后count就是总元素个数,这种写法更简洁,也不会有索引越界的问题。
内容的提问来源于stack exchange,提问作者bin07
相关产品推荐
相关产品推荐

