Что я пытаюсь сделать: выполняя скрипт, мне нужно будет набрать два числа, и он сравнит их.Я хочу, чтобы меня спросили всего 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