Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从随机导入*和随机导入之间有什么区别?(random()和randrange())_Python_Import - Fatal编程技术网

Python 从随机导入*和随机导入之间有什么区别?(random()和randrange())

Python 从随机导入*和随机导入之间有什么区别?(random()和randrange()),python,import,Python,Import,本书中有以下代码示例: from random import* for i in range(15): print random.randrange(3,13,3) 并且在书中得到了结果 但当我在Netbeans中运行它时。出现以下例外情况: * 回溯(最近一次调用上次):文件 “C:\Users\Lacces\Documents\NetBeansProjects\Python\u GS\u Tanuljunk\u meg\u prog

本书中有以下代码示例:

from random import*
for i in range(15):                     
        print random.randrange(3,13,3)
并且在书中得到了结果

但当我在Netbeans中运行它时。出现以下例外情况:

*

回溯(最近一次调用上次):文件 “C:\Users\Lacces\Documents\NetBeansProjects\Python\u GS\u Tanuljunk\u meg\u programozni\src\Adatszerkezetek\Lista.py”, 第11行,在 随机打印。randrange(3,13,3)#3-tól 13 ig,3érték elválasztásal AttributeError:“内置函数或方法”对象 没有“randrange”属性

*

我打电话来帮助谷歌,我在导入时发现:

import random
我用这个代替了随机导入*

成功了!也不例外


有人能给我解释一下为什么第一次抛出异常,第二次为什么不抛出异常(对于初学者程序员:)

当您从random import*导入
时,
random
中的所有定义都成为当前名称空间的一部分。这意味着您不必使用
random.
作为前缀,但也意味着您可能会在不知道的情况下发生名称冲突


首选方法是
import random

由于这些令人惊讶的副作用,不鼓励从模块导入所有内容:模块
random
包含一个函数random,因此
import*from random
执行以下操作:

from random import randrange
from random import random
...

现在,当您访问
random
时,您访问的是函数而不是模块。您可以使用
randrange
(不带前缀
random.
),但是
import random
并明确说明函数来自哪个模块是更好的主意。

如果您使用“from moduleName import…”,那么您将获得导入后指定的所有类、函数和变量,或者如果您指定*: 从随机导入* 对于范围(15)内的i:
打印范围(3,13,3)

但请注意,这并不是很好地全部导入,最好只导入所需的类、函数和变量,以便在只需要randrange的情况下使用:

from random import randrange
for i in range(15):                     
    print randrange(3,13,3)
在使用“随机导入”的情况下,这意味着您需要导入模块,因此需要指定moduleName。当您想使用它时,请执行以下操作:

import random
for i in range(15):                     
    print random.randrange(3,13,3)

from random import*
从名为random的模块导入所有函数,但不导入
random
本身

在这里,您可以按如下方式直接随机调用函数:
randrange(3,13,3)
,等等

import random
导入名称random,以后可以从中调用如下函数:
random.randrange(3,13,3)
,等等