Python运行报错TypeError: unsupported operand type(s) for +: 'NoneType'和'str'如何解决
TypeError报错原因与修复方案
错误根因
你代码中print语句的括号范围写错了:
print(str(genNum)) + ': ' + os.path.basename(fileItem) + ' =>\n' + os.path.basename(newname) + "\n"
Python内置的print()函数执行完成后会返回None,你当前的写法相当于先执行print(str(genNum))得到None,再尝试将None和后续的字符串做+拼接操作,自然就触发了unsupported operand type(s) for +: 'NoneType' and 'str'的类型错误。
修复方案
把所有需要打印的内容都放到print()的括号内部即可,推荐两种写法:
写法1:直接修正括号范围
print(str(genNum) + ': ' + os.path.basename(fileItem) + ' =>\n' + os.path.basename(newname) + "\n")
写法2:使用f-string(更推荐,可读性更高,不易出错)
print(f"{genNum}: {os.path.basename(fileItem)} =>\n{os.path.basename(newname)}\n")
额外注意点
你贴出的业务代码还存在缩进错误:if i < condition_number: 下方的逻辑代码没有缩进,Python对缩进语法要求严格,运行时会触发语法错误,需要将if判断下的所有逻辑代码统一缩进4个空格。
内容的提问来源于stack exchange,提问作者user583088
相关产品推荐
相关产品推荐

