2014-11-04 2 views
0

Я пытаюсь создать небольшой фрагмент кода, который использует теорему pythagoras для вычисления длины гипотенузы треугольника и угла, противоположного высоте. Для этого пользователь должен ввести длину и ширину треугольника. Я хочу определить функцию, чтобы все это можно было назвать частью более крупной программы. Вот код:Определение функции Python с пользовательским вводом

def ex1() : 
    from math import sqrt, atan, degrees 
    print("""Hello, this is a program that will calculate the length of the 
    hypotenuse of a triangle given the width and height of the triangle. 
    It will also calculate the angle opposite the height and adjacent to the width. 
    """) 

    myWidth = float(input("Please input the width of the triangle: ")) 
    myHeight = float(input("Please input the height of the triangle: ")) 
    hyp = sqrt(((myWidth**2) + (myHeight**2))) 
    angle = degrees(atan(myHeight/myWidth)) 
    print("\nThe length of the hypotenuse is " + "%.1f" % hyp + " units") 
    print("\nThe size of the angle opposite the height and \nadjacent to the width is " + "%.1f" % angle + " degrees to 1 decimal place") 
    input = input("Press enter to end the program\n") 

Может кто-нибудь объяснить мне, что, когда я звоню, он выдает эту ошибку у меня:

UnboundLocalError: local variable 'input' referenced before assignment 

Заранее большое спасибо

+1

Какую версию python вы используете? Если его '3.x' и выше только тогда будут' input' работать. Не назначайте последнюю строку переменной (т.е. второй оператор 'input'. Если вы все еще хотите, используйте другую переменную – Beginner

+0

Это, это Python 3.3.2, поэтому я не могу определить несколько пользовательских входов? Хорошо, я попробую это с завершением программы. –

+0

Всегда избегайте использования ключевых слов python в качестве имени переменной. 'Input' - это ключевое слово, и это делает это большой нет, как выбор «переменной» – Beginner

ответ

2

Посмотреть эту строку здесь :?

input = ... 

См несколько строк выше, где вы вызываете функцию input()? Вы путаете компилятор. Используйте другое имя.

1

Проблема заключается в вашей последней строке, где вы назначаете значение переменной «input». См. Предыдущий вопрос SO: Local Variable Input

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