随机数生成器的Python代码未按预期打印

时间:2014-12-30 13:34:22

标签: python function random printing integer

很抱歉,如果这是一个愚蠢的问题,我已经研究过它,发现类似的代码可以运行并应用相同的布局,但出于某种原因,当我运行它时,它不打印num或者是真还是假结果,只是一个空白行。我使用的是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

2 个答案:

答案 0 :(得分:3)

您需要实际调用该功能。如果你这样做,你会注意到你的功能正常。

>>> rand_divis_3()
26
False

>>> rand_divis_3()
15
True

您所做的只是定义该功能以供将来使用。

答案 1 :(得分:2)

如您所知,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脚本会从上到下执行。

为避免这种情况,您可以

  1. import file替换为from file import rand_divis_3,有选择地导入一个函数,但如果您正在处理一些真实的项目,这是不可取的,请看#2
  2. 在脚本末尾添加此行

    如果名称 ==' 主要': rand_divis_3()

  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 repo,http://github.com/thewhitetulip/SamplePythonScripts