平方`*args`的简单方法
Easy way to square `*args`
下面的代码打印 7+6+3 (=4) 的平方根。
import math
def notdist(*args):
return math.sqrt(sum(args))
print(notdist(7,6,3))
我想要这样的评论:
import math
def dist(*args):
return math.sqrt(sum(args**2))
print(dist(7,6,3))
用于计算与 O(0,0) 的距离,但这给出了错误:
unsupported operand type(s) for ** or pow(): 'tuple' and 'int'
我知道我可以使用另一个代码,例如:
import math
def uglydist(*args):
s = 0
for i in range(len(args)):
s = s + args[i]**2
return math.sqrt(s)
print(uglydist(3,4)) # = 5
但我想知道修改第一个代码是否是一种简单的方法。类似于第二个代码,但正确。
提前致谢!
也许里面有一个生成器表达式 sum
:
def dist(*args):
return math.sqrt(sum(x**2 for x in args))
像这样使用 for
会更好,但我认为这也不是您想要的
import math
def NotSoGoodDist(*args):
s = 0
for i in args:
s = s + i**2
return math.sqrt(s)
print(NotSoGoodDist(3,4)) # = 5
下面的代码打印 7+6+3 (=4) 的平方根。
import math
def notdist(*args):
return math.sqrt(sum(args))
print(notdist(7,6,3))
我想要这样的评论:
import math
def dist(*args):
return math.sqrt(sum(args**2))
print(dist(7,6,3))
用于计算与 O(0,0) 的距离,但这给出了错误:
unsupported operand type(s) for ** or pow(): 'tuple' and 'int'
我知道我可以使用另一个代码,例如:
import math
def uglydist(*args):
s = 0
for i in range(len(args)):
s = s + args[i]**2
return math.sqrt(s)
print(uglydist(3,4)) # = 5
但我想知道修改第一个代码是否是一种简单的方法。类似于第二个代码,但正确。
提前致谢!
也许里面有一个生成器表达式 sum
:
def dist(*args):
return math.sqrt(sum(x**2 for x in args))
像这样使用 for
会更好,但我认为这也不是您想要的
import math
def NotSoGoodDist(*args):
s = 0
for i in args:
s = s + i**2
return math.sqrt(s)
print(NotSoGoodDist(3,4)) # = 5