ISPr32/calc.py
2025-11-27 09:49:58 +00:00

133 lines
5.3 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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, основа программы