如您所知,Python 是一种脚本语言。它的工作方式与您可能对 C/C++/Java 的体验有所不同。在 C/Cpp/Java 中,您有一个可用的主类和/或主函数,这是程序执行的起点。
对于python,没有语言指定的main函数或类,你必须定义自己的类并调用它。
你所做的只是定义函数而不使用它,所以调用函数。
片段:
import random
def rand_divis_3():
num = random.randint(0,100)
print num
if num % 3 == 0:
print True
else:
print False
这创建了一个函数rand_divis_3,它被创建并存储在内部存储器中。问题是你必须调用函数。
>>>rand_divis_3()
93
现在这部分很棘手,python 是一门拥有数百万个库的语言,您可以在https://pypi.python.org 找到它们,也可以创建自己的库。
假设你写了这段代码
import random
def rand_divis_3():
num = random.randint(0,100)
print num
if num % 3 == 0:
print True
else:
print False
rand_divis_3() #This is where the function is executed
你调用了这个 file.py 并将其作为 python file.py 执行,这当然会首先导入 random,然后创建一个名为 rand_divis_3 的对象,并在内部指向该函数。当它到达rand_divis_3() 时,它将执行这一行,这实际上会为您生成一个随机数并相应地打印该数字和 True/False。
假设你需要创建一个库,那么你就有问题了,因为当你import file那么file.py脚本是从上到下执行的。
为了避免这种情况,你可以这样做
- 将
import file 替换为from file import rand_divis_3,这会选择性地导入一个函数,但如果您正在处理一些实际项目,则不建议这样做,请查看#2
-
在脚本末尾添加这一行,
如果 name=='main':
rand_divis_3()
file.py 末尾有这一行,当你做python file.py 时,它会调用函数,但如果你做import file,函数rand_divis_3 不会被调用。
这背后的原因是当你执行任何 python 脚本时 name 变量是 main。
所以你的最终文件将如下所示:
import random
def rand_divis_3():
num = random.randint(0,100)
print num
if num % 3 == 0:
print True
else:
print False
if __name__=='__main__':
rand_divis_3() # function is called only when you execute the script
注意:这很重要,Cyber 说的在你学习语言做一些事情的时候很有效,但是当你认真编程时,它就会派上用场,我花了很长时间才意识到它的重要性。
我在这里为 python 新手创建了一个 github 存储库,http://github.com/thewhitetulip/SamplePythonScripts