gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 08:58:45 24 4
gpt4 key购买 nike

抱歉,如果这是一个愚蠢的问题,我已经研究过它并发现了类似的代码可以工作并应用了相同的布局,但是由于某种原因,当我运行我的代码时它不会打印 num 或 true 或 false 结果,只是一个空行。我正在使用 Python 2,我缺少什么? rand_divis_3 函数应该只是简单地生成一个随机数并打印 True 或 False,具体取决于它是否可以被 3 整除。非常感谢帮助,我是 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 执行,这当然会首先导入 random,然后创建一个名为 rand_divis_3 的对象,它在内部指向该函数。当它到达 rand_divis_3() 时,它会执行这一行,这实际上会为您生成一个随机数并相应地打印该数字和 True/False。

假设您需要创建一个库,那么您遇到了问题,因为当您import file 时,file.py 脚本是从上到下执行的。

要避免这种情况,您可以这样做

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

    if name=='ma​​in':rand_divis_3()

在 file.py 末尾有这一行,当您执行 python file.py 时,它将调用该函数,但如果您执行 import file,函数 rand_divis_3不会被调用。

这背后的原因是当您执行任何 python 脚本时,name 变量是 ma​​in

因此您的最终文件将如下所示:

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

关于随机数生成器的 Python 代码未按预期打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27706471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com