Вы делаете частую ошибку.
1- Вы создали две функции check()
и compare()
, и вы работаете с x и y в обеих из них. Но любая переменная, которая определена в функции, имеет область видимости только в этой функции. Таким образом, вы можете использовать x и y только в функции проверки, поскольку они определены там. Чтобы использовать переменные в нескольких функциях, вы можете объявить их как глобальные. Затем к переменным можно получить доступ из любой функции.
2- Другая ошибка заключается в том, что вы передаете x и y в качестве аргументов для функции сравнения, но поскольку x и y доступны только для проверки, поэтому выдает ошибку. Я удалил аргументы и вместо этого работал с глобальным подходом.
См. Код ниже:
from sys import exit
def main():
check()
compare()
def check():
#initialising x and y as global
global x, y
# prompt user for two numbers
x = input("x: ")
y = input("y: ")
# apply sanity check
if x.isnumeric() == False and y.isnumeric() == False:
print("Usage: only real numbers are accepted.")
exit(1)
else:
return x, y
def compare():
global x, y
if x < y:
return print("x is smaller than y")
elif x > y:
return print("x is greater than y")
else:
return print("They are the same!")
main()
Результат для x = 5 и y = 3 в качестве тестового примера -
x is greater than y