我正在学习Python,现在我正在学习Python中的import语句。我正在测试一些代码,我遇到了一些不寻常的东西。这是我正在测试的代码。
from math import pow as power
import random as x
print(pow(2, 3))
print(power(2, 3))
print(x.randint(0, 5))
print(random.randint(0, 5))
我了解到,在Python中,您可以使用as
重新分配模块的名称,因此我将权力重新赋予权力。我希望pow(2, 3)
和power(2, 3)
输出完全相同的东西,因为我所做的就是更改名称。但是,pow(2, 3)
输出8
,这是一个整数,而power(2, 3)
输出8.0
,这是一个浮点数。那是为什么?
此外,我还导入了random
模块,并将其名称设置为x
。在pow和power的情况下,旧名称pow
和新名称power
都有效。但是使用此随机模块,只有新名称x
可用,而旧名称random
不起作用。 print(x.randint(0, 5))
有效,但random.randint(0, 5)
不起作用。为什么会这样?
任何人都可以向像我这样的Python新手解释为什么我的代码没有像我期望的那样工作?我正在使用Python版本3.62,如果有帮助的话。
答案 0 :(得分:4)
这是因为当您从数学导入pow
作为power
然后拨打pow
时,pow
就是pow
调用是内置函数,而不是数学模块中的random
。
对于x
,python中没有内置函数,因此您只能导入Welcome to Node-RED
===================
7 Aug 09:05:20 - [info] Node-RED version: v0.17.5
7 Aug 09:05:20 - [info] Node.js version: v6.11.2
7 Aug 09:05:20 - [info] Darwin 16.7.0 x64 LE
7 Aug 09:05:20 - [info] Loading palette nodes
7 Aug 09:05:21 - [warn] ------------------------------------------------------
7 Aug 09:05:21 - [warn] [rpi-gpio] Info : Ignoring Raspberry Pi specific node
7 Aug 09:05:21 - [warn] [synaptiq-solar] Error: Cannot find module 'xmlhttprequest'
7 Aug 09:05:21 - [warn] ------------------------------------------------------
7 Aug 09:05:21 - [info] Settings file : /Users/rudi/.node-red/settings.js
7 Aug 09:05:21 - [info] User directory : /Users/rudi/.node-red
7 Aug 09:05:21 - [info] Flows file : /Users/rudi/.node-red/flows_Rudi.local.json
7 Aug 09:05:21 - [info] Server now running at http://127.0.0.1:1880/
7 Aug 09:05:21 - [info] Waiting for missing types to be registered:
7 Aug 09:05:21 - [info] - synaptiq-solar
。
战斗机内置功能documentation
答案 1 :(得分:0)
当你使用pow时,你实际上正在使用内置的pow功能。
但没有内置函数称为随机因此它不起作用
通常在python中如果你使用'as',你只能使用你导入它的模块而不是它最初被称为