The code below prints the square root of 7 6 3 (=4).
import math
def notdist(*args):
return math.sqrt(sum(args))
print(notdist(7,6,3))
I want somenting like this:
import math
def dist(*args):
return math.sqrt(sum(args**2))
print(dist(7,6,3))
for calculating the distance from O(0,0), but this is giving the error:
unsupported operand type(s) for ** or pow(): 'tuple' and 'int'
I know that I can use another code like:
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
but I 'm wondering if it is an easy way to modify the first code. Something like the second code, but correct.
Thanks in advance!
CodePudding user response:
Perhaps with a generator expression inside sum
:
def dist(*args):
return math.sqrt(sum(x**2 for x in args))
CodePudding user response:
using the for
like this would be better, but I think this too isn't what you wanted
import math
def NotSoGoodDist(*args):
s = 0
for i in args:
s = s i**2
return math.sqrt(s)
print(NotSoGoodDist(3,4)) # = 5