Таким образом, назначение состоит в том, чтобы представить, что python не имеет! = Встроенный, и написать функцию not_equal, которая принимает два параметра и дает тот же результат, что и оператор! =.Определение функции not_equal в Python
я написал ситемы следующий код:
def not_equal(x, y):
if x == 0 or y == 0: #avoid error message for dividing by 0
if ((y+1)/(x+1)) == 1:
equal = False
elif x/y == 1:
equal = False
else:
equal = True
return equal
и испытаны следующие случаи испытаний:
print not_equal(3, 4)
print not_equal(5, 5)
print not_equal(0, 3)
print not_equal(4, 0)
Первые две работы, но второй два дают мне следующее сообщение об ошибке:
Traceback (most recent call last):
File "/Users/dvanderknaap/Desktop/My Python Programs/hw2.py", line 73, in <module>
print not_equal(0, 3)
File "/Users/dvanderknaap/Desktop/My Python Programs/hw2.py", line 67, in not_equal
return equal
UnboundLocalError: local variable 'equal' referenced before assignment
Почему?
Посмотрите на вложенном, если и вставить ваши номера там и проверить, что они производят. – TidB
Подумайте о x = -1, y = 0. – Alex
Кроме того, будьте осторожны: на python2.x (который, по-видимому, используется вашими операторами печати), '3/2 == 1 # True', но' not_equal', вероятно, скажет «False» в этом случае :-). – mgilson