Python 3.6.5中except语句语法错误及缩进问题求助
你的Python代码问题解决指南
首先来说你遇到的语法错误:这是Python版本兼容导致的!在Python 3里,捕获异常的语法已经从except ValueError, e:改成了except ValueError as e:,逗号的写法是Python 2的旧语法,所以Python 3解释器会直接报错。
另外还有一个容易忽略的隐藏问题——你在if __name__ == '__main__':块里调用了is_json('test'),但这个函数的定义是在if块之后的。当Python执行到调用语句时,函数还没被定义,运行时会抛出NameError,这个也得一起修正。
关于你提到的缩进问题:只用制表符是完全没问题的,只要保证整个代码的缩进层级一致(比如函数内部的try/except块都正确缩进),就不会有缩进相关的报错。
修正后的完整代码如下:
import json def is_json(str): try: json.loads(str) except ValueError as e: return False return True if __name__ == '__main__': # 可以加个打印查看函数执行结果 print(is_json('test'))
核心修改说明:
- 替换异常捕获的语法,适配Python 3的规范要求
- 将函数定义移到调用语句之前,确保调用时函数已经被加载定义
- 保持制表符缩进的一致性(你的缩进习惯没问题,只要全程统一就不会有问题)
运行这段代码,会输出False,符合函数的预期功能,也不会再报语法错误啦。
内容的提问来源于stack exchange,提问作者nikksan
相关产品推荐
相关产品推荐

