python中pow如何使用内置调用?

Python (171) 2023-05-09 23:41:00

我们在用函数调用的时候一般是要考虑函数的返回值,其次就是参数的问题。相信经过之前几篇参数文章的讲解,大部分小伙伴已经对参数不陌生了。那么今天我们就来讲讲常见返回值的问题。这里以pow函数的调用为例,在学习使用方法的同时,我们会试着找寻内置调用返回值得结果以及进行结果分析。

pow() 方法返回 xy(x 的 y 次方) 的值。

math 模块 pow() 方法的语法:

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
importmath
math.pow(x,y)
importmath math.pow(x,y)
importmath
math.pow(x,y)

内置的 pow() 方法:

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
pow(x,y[,z])
pow(x,y[,z])
pow(x,y[,z])

函数是计算 x 的 y 次方,如果 z 在存在,则再对结果进行取模,其结果等效于 pow(x,y) %z。

注意:pow() 通过内置的方法直接调用,内置方法会把参数作为整型,而 math 模块则会把参数转换为 float。

举例:

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
#pow(base,exp[,mod])
#powpowerexpexponentmodmodule
#返回base的exp次幂;如果mod存在,则返回base的exp次幂对mod取余(比pow(base,exp)%mod更高效)。两参数形式pow(base,exp)等价于乘方运算符:base**exp。
#返回base的exp次幂;
print(f'{pow(2,3)=}')
print(f'{pow(10,2)=}')
#两参数形式pow(base,exp)等价于乘方运算符:base**exp。
print(f'{2**3=}')
print(f'{10**2=}')
#如果mod存在,则返回base的exp次幂对mod取余(比pow(base,exp)%mod更高效)
#如果mod存在,会使用快速幂取模的算法来取模
importtime
start=time.time()
print(f'{pow(1234,1234567,67)=}')
end=time.time()
print(f'耗时:{end-start=}')
#start=time.time()
#print(f'{pow(1234,1234567)%67=}')
#end=time.time()
#print(f'耗时:{end-start=}')
#
#参数必须具有数值类型。对于混用的操作数类型,则将应用双目算术运算符的类型强制转换规则。对于int操作数,结果具有与操作数相同的类型(强制转换后),除非第二个参数为负值;在这种情况下,所有参数将被转换为浮点数并输出浮点数结果。例如,10**2返回100,但10**-2返回0.01。
#参数必须具有数值类型
#print(f'{pow(2,"3")=}')
#对于混用的操作数类型,则将应用双目算术运算符的类型强制转换规则。
print(f'{pow(2.0,3)=}')
#对于int操作数,结果具有与操作数相同的类型(强制转换后),除非第二个参数为负值;在这种情况下,所有参数将被转换为浮点数并输出浮点数结果。
print(f'{pow(2,3)=}')
print(f'{pow(2,-3)=}')
#
#对于int操作数base和exp,如果给出mod,则mod必须为整数类型并且mod必须不为零。如果给出mod并且exp为负值,则base必须相对于mod不可整除。在这种情况下,将会返回pow(inv_base,-exp,mod),其中inv_base为base的倒数对mod取余。
#
#对于int操作数base和exp,如果给出mod,则mod必须为整数类型并且mod必须不为零。
#print(f'{pow(2,3,0)=}')
#下面的例子是38的倒数对97取余:
#
#>>>
#>>>pow(38,-1,mod=97)
#23
#>>>23*38%97==1
#True
#在3.8版更改:对于int操作数,三参数形式的pow现在允许第二个参数为负值,即可以计算倒数的余数。
#
#在3.8版更改:允许关键字参数。之前只支持位置参数。
#pow(base,exp[,mod]) #powpowerexpexponentmodmodule #返回base的exp次幂;如果mod存在,则返回base的exp次幂对mod取余(比pow(base,exp)%mod更高效)。两参数形式pow(base,exp)等价于乘方运算符:base**exp。 #返回base的exp次幂; print(f'{pow(2,3)=}') print(f'{pow(10,2)=}') #两参数形式pow(base,exp)等价于乘方运算符:base**exp。 print(f'{2**3=}') print(f'{10**2=}') #如果mod存在,则返回base的exp次幂对mod取余(比pow(base,exp)%mod更高效) #如果mod存在,会使用快速幂取模的算法来取模 importtime start=time.time() print(f'{pow(1234,1234567,67)=}') end=time.time() print(f'耗时:{end-start=}') #start=time.time() #print(f'{pow(1234,1234567)%67=}') #end=time.time() #print(f'耗时:{end-start=}') # #参数必须具有数值类型。对于混用的操作数类型,则将应用双目算术运算符的类型强制转换规则。对于int操作数,结果具有与操作数相同的类型(强制转换后),除非第二个参数为负值;在这种情况下,所有参数将被转换为浮点数并输出浮点数结果。例如,10**2返回100,但10**-2返回0.01。 #参数必须具有数值类型 #print(f'{pow(2,"3")=}') #对于混用的操作数类型,则将应用双目算术运算符的类型强制转换规则。 print(f'{pow(2.0,3)=}') #对于int操作数,结果具有与操作数相同的类型(强制转换后),除非第二个参数为负值;在这种情况下,所有参数将被转换为浮点数并输出浮点数结果。 print(f'{pow(2,3)=}') print(f'{pow(2,-3)=}') # #对于int操作数base和exp,如果给出mod,则mod必须为整数类型并且mod必须不为零。如果给出mod并且exp为负值,则base必须相对于mod不可整除。在这种情况下,将会返回pow(inv_base,-exp,mod),其中inv_base为base的倒数对mod取余。 # #对于int操作数base和exp,如果给出mod,则mod必须为整数类型并且mod必须不为零。 #print(f'{pow(2,3,0)=}') #下面的例子是38的倒数对97取余: # #>>> #>>>pow(38,-1,mod=97) #23 #>>>23*38%97==1 #True #在3.8版更改:对于int操作数,三参数形式的pow现在允许第二个参数为负值,即可以计算倒数的余数。 # #在3.8版更改:允许关键字参数。之前只支持位置参数。
#pow(base,exp[,mod])

#powpowerexpexponentmodmodule

#返回base的exp次幂;如果mod存在,则返回base的exp次幂对mod取余(比pow(base,exp)%mod更高效)。两参数形式pow(base,exp)等价于乘方运算符:base**exp。

#返回base的exp次幂;
print(f'{pow(2,3)=}')
print(f'{pow(10,2)=}')
#两参数形式pow(base,exp)等价于乘方运算符:base**exp。
print(f'{2**3=}')
print(f'{10**2=}')
#如果mod存在,则返回base的exp次幂对mod取余(比pow(base,exp)%mod更高效)
#如果mod存在,会使用快速幂取模的算法来取模
importtime
start=time.time()
print(f'{pow(1234,1234567,67)=}')
end=time.time()
print(f'耗时:{end-start=}')
#start=time.time()
#print(f'{pow(1234,1234567)%67=}')
#end=time.time()
#print(f'耗时:{end-start=}')
#
#参数必须具有数值类型。对于混用的操作数类型,则将应用双目算术运算符的类型强制转换规则。对于int操作数,结果具有与操作数相同的类型(强制转换后),除非第二个参数为负值;在这种情况下,所有参数将被转换为浮点数并输出浮点数结果。例如,10**2返回100,但10**-2返回0.01。

#参数必须具有数值类型
#print(f'{pow(2,"3")=}')
#对于混用的操作数类型,则将应用双目算术运算符的类型强制转换规则。
print(f'{pow(2.0,3)=}')
#对于int操作数,结果具有与操作数相同的类型(强制转换后),除非第二个参数为负值;在这种情况下,所有参数将被转换为浮点数并输出浮点数结果。
print(f'{pow(2,3)=}')
print(f'{pow(2,-3)=}')
#
#对于int操作数base和exp,如果给出mod,则mod必须为整数类型并且mod必须不为零。如果给出mod并且exp为负值,则base必须相对于mod不可整除。在这种情况下,将会返回pow(inv_base,-exp,mod),其中inv_base为base的倒数对mod取余。
#

#对于int操作数base和exp,如果给出mod,则mod必须为整数类型并且mod必须不为零。
#print(f'{pow(2,3,0)=}')

#下面的例子是38的倒数对97取余:
#
#>>>
#>>>pow(38,-1,mod=97)
#23
#>>>23*38%97==1
#True
#在3.8版更改:对于int操作数,三参数形式的pow现在允许第二个参数为负值,即可以计算倒数的余数。
#
#在3.8版更改:允许关键字参数。之前只支持位置参数。

以上就是python中pow函数使用内置调用的方法,最后对于参数的输出和math有所不同,这点需要引起大家的注意。

THE END

发表回复