Почему не происходит выход из цикла в python 3.8.0?
Да, дружище, это не Паскаль
Подумай, с чем ты сравниваешь переменную 'c'? Не с ДА или YES, а с результатом логической операции or
т.е. твоё ('Да') or ('да') всегда вернёт True
Переменная же 'c' - не пустая, а, значит, тоже True в смысле булевых отношений. Так что у тебя всегда "ДА"
Если переделывать твой Паскаль-код, то это, скорее, 
if c == 'Yes' or c == 'yes' or c == 'y' и т.д.
Но лучше писать сразу на Питоне: проверяй полученное значение на вхождение в список. Так проще:
if c in ['Yes', 'yes', 'y', 'Да']:
Но у тебя сплошной повтор одного и того же (плюс я могу ж и "YES" ввести!). Будь проще:
if c.lower() in ['yes', 'y', 'да', 'д']:
Далее - вынеси блок c = input('Продолжить работу? Д/Н ')
if c == ('Да') or ('да') or ('Yes') or ('yes') or ('y') or ('Y') or ('д') or ('Д'):
  continue
elif c == ('Нет') or ('нет') or ('No') or ('no') or ('n') or ('N'):
  break
после оператора if.  Тогда он будет у тебя написан один раз. Это правильно. Не повторяй себя.
Ну, как-то так...print('\n')
print('Калькулятор\n\n')
while True:
  x = int(input('Введите первое число: '))
  y = int(input('Введите второе число: '))
  z = input('Введите знак: ')
  res = 0
  if z == '+':
    res = x + y
  elif z == '-':
    res = x - y
  elif z == '*':
    res = x * y
  elif z == '/':
    res = x / y
  else:
    print('Оператор обязателен и может быть только + или - или * или / ')
    continue

  print('Ваш результат: ',res)
  c = input('Продолжить работу? Д/Н ')
  if c.lower() in ['да', 'yes','y', 'д']:
    continue
  elif c.lower() in ['нет', 'no', 'n', 'н']:
    break
Тут можно ещё много чего усовершенствовать, но, надеюсь, главное ты понял :-)
Может быть, потому, что Вы в качестве ответа "нет" вводите "н", а в список вариантов его добавить забыли?