关于#Python#的问题,如何解决?

★if name == “_main_”:
main()
运行之后if那一行后面出现错误,要怎么改空格才对😭

img

如有帮助给个采纳 谢谢

img

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7612623
  • 这篇博客也不错, 你可以看下Python入门之if条件判断语句及其练习
  • 除此之外, 这篇博客: (一看必懂) Python 自定义模块中的 if __name__=='__main__': 详细解读中的 一. 在解释之前首先我们看下 __name__ 这个变量存的是什么? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • #!/usr/bin/env python
    # -*- coding:utf-8 -*- 
    
    print(__name__)
    
    # 执行结果:
    __main__
    • 当我们运行的本程序的时候,__name__ 这个内置变量值就是 __main__

     

    • test.py代码:
    #!/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__)
    • 导入 test 模块并执行
    #/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    # 导入我们自定义的 test 模块
    import test
    
    # 调用 test 模块里的 main 方法
    test.main()
    
    
    # 执行结果:
    # 此时 __name__ 指向的而是 test 模块的名字
    this is before if __name__:test
  • 您还可以看一下 黄勇老师的Python从入门到实战 基础入门视频教程(讲解超细致)课程中的 if语句和条件判断小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    根据参考资料和问题描述,我们可以看到问题出现在if语句的后面,而且有可能是缩进的问题导致。为了解决这个问题,我们需要检查代码的缩进是否正确。如果缩进不正确,可以通过修改缩进来修复问题。

    以下是一个解决问题的示例代码:

    # 假设问题出现在这个if语句后面
    if 条件:
        # 这里是if语句的执行体,如果缩进不正确会导致错误
    
    # 修改缩进来解决问题
    if 条件:
        # 这里是if语句的执行体,正确的缩进位置
    
    # 其他代码继续执行
    

    请注意,我们只能根据问题描述来判断是否是缩进问题导致的错误。如果还有其他错误导致代码无法正确运行,我们需要进一步分析代码和错误信息来找到解决方案。

if name == 'main':
前面不需要缩进,靠顶格开始写,
后面的main()保持一个缩进

错因分析:
(1)流控语句if与变量名__name__之间没有使用空格隔开 --> SyntaxError: Invalid Syntax(书写不合乎语法)
(2)__name__变量是系统全局变量,在py脚本文件被直接运行而非作为模块导入(即import)时,其赋值为

img

(因为markdown语法好像把这里的双下划线识别成了加粗字体,所以传了图片)

包含两组双下划线,而不是两组单下划线。按照原程序写法,该if分支的条件即使在程序直接执行的情况下也不会得到满足。
(3)作为满足if语句条件的运行结果,main()应该与if保持一个缩进,原程序却将二者放在同一缩进等级上,这样不仅会报if分支没有结果语句的错,还会使得main()语句不能得到有效执行。
改进措施:

所以,应该将错误代码

else:
    print("无效的选择.")
    if__name__ == "__main__":
    main()

改为下列代码:

else:
    print("无效的选择.")
    if __name__ == "__main__":
        main()