Home > OS >  For loop with if statement in Python (Solved)
For loop with if statement in Python (Solved)

Time:01-04

I am trying to create a basic calculator in Python. I wrote all codes but i can not figure out to operate these codes for loop. Basically, after the calculation user have to go back start point and calculate again. Where should i put the "for loop" for these case?

Also you have to know that, I'm a little new to all this. Thank you.

Here is my codes;

operation_list = [' ', '-', 'x', '/', '**', 'root']

op = input(f"{operation_list}""Choose an Operation"   ":")

if op == "**":
    num4= int(input("Enter the number you want to exponent:"))
    num3 = int(input("Enter exponent:"))
    print(num4, "**", num3, "=", num4 ** num3)
    
elif op == "root":
    num5= int(input("Enter the Number You Want to Root:"))
    print(num5,"'in" " root", "=", num5 ** 0.5)

elif op == " ":
    num1= int(input("Enter First Number:"))
    num2= int(input("Enter Second Number:"))
    print(num1, " ", num2, "=", num1   num2)
    
elif op == "-":
    num1= int(input("Enter First Number:"))
    num2= int(input("Enter Second Number:"))
    print(num1, "-", num2, "=", num1 - num2)
    
elif op == "x":
    num1= int(input("Enter First Number:"))
    num2= int(input("Enter Second Number:"))
    print(num1, "x", num2, "=", num1 * num2)
    
elif op == "/":
    num1= int(input("Enter First Number:"))
    num2= int(input("Enter Second Number:"))
    print(num1, "/", num2, "=", num1 / num2)
    
else:
    print("There is no such command. Please choose one of the following commands ( , -, x, /, **, root).")

Basically, after the calculation user have to go back start point and calculate again. Where should i put the "for loop" for these case?

Thank you for your answer @luk2302

I just added while True and working well now.

Here is the new codes;

operation_list = [' ', '-', 'x', '/', '**', 'root']

while True: op = input(f"{operation_list}""Choose an Operation" ":")

if op == "**":
    num4= int(input("Enter the number you want to exponent:"))
    num3 = int(input("Enter exponent:"))
    print(num4, "**", num3, "=", num4 ** num3)
    
elif op == "root":
    num5= int(input("Enter the Number You Want to Root:"))
    print(num5,"'in" " root", "=", num5 ** 0.5)

elif op == " ":
    num1= int(input("Enter First Number:"))
    num2= int(input("Enter Second Number:"))
    print(num1, " ", num2, "=", num1   num2)
    
elif op == "-":
    num1= int(input("Enter First Number:"))
    num2= int(input("Enter Second Number:"))
    print(num1, "-", num2, "=", num1 - num2)
    
elif op == "x":
    num1= int(input("Enter First Number:"))
    num2= int(input("Enter Second Number:"))
    print(num1, "x", num2, "=", num1 * num2)
    
elif op == "/":
    num1= int(input("Enter First Number:"))
    num2= int(input("Enter Second Number:"))
    print(num1, "/", num2, "=", num1 / num2)
    
else:
    print("There is no such command. Please choose one of the following commands ( , -, x, /, **, root).")

CodePudding user response:

You have multiple choice. If you want the user to do 3 calculations for example, you can use a for loop like this :

for i in range(3):
    op = input(f"{operation_list}""Choose an Operation"   ":")
    if op == " ":
        num1= int(input("Enter First Number:"))
        num2= int(input("Enter Second Number:"))
        print(num1, " ", num2, "=", num1   num2)
    else:
        print("There is no such command. Please choose one of the following commands ( , -, x, /, **, root).")

But if you want infinite calculations, you can use a while loop, but in this case I recommand to have a possibility to break the loop, by saying exit for example, like this :

while True:
    op = input(f"{operation_list}""Choose an Operation"   ":")
    if op == " ":
        num1= int(input("Enter First Number:"))
        num2= int(input("Enter Second Number:"))
        print(num1, " ", num2, "=", num1   num2)
    elif op == "exit":
        break
    else:
        print("There is no such command. Please choose one of the following commands ( , -, x, /, **, root).")

Note that I simplified your code for readability, but I let you adapt to your case.

  • Related