2017-02-23 59 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'语句。我希望这是有帮助的,这样你可以继续你的项目。 –