★if name == “_main_”:
main()
运行之后if那一行后面出现错误,要怎么改空格才对😭
如有帮助给个采纳 谢谢
#!/usr/bin/env python
# -*- coding:utf-8 -*-
print(__name__)
# 执行结果:
__main__
当我们运行的本程序的时候,__name__ 这个内置变量值就是 __main__
#!/usr/bin/env python
# -*- coding:utf-8 -*-
def main():
print("this is before if __name__:%s" % __name__)
if __name__=='__main__':
main()
print("this is after if __name__:%s" % __name__)
#/usr/bin/env python
# -*- coding:utf-8 -*-
# 导入我们自定义的 test 模块
import test
# 调用 test 模块里的 main 方法
test.main()
# 执行结果:
# 此时 __name__ 指向的而是 test 模块的名字
this is before if __name__:test
根据参考资料和问题描述,我们可以看到问题出现在if语句的后面,而且有可能是缩进的问题导致。为了解决这个问题,我们需要检查代码的缩进是否正确。如果缩进不正确,可以通过修改缩进来修复问题。
以下是一个解决问题的示例代码:
# 假设问题出现在这个if语句后面
if 条件:
# 这里是if语句的执行体,如果缩进不正确会导致错误
# 修改缩进来解决问题
if 条件:
# 这里是if语句的执行体,正确的缩进位置
# 其他代码继续执行
请注意,我们只能根据问题描述来判断是否是缩进问题导致的错误。如果还有其他错误导致代码无法正确运行,我们需要进一步分析代码和错误信息来找到解决方案。
if name == 'main':
前面不需要缩进,靠顶格开始写,
后面的main()保持一个缩进
错因分析:
(1)流控语句if与变量名__name__之间没有使用空格隔开 --> SyntaxError: Invalid Syntax(书写不合乎语法)
(2)__name__变量是系统全局变量,在py脚本文件被直接运行而非作为模块导入(即import)时,其赋值为
包含两组双下划线,而不是两组单下划线。按照原程序写法,该if分支的条件即使在程序直接执行的情况下也不会得到满足。
(3)作为满足if语句条件的运行结果,main()应该与if保持一个缩进,原程序却将二者放在同一缩进等级上,这样不仅会报if分支没有结果语句的错,还会使得main()语句不能得到有效执行。
改进措施:
所以,应该将错误代码
else:
print("无效的选择.")
if__name__ == "__main__":
main()
改为下列代码:
else:
print("无效的选择.")
if __name__ == "__main__":
main()