是的,所以我正在处理一个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]))
非常感谢任何形式的帮助!
答案 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;。