Что я пытаюсь сделать: выполняя скрипт, мне нужно будет ввести два числа, и он их сравнит. Я хочу, чтобы меня спросили в общей сложности 3 раза. В первый раз я наберу 10 и 5, во второй раз 5 и 10 и в третий раз я наберу 10 и 10, чтобы получить все три возможных ответа.
Моя проблема с первым кодом: getnumbers()
вызывается внутри Checknumbers()
. Я хочу создавать функции и цикл и строго ТОЛЬКО выполнять функции внутри выделенного цикла, а не внутри другой функции.
Я хочу, чтобы все было чисто и без ссылки на какую-либо функцию внутри другой функции, я также не хочу использовать какие-либо глобальные переменные.
Я решил это с помощью класса, но я не совсем уверен, убиваю ли я язык или это обычная практика. Также я должен ссылаться на класс внутри функции checknumbers()
.
Первое решение:
def getnumbers():
x = input("Enter the X number: ")
y = input("Enter the Y number: ")
return x, y
def checknumbers():
x, y=getnumbers()
if x > y:
print(f'x is larger then y: x is {x} and y is {y}')
elif y > x:
print(f"y is larger then x: x is {x} and y is {y}")
elif y == x:
print(f"x is equal to y: x is {x} and y is {y}")
else:
print("Dont know mate")
n = 0
while(n < 3):
checknumbers()
n += 1
Это вариант с классом:
class ui:
x = input("Enter the X number: ")
y = input("Enter the Y number: ")
def checknumbers():
if ui.x > ui.y:
print(f'x is larger then y: x is {ui.x} and y is {ui.y}')
elif ui.y > ui.x:
print(f"y is larger then x: x is {ui.x} and y is {ui.y}")
elif ui.y == ui.x:
print(f"x is equal to y: x is {ui.x} and y is {ui.y}")
else:
print("Dont know mate")
n = 0
while(n < 3):
checknumbers()
n += 1
Идеальное решение, так что обе функции getnumbers()
и checknumbers
начисто независимы друг от друга, и они вызываются внутри цикла while, проблема в том, что x и y из функции getnumbers()
неизвестны checknumbers
.
Требование: у меня не может быть ссылки на какую-либо другую функцию внутри моих функций, как мне передать x и y без ссылки на них?:
def getnumbers():
x = input("Enter the X number: ")
y = input("Enter the Y number: ")
return x, y
def checknumbers():
if x > y:
print(f'x is larger then y: x is {x} and y is {y}')
elif y > x:
print(f"y is larger then x: x is {x} and y is {y}")
elif y == x:
print(f"x is equal to y: x is {x} and y is {y}")
else:
print("Dont know mate")
n = 0
while(n < 3):
getnumbers()
checknumbers()
n += 1