Задать вопрос
  • Функция return в python 3,8 выдает ошибку, почему?

    @SexyHair
    Неправильно расставил отступы)
    Ответ написан
    Комментировать
  • Почему не происходит выход из цикла в python 3.8.0?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Да, дружище, это не Паскаль

    Подумай, с чем ты сравниваешь переменную '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


    Тут можно ещё много чего усовершенствовать, но, надеюсь, главное ты понял :-)
    Ответ написан
    Комментировать