В коде есть лишнее и повторяющееся, почистил, получилось так.
Выход из бесконечного цикла при вводе EXIT
На сколько я могу понять, DEL должен отменять последнее действие. Но в таком исполнении будет отменено только последнее действие, повторный DEL уже будет давать пользователю отлуп. Для корректной работы с возможностью удаления всех действий нужно куда-то их сохранять.
a = float(input("Введите первое число: "))
c = ""
result = a
while True :
prec = c
c = input("Желаемое действие (+ - * / DEL EXIT): ")
if c=="EXIT" : break
if c!="DEL" : b = float(input("Введите следующее число: "))
if c == "/" and b==0 :
print("На ноль делить нельзя!")
continue
else:
print(str(result) + " "+ c + " " + str(b) + " = ")
if c == "+":
result = result + b
elif c == "-":
result = result - b
elif c == "*":
result = result * b
elif c == "/":
result = result / b
elif c == "DEL":
if prec == "+":
result = result - b
elif prec == "-":
result = result + b
elif prec == "*":
result = result / b
elif prec == "/":
result = result * b
elif prec == "DEL2":
print("Невозможно отменить действие")
c = "DEL2"
print(result)
print("Программа завершена. Последнее значение = "+str(result)