Python循环处理输入时仅读取到第二个索引,无法获取第三及末尾索引元素
问题排查与修正方案
代码核心错误点
- 循环次数配置错误:你定义的循环范围为
range(1,n+3),比实际需要的n次读取多了2次,会触发输入读取错位,导致无法匹配后续单词、出现漏读问题。 - 长单词缩写逻辑完全缺失:当单词长度≥10时,你没有按要求计算中间字符数量,反而直接遍历打印整个单词,不符合缩写规则。
修正后可运行代码
n = int(input()) for _ in range(n): word = input().strip() if len(word) < 10: print(word) else: print(f"{word[0]}{len(word)-2}{word[-1]}")
逻辑说明
- 循环直接执行n次,刚好对应输入的n个单词,不会出现多读/漏读的错位问题
- 读取单词时通过
strip()过滤可能存在的首尾空白字符,避免空行干扰逻辑判断 - 长单词直接取首字符、总长度减2(扣除首尾的中间字符数)、尾字符拼接,一步完成缩写计算,运行效率更高
内容的提问来源于stack exchange,提问作者Mohd Ali Abbas
相关产品推荐
相关产品推荐

