2017-08-24 52 views
-1

右,所以我工作的一个Python代码,我得到这种类型的错误,“类型错误:打印机()失踪3所需的位置参数:‘EMP2’,‘EMP3’和‘emp4’ “缺少3个所需位置参数的Python

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])) 

任何形式的帮助将不胜感激!

在for循环
+0

什么是员工的代码? – Kallz

+0

这就是我读了文件到 –

+0

请出示一个这样的元组的元组 - 这将是一件好事知道它是什么样子:) – MSeifert

回答

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

像你说员工是元组就像

案例1

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

注:当你迭代器来元组使用循环它给你一个雇佣E1或下一次E2等等

而且你的函数打印机有四个参数,你,唯一的一个参数“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)                         
+0

哦,是因为这样的话元组基本上重置自己。我能做些什么来使它工作? –

+0

@DangerousDaz检查案例2 – Kallz

+0

我现在遇到了一个问题,它说“TypeError:employeePrint()需要4个位置参数,但有5个被给出”我的元组有名字并且它们都是数字。任何想法如何我可以修复它? –

0

,你会在同一时间得到一个员工。所以这个函数只有一个参数。错误很明显,缺少3个参数。尝试直接传递员工进入功能

0

打印机方法需要4个参数,并在你的循环您只给一个。或者如果在循环中'emmp'是四个元素的列表。然后尝试调用像'printE(* emmp)'。

相关问题