# Hello im trying to validate an character but cant get it to loop. cant think of the logic behind it. i hope you guys can help me

``````#calcu using if else

print("PYTHON CALCULATOR.\n")
while True:
try:
no1 = int(input("Please enter first integer: "))
no2 = int(input("Please enter second integer: "))
break
except ValueError:
print("Only numbers can be inputed.\n")

chc = input("Please enter an operation[+ , - , / , *]: ")

result = no1 + no2
print("Result: ",result)
def subt():
result = no1 - no2
print("Result: ",result)
def multi():
result = no1 * no2
print("Result: ",result)
def div():
result = no1 / no2
print("Result: ",result)

if chc == '+':
elif chc == '-':
subt()
elif chc == '*':
multi()
elif chc == '/':
div()
else:
print("Wrong Input. Try again.")

``````

Looks like your indentation is wrong, the second half of your code is not inside the loop

You’ve got this to ensure you get two integers:

`````` while True:
try:
no1 = int(input("Please enter first integer: "))
no2 = int(input("Please enter second integer: "))
break
except ValueError:
print("Only numbers can be inputed.\n")
``````

which is kind of neat.

But then you run through your checks below, which are ok in their way. But
if you want this to loop again (to ask for another pair of numbers) you
need an outer loop, eg:

`````` while True: # the outer loop
while True: # the loop just for 2 good inputs
try:
no1 = int(input("Please enter first integer: "))
no2 = int(input("Please enter second integer: "))
break
except ValueError:
print("Only numbers can be inputed.\n")
... all your other code, indented inside the outer loop ...
``````

BTW, we tend to define functions just once before their use, so I’d put
add the `def add()` etc functions before the loops.

Inside your functions the values no1 and no2 cannot be used.

They can, actually. Closures.

Change the function like this:

``````def add(no1, no2):
``````

but this is good advice anyway.

Yep, I know… so deleted the post.