2017-02-23 7 views
-1

私は自分のコードでエラーが発生するのを止めることができないのです。ここで私が抱えているコードの一部です。目的は、ユーザからの希望が入力されるまで機能を繰り返すことです。関数(myproject)を作成し、リストのインデントを適用した後、私はそれをもう動かすことができません。どんな助けもありがとう。ディスパッチとダックタイピングのエラー、インデント後の未解決の参照

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

コードにはいくつかの問題があります。あなたは各従業員のタイトルのための辞書を作成して大きなリストに入れますが、リストを使用することはなく、各辞書を手動でアクセスします。タイトルをキーにして1つの辞書だけを使用し、休暇日を価値として使用することをお勧めしますか?

第2に、可能な休暇の値をコードにハードコードします。将来別のグループがある場合は、別のdictと別のチェック機能を追加する必要があります。単一の方法では、1つのキーと値のペアを追加するだけで済みます。

最後に、有効なものが入力されるまで入力プロセスを繰り返す必要があります。これはループを呼び出し、関数全体を再度呼び出すことによって再帰を行います。

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を使用しています。大きなリストの理由は、別途dictにアクセスすることで、最終的にコードは、離陸する日の推定総額を印刷しますが、できませんでした。この最初のハードルを過ぎてください。 –

+0

Python 2.7では 'input'を' raw_input'に戻し、 'print'文を調整するだけです。私はこれがあなたのプロジェクトを続けるために役立つことを願っています。 –

関連する問題