• Почему функция возвращает None?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Вы ничего не возвращаете из inputs. Можно сказать, что возвращаете ничего. То есть None.
    Ответ написан
    1 комментарий
  • Почему функция возвращает None?

    @aby125
    В вашей функции deistvie происходит просто вызов функций сложение, вычитания, умножения и т.д. И вы с ними ничего не делатете, т.е. как вариант, это выводить результат, например так:
    #Определяем что делать
    def deistvie(znak, num1, num2):
      if znak == '!':
        print(factorial(num1))
      elif znak == '+':
        print(summa(num1, num2))
      elif znak == '-':
        print(raznost(num1, num2))
      elif znak == '*':
        print(proisvedenie(num1, num2))
      elif znak == '/':
        print(delenie(num1, num2))
      else:
        return ('Нет такого действия')

    либо надо возвращать значения в deistvie и в inputs, т.е. таким образом
    #Определяем что делать
    def deistvie(znak, num1, num2):
      if znak == '!':
        return factorial(num1)
      elif znak == '+':
        return summa(num1, num2)
      elif znak == '-':
        return raznost(num1, num2)
      elif znak == '*':
        return proisvedenie(num1, num2)
      elif znak == '/':
        return delenie(num1, num2)
      else:
        return ('Нет такого действия')
    #Получаем данные
    def inputs():
      num1 = float(input('Введите число: '))
      znak = input('Введите знак (+, -, *, /, !): ')
      if znak == '!':
        num2 = ''
      else:
        num2 = float(input('Введите второе число: '))
      return deistvie (znak, num1, num2)
    Ответ написан
    1 комментарий