You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python代码遇NoneType不可迭代错误,求解GeeksforGeeks字符串模式问题

字符串递减子串输出问题及TypeError错误修复

我在做GeeksforGeeks的字符串模式题,要求输入字符串后按递减顺序输出子串,比如输入"Geek",要输出:

Geek
Gee
Ge
G
END

但运行代码时触发了TypeError: 'NoneType' object is not iterable错误,以下是原代码、报错信息及问题分析和修复方案:

示例

  • 输入:a = "Geek"
  • 输出:
Geek
Gee
Ge
G
END

原代码

#User function Template for python3
class Solution:
    def pattern(self, S):
        n = len(S)
        for i in range (0, n):
            for j in range(0, n - i) :
                print(S[j], end = "")
            print("")


#{ 
 # Driver Code Starts
#Initial Template for Python 3

if __name__ == '__main__':
    T=int(input())
    for i in range(T):
        S = input()
# ob = Solution()
        answer = ob.pattern(S)
        for value in answer:
            print(value)
            

# } Driver Code Ends

报错信息

Traceback (most recent call last):
  File "/home/ba2f900c4eca91e4a091a2c7bf208eb5.py", line 22, in <module>
    for value in answer:
TypeError: 'NoneType' object is not iterable

问题分析

  1. 驱动代码中ob = Solution()被注释,导致ob未实例化,调用ob.pattern(S)会直接报错(实际运行时先触发NameError,后续若修复实例化,还会因为方法无返回值导致answer为None)
  2. Solution.pattern方法没有返回可迭代对象,而是直接打印内容,驱动代码试图遍历answer(即方法返回的None),因此触发TypeError

修复后的代码

#User function Template for python3
class Solution:
    def pattern(self, S):
        result = []
        n = len(S)
        for i in range(n):
            # 用切片快速获取递减子串
            substring = S[:n - i]
            result.append(substring)
        # 追加要求的END
        result.append("END")
        return result


#{ 
 # Driver Code Starts
#Initial Template for Python 3

if __name__ == '__main__':
    T=int(input())
    for i in range(T):
        S = input()
        ob = Solution()
        answer = ob.pattern(S)
        for value in answer:
            print(value)
            

# } Driver Code Ends

修改说明

  • 取消ob = Solution()的注释,正确创建Solution类实例
  • 重构pattern方法:不再直接打印,而是将所有递减子串存入列表,最后添加"END"并返回列表,让驱动代码可以遍历打印
  • 使用字符串切片S[:n-i]替代嵌套循环,代码更简洁高效

内容的提问来源于stack exchange,提问作者Gyanaa-Vaibhav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 01:00:59