2017-10-04 15 views
0

私は2つの答えを比較しようとしています。質問の答えが "e"なら、CheckID関数を呼び出す必要があります。いくつかの情報。私はデータベースに接続することができますが、質問に答えると関数を呼び出さないという問題があり、「e」が定義されていないことがわかります!私はe = CheckID()を追加して定義しようとしましたが、まだ関数を呼び出さない。私はそれを達成するのに役立つか、私は私が間違って答えを比較して関数を呼び出す場合は、

をやって教えてくださいここに私のコードです:ここでは

import psycopg2 
import psycopg2.extras 

question = input("Type 'e' to Check Existing Id, or 'a' to add Account Id ? ") 

if question == 'e': 
    CheckID() 

else: 
    AddID() 


def CheckID(): 

    acc = input("Type ID ") 

    conn = psycopg2.connect(database="", user = "", password = "", host = "", port = "") 
    cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor) 
    cur.execute('select "AccountID","Zip" from "Account" where "AccountID" = %s', (acc,)) 

    ans =cur.fetchall() 
    ans1 = {} 

    for AccountID in ans: 

     if len(Zip) != 3:  
      Zip = '111' 
      print(AccountID, Zip) 


     else: 
      print(AccountID, Zip) 

def AddID(): 
    print "Thank you for using our script" 

ask() 

はで述べたように、私は

enter code here Type 'e' to Check Existing Id, or 'a' to add Account Id ? e 
Traceback (most recent call last): 
    File "final7.py", line 4, in <module> 
    question = input("Type 'e' to Check Existing Id, or 'a' to add Account Id ? ") 
    File "<string>", line 1, in <module> 
NameError: name 'e' is not defined 
+0

ファイルをPython 2で実行しています。ここで 'input()'は 'eval(raw_input(...)) 'と同じです。プログラムを次のように実行してください: 'python3 final7.py' – TerryA

+0

ありがとう、うまくいきました。 raw_inputに変更して、質問の上に関数を配置した後!もう一度ありがとうございます – user3184562

答えて

0

あなたの問題は、あなたが使用しているどのPythonのバージョンに存在します。私はPython 3.6で動作し、コードは適切に動作しました。 Pythonの2.xでは、

input 

は、だから3.6でコードを実行したり、あなたの "入力" を "raw_input" を更新

raw_input 

と定義しました。

+0

ありがとう、ありがとう。 – user3184562

0

を得ているエラーですPython 2では、input()eval(raw_input(...))と同じです。Python 2では、input()eval(raw_input(...))と同じです。

は、次のようなプログラムを実行します。python3 final7.py

+0

ありがとうございます。うん、それは働いた – user3184562

関連する問題