2014-11-24 3 views
-1

Я просто новый для программирования и для домашней работы, мы должны были сделать денатурацию для двоичного конвертера для домашней работы, используя число, введенное пользователем. Когда я запускаю этот код я получаю следующее сообщение об ошибке:Python 3.4.2 IDLE: ошибка при определении 'denaryInput'

if denaryInput < 0: 
NameError: name 'denaryInput' is not defined 

Я не уверен, что я делаю неправильно, и любые ответы с благодарностью.

код используется:

"""We are asking the user for a number""" 

def getNumber(): 
    denaryInput = int(input("Please enter a number between 0 and 255: ")) 

"""We are validating the number""" 

def validateNumber(): 
    if denaryInput < 0: 
     print("Error: Number is too small, try again!" + " \n") 
     return False 
    elif denaryInput > 255: 
     print("Error: Number is too big, please try again!" + " \n") 
     return False 
    else: 
     return True 

def binaryNumber(): 
    result = [] 
    for number in range(8): 
     bit = denaryInput % 2 
     result.append(bit) 
     denaryInput = denaryInput // 2 
    result.reverse() 
    str1 = "".join(str(x)for x in result) 
    print (str1 + " \n")  

"""Now telling the computer to run the code above and in what order of operations""" 

def mainProgram(): 
    answer = getNumber() 
    validNum = validateNumber() 
    Binary = binaryNumber() 
    print("The binary equlivent for that number is " + Binary + " \n") 

mainProgram() 
+0

Эта переменная существует только в локальной области функции getNumber –

+0

Спасибо за вашу помощь, я получил ее сейчас – rskw00

ответ

0

Вы должны передать denaryInput от функции getnumber как часть вызова. Функция validatenumber нуждается в переданном в нее значении для фактической проверки. В каждой функции должны быть разные имена. т.д .:

def validateNumber(numIn): 
    if numIn < 0 

Кроме того, вы должны проверить число от функции getnumber

denaryInput = int(input("Please enter a number between 0 and 255: ")) 
if validateNumber(denaryInput): #returns true if number valid 
    Return denaryInput 

Наконец, двоичный это ключевое слово, и не должны появляться в главной функции.

Смежные вопросы