2017-08-26 6 views
-2

私のコードを定義されていないんなぜコード「変数」はエラーをスローが

def divide(x,y): 

    div = divmod(x,y) 
    return div 

query = input("Enter numbers separated with a comma to divide: ") 
divide(int(query.split(',')[0]),int(query.split(',')[1])) 
print(div) 

なぜそれがエラーを投げるん:

NameError: name 'div' is not defined. 
+2

それはそのスコープに存在しませんので。 –

+1

質問履歴で判断すると、しばらくPHPを使用していますか?それはまったく同じように機能します。詳細については、https://ideone.com/v8aRCN – Ryan

+0

をご覧ください。http://python-textbok.readthedocs.io/en/1.0/Variables_and_Scope.html – The4thIceman

答えて

1

divがローカル変数であり、かつローカルであるため、 divide関数に渡すので、他の場所では不明です。あなたはどちらか試すことができます。

  1. 印刷関数内の関数を呼び出す:

    def divide(x,y): 
        div = divmod(x,y) 
        return div 
    
    query = input("Enter numbers separated with a comma to divide: ") 
    print(divide(int(query.split(',')[0]),int(query.split(',')[1]))) 
    
  2. またはグローバル変数使用:divはローカル変数であるため

    def divide(x,y): 
        div = divmod(x,y) 
        return div 
    
    query = input("Enter numbers separated with a comma to divide: ") 
    div = divide(int(query.split(',')[0]),int(query.split(',')[1])) 
    print(div) 
    
+0

あなたが直接印刷を行うとき、関数divide()の目的を排除しないでしょうか? defを使用したい – X10nD

+0

いいえ、**あなた**ただ**印刷したいのではありません。後で使用する場合は、グローバル変数に格納する2番目の方法を使用します。 –

+0

2番目の方法ではグローバル変数を使用しません。これは、関数のローカル変数と同じ名前を持つ外部スコープ内の通常の変数です。 – mkrieger1

0

を関数divideの中にあり、グローバルバリアブルとしてアクセスしようとしていますe。

は、そのコードは次のようになります。

def divide(x,y): 
    div = divmod(x,y) 
    return div 

query = input("Enter numbers separated with a comma to divide: ") 
print(divide(int(query.split(',')[0]),int(query.split(',')[1]))) 
関連する問題