2017-08-14 15 views
-3

変数idnumは、複数の関数から呼び出すことができます(ユーザーが番号を入力し、必要に応じてプログラムが取得するようにします)。私は以下のコードを試してみましたが、エラーメッセージを思い付く:変化するニーズは何後での使用と検証のための変数の保存

TypeError: unorderable types: function() > int() 

は、コードが動作し、入力を検証できるようにします。

idnum= "" 

def idnum(): 
    idnum = int(input("Enter the id number of who you want to edit: ")) 
    edit() 


def again(): 
    edit() 

def edit_info(): 
     print() 
     print() 
     print ("Select what you want to edit") 
     edit_menu() 

def edit(): 
    num_lines = sum(1 for line in open('Surname')) 
    print() 
    if idnum > num_lines or idnum ==0 or idnum < 0: 
     print("Not valid") 
     time.sleep(0.5) 
     print("Try again") 
     time.sleep(0.2) 
     again() 
    else: 
     print() 
     for file in ["Forename", "Surname", "Email", "Date of birth", "Home address", "Home phone number", "Gender", "Tutor group"]: 
      with open(file) as f: 
       print(f.readlines()[idnum-1], end='') 

IDNUM()

+0

同じ名前の関数と変数を使用することはできません。 'idnum'を文字列変数に代入し、' idnum'という関数を定義します。後で 'idnum'が使用されているとき、コードはエラーの直接の原因である文字列変数ではなく、' idnum'関数を参照します。 – vealkind

答えて

0

は、あなたのコード内で同じ関数名や変数名を持つように練習してはならないglobal idnum = idnum = int(input("Enter the id number of who you want to edit: "))

+0

それがなぜ役立つのか説明してみてください... – jwenting

0

を試してみてください。 このコードを実行するには、edit()関数で引数としてidnumを渡すようにプログラムを更新します。

def idnum(): 
    idnum = int(input("Enter the id number of who you want to edit: ")) 
    edit(idnum) 

def edit(idnum): 
    num_lines = sum(1 for line in open('Surname')) 
    print() 
    if idnum > num_lines or idnum ==0 or idnum < 0: 
    <Rest Code> 
関連する問題