缺少3个必需的位置参数Python

时间:2017-08-24 05:18:59

标签: python tuples typeerror

是的,所以我正在处理一个python代码,我得到这个类型的错误," TypeError:printE()缺少3个必需的位置参数:' emp2',' emp3'和' emp4'"

for emmp in employee:
    print(printE(emmp))

def printE(emp1, emp2, emp3, emp4):

    emp1 = "{}, {}, {}, {}".format(emp1[0], ' '.join(emp1[1:-2]))
    emp2 = "{}, {}, {}, {}".format(emp2[1], ' '.join(emp2[2:-3]))
    emp3 = "{}, {}, {}, {}".format(emp3[2], ' '.join(emp3[3]))
    emp4 = "{}, {}, {}, {}".format(emp4[3], ' '.join(emp4[0:-1]))
    print("{:10s} {:15s} {:5s} {:15s}".format(emp4[0], emp1[1], emp2[2], emp3[3]))

非常感谢任何形式的帮助!

3 个答案:

答案 0 :(得分:1)

for emmp in employee:
    print(printE(emmp))

正如你所说,员工就像元素一样

案例1

employee = ('E1','E2'.....)

注意:当您使用for循环对元组进行迭代时,它会让您单独使用 E1 或下次 E2 等等

你的函数 printE 需要四个参数,你用唯一的参数'E1'或下次'E2'来调用它。

因此,它会给你错误,即剩下的参数缺失。

案例2

如果员工是元组的元组,那么看看这个例子

employee = (('E1',10,"b10",20),('E1',10,"b10",20))

def printE(emp1, emp2, emp3, emp4):
    """ do what ever you want to do with param meters """

    return emp1 ,emp2 ,emp3, emp4

for emmp in employee:
    print(printE(*emmp))

<强>输出

('E1', 10, 'b10', 20)                                                                                                   

('E1', 10, 'b10', 20)                                                                                                   

答案 1 :(得分:0)

在for循环中,您将一次获得一名员工。所以函数只得到一个参数。错误很明显,缺少3个参数。尝试将员工直接传递给函数

答案 2 :(得分:0)

printE方法接受4个参数,在你的循环中你只给出一个参数。或者如果在循环中使用emmp&#39;是四个要素的清单。然后尝试调用&#39; printE(* emmp)&#39;。