抱歉,如果这是一个愚蠢的问题,我已经对其进行了研究,发现类似的代码可以工作并应用相同的布局,但是由于某些原因,当我运行我的代码时,它不会打印num或true或false的结果,而只是显示一个空白行。我正在使用Python 2,我想念什么? rand_divis_3函数应该只是生成一个随机数,并根据其是否可以被3整除而输出True或False。非常感谢,我是python的新手

import random
def rand_divis_3():
    num = random.randint(0,100)
    print num
    if num % 3 == 0:
        print True
    else:
        print False

最佳答案

如您所知,Python是一种脚本语言。它的工作方式与您可能对C / C ++ / Java所体验的有点不同。在C / Cpp / Java中,您有一个主类和/或一个可用的主要函数,它们是程序执行的起点。

对于python,没有语言指定主要函数或类,您必须定义自己的类并调用它。

您所做的只是定义函数而不使用它,因此调用函数。

片段:

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,这当然会首先随机导入,然后创建一个名为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脚本时,名称变量是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

10-04 22:13
查看更多