2017-08-24 90 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)'。

相關問題