1、Java和C#的程序入口
Java的程序入口Main函数
public static void Main(string[] args) { //方法体 }
C#的程序入口Main函数
public static void Main(string[] args) { //方法体 }
2、Python的程序入口
(1)Python不需要Main函数也能执行
Python不同于以上编程语言,Python是解释性语言,不需要先编译成二进制语言,再执行。Python是动态,是从上至下逐行解释运行。
如下:demo_list.py
-
b=[]
-
b.append(
"test")
-
b.append(
"apple")
-
b.append(
"banana")
-
for a
in b:
-
print(a)
-
-
-
def fact(n):
-
if n ==
1:
-
return n
-
else:
-
return n * fact(n
-1)
-
print(
"阶乘:", fact(
3))
-
-
print(
'__name__是模块名字(文件名),值为:'+__name__)
在PyCharm中,右键直接运行以上代码文件,执行结果:
(2)Python中的main
理解Python的【if __name__ == '__main__':】之前,需要了解模块的概念。
模块是扩展名为.py的文件,是组合代码,函数的文件。
对于__name__,先看段代码:
以下代码所在文件名为function_test.py,在该文件中导入(import)了demo_list模块(文件),即上面的demo_list.py
-
from demo_list
import fact
-
-
-
if __name__==
'__main__':
-
print(
'当前执行文件名:' + __name__)
-
print(
"阶乘:", fact(
3))
执行结果:
【__name__解释】:
__name__是系统内置变量,代表所在模块名字,也即所在文件名。
当模块直接运行时,如(1)中的demo_list.py文件被直接运行,__name__的值为“__main__”;
当模块被导入到其他文件,如demo_list被导入到function_test.py中,并且程序在function_test.py被执行时, demo_list.py中的__name__的值为demo_list,为其模块名,而不是__main__。而function_test.py的__name__的值为__main__,因为程序从function_test.py开始执行。
一般,语句【if __name__ == '__main__':】所在的文件(或称模块)是主程序,当主程序运行时,【if __name__ == '__main__':】冒号后面的代码会被执行,因为主程序中,__name__的值为“__main__”。