2017-02-23 63 views
-1

我在我的智慧結束時爲什麼我無法停止使用我的代碼獲取錯誤。這是我堅持使用的代碼的一部分。目的是重複該功能,直到用戶輸入所需的信息。創建函數(myproject)並應用列表的縮進後,我無法再運行它。任何幫助,將不勝感激。縮進後調度和Ducktyping錯誤,未解決的引用

def myproject() : 

Joblist = [] 
employee1_dict = {'Title':'Blahblah', 'Vacation Days': 3} 
Joblist.append(employee1_dict) 

employee2_dict = {'Title':'blahblah2','Vacation Days': 5} 
Joblist.append(employee2_dict) 

print ('Welcome To Your Employee Vacation Request Portal!') 


def bagbag(prompt): 
    if prompt == employee1_dict ['Title']: 
     print ("Greetings blahblah!\nYou Have a Total of 3 days To Use") 
    else : 
     cashcash(prompt) 
def cashcash(prompt): 
    if prompt == employee2_dict ['Title']: 
     print ("Greetings blahblah2!\nYou have a Total Of 5 Days To Use") 
    else : 
     print ("I Do Not Recognize That Response(Please Remember I Am Case-Sensitive!) ") 
     myproject() 

prompt = raw_input('Please Enter Your Title\n') 
bagbag(prompt) 
+0

什麼,你得到的錯誤?一個堆棧跟蹤將是有益的Rickey – putonspectacles

回答

0

您的代碼有幾個問題。您正在爲每個員工標題創建一個字典,並將其放入一個大列表中,但您從不使用列表,而是手動訪問每個字典。我可以建議只使用一個字典作爲關鍵字,假期天作爲價值嗎?其次,你將可能的度假值硬編碼到代碼中。如果將來會有另一個組,則必須添加另一個字典和另一個檢查函數。使用單字典方法,您只需添加一個鍵值對。

最後,您要重複輸入過程,直到輸入有效的內容爲止。這需要一個循環,通過再次調用整個函數來進行遞歸。

由於您使用的是print()-功能,我假設您使用的是python3.x - 那裏沒有raw_input(),只有input()

舉個例子,你可以這樣做(我用了你原來的拼寫提示):

vacationDict = {'Blahblah':3, 
       'blahblah2':5} 

print('Welcome To Your Employee Vacation Request Portal!') 

while True: 
    prompt = input('Please Enter Your Title\n> ') 
    if prompt in vacationDict: 
     print("Greetings {}!\nYou Have a Total of {} days To Use".format(prompt, vacationDict[prompt])) 
     break 
    else: 
     print("I Do Not Recognize That Response (Please Remember I Am Case-Sensitive!)") 
+0

我現在使用2.7 ..而大列表的原因是單獨訪問字典,最終代碼將打印他們起飛的日子的估計總工資,但我不能通過這個最初的障礙。 –

+0

對於python 2.7,只需將'input'改回'raw_input'並調整'print'語句。我希望這是有幫助的,這樣你可以繼續你的項目。 –