Как начать новую операцию в Python

#python #calculator #new-operator #calculation

Вопрос:

Итак, у меня есть простой калькулятор на Python. Итак, что он делает, запрашивает операцию (например, сложение) и запрашивает первое число и второе число.

Допустим, я выбираю дополнение,

первый номер: 1

второе число: 1

результат: 2

И после этого я хочу, чтобы он спросил: введите {x}, чтобы начать новый расчет

Когда вы вводите x, он в основном перезапускает все, чтобы вы могли выполнить другой расчет. ( {x} может быть все, что я не возражаю)

Как мне это сделать?

текущий код:

 print("Which operation do you want to do?") print("Type   for addition") print("Type - for subtraction") print("Type * for multiplication") print("Type / for division")  op = input('Enter your choice here = ')   if op == ' ' :  num1 = float(input("Enter the first number: "))  num2 = float(input("Enter the second number here: "))  add = num1   num2   print("{0}   {1} is {2}".format(num1, num2, add))   elif op == '-' :  num1 = float(input("Enter the first number here: "))  num2 = float(input("Enter the second number here: "))  sub = num1 - num2   print("{0} - {1} is {2}".format(num1, num2, sub))   elif op == '*' :  num1 = float(input("Enter the first number here: "))  num2 = float(input("Enter the second number here: "))  multi = num1 * num2   print("{0} * {1} is {2}".format(num1, num2, multi))   elif op == '/' :  num1 = float(input("Enter the first number here: "))  num2 = float(input("Enter the second number here: "))  division = num1 / num2   print("{0} / {1} is {2}".format(num1, num2, division))   else :  print("something went wrong!")  

Комментарии:

1. используйте while True цикл вокруг всех ваших операций. И сломайте его, если будет нажато что-то другое, кроме x

Ответ №1:

вы можете поместить код внутри функции, а затем вызвать функцию в цикле while, второй ввод again используется для прерывания цикла, как только пользователь закончит

 print("Which operation do you want to do?") print("Type   for addition") print("Type - for subtraction") print("Type * for multiplication") print("Type / for division")   def function(op):  if op == ' ' :  num1 = float(input("Enter the first number: "))  num2 = float(input("Enter the second number here: "))  add = num1   num2    print("{0}   {1} is {2}".format(num1, num2, add))      elif op == '-' :  num1 = float(input("Enter the first number here: "))  num2 = float(input("Enter the second number here: "))  sub = num1 - num2    print("{0} - {1} is {2}".format(num1, num2, sub))      elif op == '*' :  num1 = float(input("Enter the first number here: "))  num2 = float(input("Enter the second number here: "))  multi = num1 * num2    print("{0} * {1} is {2}".format(num1, num2, multi))      elif op == '/' :  num1 = float(input("Enter the first number here: "))  num2 = float(input("Enter the second number here: "))  division = num1 / num2    print("{0} / {1} is {2}".format(num1, num2, division))      else:  print("something went wrong!")  while True:  op = input('Enter your choice here = ')  function(op)  again = input('Enter X to start new calculation: ')  if again.lower() != 'x':  break  

Ответ №2:

 while True:  print("Which operation do you want to do?")  print("Type   for addition")  print("Type - for subtraction")  print("Type * for multiplication")  print("Type / for division")  print("Type 0 to exit")   op = input('Enter your choice here = ')   if op == ' ' :  while True:  num1 = float(input("Enter the first number: "))  num2 = float(input("Enter the second number here: "))  add = num1   num2  print("{0}   {1} is {2}".format(num1, num2, add))   again = input("Would you like to add two other numbers? Y/N: ").capitalize().strip()  if again == 'Y':  continue  else:  break    elif op == '-' :  while True:  num1 = float(input("Enter the first number here: "))  num2 = float(input("Enter the second number here: "))  sub = num1 - num2  print("{0} - {1} is {2}".format(num1, num2, sub))  again = input("Would you like to subtract two other numbers? Y/N: ").capitalize().strip()  if again == 'Y':  continue  else:  break    elif op == '*' :  while True:  num1 = float(input("Enter the first number here: "))  num2 = float(input("Enter the second number here: "))  multi = num1 * num2  print("{0} * {1} is {2}".format(num1, num2, multi))  again = input("Would you like to multiply two other numbers? Y/N: ").capitalize().strip()  if again == 'Y':  continue  else:  break    elif op == '/' :  while True:  num1 = float(input("Enter the first number here: "))  num2 = float(input("Enter the second number here: "))  division = num1 / num2  print("{0} / {1} is {2}".format(num1, num2, division))  again = input("Would you like to divide two other numbers? Y/N: ").capitalize().strip()  if again == 'Y':  continue  else:  break   elif op == '0':  print("Good bye!")  break  else :  print("something went wrong!")  

Ответ №3:

Для этого вы можете использовать цикл while. Используйте логическую переменную repeat, чтобы решить, хочет ли пользователь выполнить еще одно вычисление. Если пользователь вводит «x», повторение остается верным, и калькулятор перезапускается, но если пользователь вводит что-либо еще, повторение будет ложным, и цикл завершится:

 repeat = True while repeat:  #Your code here  again = input('type x to start new calculation')  repeat = again in ['x', 'X']