2014-01-11 5 views
-1

다음 파이썬 코드가 있습니다.Python 2의 오류 함수

def nhap(a, b): 
    a = input("Enter number a: ") 
    b = input("ENter number b: ") 


def plus(a, b): 
    nhap(a, b) 
    print "Sum 2 so la: ", a + b 

def minus(a, b): 
    nhap(a, b) 
    print "Minus 2 so la: ", a - b 

def asterisk(a, b): 
    nhap(a, b) 
    print "Asterisk 2 so la: ", a*b 

def slash(a, b): 
    nhap(a, b) 
    print "Slash 2 so la: ", a/b 

def start(): 
    while True: 
     print "===================" 
     print "[0] Enter number" 
     print "[1] Sum" 
     print "[2] except" 
     print "[3] asterisk" 
     print "[4] slash" 
     print "[5] exit" 
     print "===================" 
     num = raw_input().strip() 
     if num == '0': 
     nhap(a, b) 
     elif num == '1': 
     cong(a, b) 
     elif num == '2': 
     tru(a, b) 
     elif num == '3': 
     nhan(a, b) 
     elif num == '4': 
     chia(a, b) 
     elif num == '5': 
     exit() 
start() 

프로그램을 실행하면 다음과 같은 결과가 나타납니다.

=================== 
[0] Enter number 
[1] Sum 
[2] except 
[3] asterisk 
[4] slash 
[5] exit 
=================== 
0 


Traceback (most recent call last): 

File "abc.py", line 46, in <module> 

start() 

File "abc.py", line 35, in start 

nhap(a, b) 

NameError: global name 'a' is not defined 
나는 기능 nhap() 제대로 두 숫자를 적용하고 올바른 수학 연산을 수행하기를 호출하는 방법을

?

+2

'start' 함수에는이 두 변수가 인스턴스화되어 있지 않습니다. – varnie

답변

0

nhapab이 표시됩니다. 참고로, ab을 허용하지 않지만 콘솔 입력에서 가져 와서 반환하십시오. 우리가 필요로하는 것은 튜플로 그것들을 반환하는 것입니다. 여기에 우리가 간다 :

#!/usr/bin/python 

def nhap(): 
    a = input("Enter number a: ") 
    b = input("ENter number b: ") 
    return (a, b) 

def plus(): 
    (a,b) = nhap() 
    print "Sum 2 so la: ", a + b 

def minus(): 
    (a, b) = nhap() 
    print "Minus 2 so la: ", a - b 

def asterisk(): 
    (a, b) = nhap() 
    print "Asterisk 2 so la: ", a*b 

def slash(): 
    (a, b) = nhap() 
    print "Slash 2 so la: ", a/b 

def start(): 
    while True: 

     print "Enter number" 
     print "===================" 
     print "[1] Sum" 
     print "[2] except" 
     print "[3] asterisk" 
     print "[4] slash" 
     print "[nother button] exit" 
     print "===================" 

     num = raw_input().strip()   
     if num == '1': 
      plus() 
     elif num == '2': 
      minus() 
     elif num == '3': 
      asterisk() 
     elif num == '4': 
      slash() 
     else: 
      exit() 
start() 

를 추가해야합니다 무엇/고정하십시오 nhap 기능에 비 숫자 입력을 처리. 나는 당신에게 그것을 남겼습니다.;)

+0

ok, 감사합니다 varnie – KevinKien

+0

@KevinKien은 지금 모든 것이 분류되어 있습니까? – varnie