Python 3.x Python 3.7-从用户定义的函数中获取意外的TypeError

Python 3.x Python 3.7-从用户定义的函数中获取意外的TypeError,python-3.x,dictionary,typeerror,Python 3.x,Dictionary,Typeerror,我从下面的代码片段中得到一个奇怪的类型错误。你们能帮我弄清楚这里出了什么问题吗?谢谢 xs = {'x': 1, 'y': 2, 'z': 0} ys = {'a': 3, 'b': 4, 'c': 5} def print_vector(x, y, z): print(f'<{x}, {y}, {z}>') print_vector(**xs) # <1, 2, 0> print_vector(**ys) # TypeError: print_vector()

我从下面的代码片段中得到一个奇怪的类型错误。你们能帮我弄清楚这里出了什么问题吗?谢谢

xs = {'x': 1, 'y': 2, 'z': 0}
ys = {'a': 3, 'b': 4, 'c': 5}
def print_vector(x, y, z):
    print(f'<{x}, {y}, {z}>')

print_vector(**xs) # <1, 2, 0>
print_vector(**ys) # TypeError: print_vector() got an unexpected keyword argument 'a'
xs={'x':1,'y':2,'z':0}
ys={'a':3,'b':4,'c':5}
def打印向量(x,y,z):
打印(f'')
打印向量(**xs)#
print_vector(**ys)#TypeError:print_vector()获得意外的关键字参数“a”

您的函数
print_vector()
需要名为
x
y
z
的参数。您的字典
ys
不包含这些键。一种解决方案是使函数更通用:

xs = {'x': 1, 'y': 2, 'z': 0}
ys = {'a': 3, 'b': 4, 'c': 5}

def print_vector(**kwargs):
    print('<{}, {}, {}>'.format(*kwargs.values()))

print_vector(**xs)
print_vector(**ys)
xs={'x':1,'y':2,'z':0}
ys={'a':3,'b':4,'c':5}
def打印矢量(**kwargs):
打印(“”.format(*kwargs.values())
打印向量(**xs)
打印向量(**ys)
印刷品:

<1, 2, 0>
<3, 4, 5>


对于这种类型的东西来说,图像确实不是一种好的格式,我们无法复制和粘贴它。把代码放在你的问题中。另一方面,问题是你的第二本字典的键是a/b/c而不是x/y/z。这可能是一个简单的打字错误。所以问题应该结束了,除非这部分是你的意思,并且你认为它会起作用(如何?),谢谢你的助手和建议。