平方“*args”的简单方法

Kώσ*_*δας -3 python arguments list

下面的代码打印 7+6+3 (=4) 的平方根。

import math

def notdist(*args):
    return math.sqrt(sum(args))
    
print(notdist(7,6,3))
Run Code Online (Sandbox Code Playgroud)

我想要这样的评论:

import math

def dist(*args):
    return math.sqrt(sum(args**2))
    
print(dist(7,6,3))
Run Code Online (Sandbox Code Playgroud)

用于计算距 O(0,0) 的距离,但这给出了错误:

** 或 pow() 不支持的操作数类型:“tuple”和“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
Run Code Online (Sandbox Code Playgroud)

但我想知道这是否是修改第一个代码的简单方法。类似于第二个代码,但正确。

提前致谢!

小智 5

也许里面有一个生成器表达式sum

def dist(*args):
    return math.sqrt(sum(x**2 for x in args))
Run Code Online (Sandbox Code Playgroud)