133 lines
5.3 KiB
Python
133 lines
5.3 KiB
Python
def main():
|
||
print("Welcome to the Calculator")
|
||
command = input("Select command: [ + ] [ - ] [ * ] [ / ] \nНапишите exit если хотите выйти\n")
|
||
match command: #выбор команд
|
||
case "+":
|
||
summ()
|
||
case "*":
|
||
multiplication()
|
||
case "-":
|
||
minus()
|
||
case "/":
|
||
division()
|
||
case "exit":
|
||
exit
|
||
case _:
|
||
print(KeyError("Incorrect"))
|
||
main()
|
||
def summ(total=None):
|
||
print("Enter number(s) to summ, enter spase to finish calculating")
|
||
if total is None:
|
||
try:
|
||
total = float(input("Enter First number \n"))
|
||
except ValueError:
|
||
print("Enter a valid number")
|
||
return
|
||
while True:
|
||
num_input = input("Enter numbers to summ or change command [ + ] [ - ] [ * ] [ / ]\n")
|
||
if num_input == " " or num_input == "":
|
||
print(total)
|
||
main()
|
||
if num_input in ["+", "-", "*", "/"]:
|
||
if num_input == "+":
|
||
return summ(total)
|
||
elif num_input == "-":
|
||
return minus(total)
|
||
elif num_input == "*":
|
||
return multiplication(total)
|
||
elif num_input == "/":
|
||
return division(total)
|
||
try:
|
||
number = float(num_input)
|
||
total += number
|
||
print(f"Total summ = {total}")
|
||
except ValueError:
|
||
print("Error, enter correct number")
|
||
def minus(total=None): #даём функции на первом запуске total = None чтобы присвоить ей значение первого введёного числа, чтобы не было -5 в минусе на первом вводе
|
||
print("Enter number(s) to summ, enter spase to finish calculating")
|
||
if total is None:
|
||
try:
|
||
total = float(input("Enter First number \n")) #присваивамем тоталу первое число
|
||
except ValueError:
|
||
print("Enter a valid number")
|
||
return
|
||
while True: #цикл программы с переключением функций
|
||
num_input = input("Enter numbers to minus or change command [ + ] [ - ] [ * ] [ / ]\n")
|
||
if num_input == " " or num_input == "": #завершение при эксите
|
||
print(total)
|
||
main()
|
||
if num_input in ["+", "-", "*", "/"]: #переключение команд
|
||
if num_input == "+":
|
||
return summ(total)
|
||
elif num_input == "-":
|
||
return minus(total)
|
||
elif num_input == "*":
|
||
return multiplication(total)
|
||
elif num_input == "/":
|
||
return division(total)
|
||
try: #трай для защиты от ввода, чтобы программа не завершалась
|
||
number = float(num_input) #преобразование строки в число
|
||
total -= number #отнимаем число
|
||
print(f"Total minus = {total}") #вывод
|
||
except ValueError:
|
||
print("Error, enter correct number")
|
||
def multiplication(total=None):
|
||
print("Enter number(s) to multuplicate, enter spase to finish calculating")
|
||
print("Enter number(s) to summ, enter spase to finish calculating")
|
||
if total is None:
|
||
try:
|
||
total = float(input("Enter First number \n"))
|
||
except ValueError:
|
||
print("Enter a valid number")
|
||
return
|
||
while True:
|
||
num_input = input("Enter numbers to multiplicate or change command [ + ] [ - ] [ * ] [ / ]\n")
|
||
if num_input == " " or num_input == "":
|
||
print(total)
|
||
main()
|
||
if num_input in ["+", "-", "*", "/"]:
|
||
if num_input == "+":
|
||
return summ(total)
|
||
elif num_input == "-":
|
||
return minus(total)
|
||
elif num_input == "*":
|
||
return multiplication(total)
|
||
elif num_input == "/":
|
||
return division(total)
|
||
try:
|
||
number = float(num_input)
|
||
total *= number
|
||
print(f"Total multiplication = {total}")
|
||
except ValueError:
|
||
print("Error, enter correct number")
|
||
def division(total=None):
|
||
print("Enter number(s) to summ, enter spase to finish calculating")
|
||
if total is None:
|
||
try:
|
||
total = float(input("Enter First number \n"))
|
||
except ValueError:
|
||
print("Enter a valid number")
|
||
return
|
||
while True:
|
||
num_input = input("Enter numbers to division or change command [ + ] [ - ] [ * ] [ / ]\n")
|
||
if num_input == " " or num_input == "":
|
||
print(total)
|
||
main()
|
||
if num_input in ["+", "-", "*", "/"]:
|
||
if num_input == "+":
|
||
return summ(total)
|
||
elif num_input == "-":
|
||
return minus(total)
|
||
elif num_input == "*":
|
||
return multiplication(total)
|
||
elif num_input == "/":
|
||
return division(total)
|
||
try:
|
||
number = float(num_input)
|
||
total /= number
|
||
print(f"Total division = {total}")
|
||
except ValueError:
|
||
print("Error, enter correct number")
|
||
|
||
if __name__ == "__main__":
|
||
main() #запуск функции main, основа программы |