profile
Размещено 5 лет назад по предмету Информатика от norherty

функции в программировании Python​

  1. Ответ на вопрос
    Ответ на вопрос дан DaRiAnIs

    1) Функции в программировании

    Функция в программировании представляет собой обособленный участок кода, который можно вызывать, обратившись к нему по имени, которым он был назван. При вызове происходит выполнение команд тела функции.

    Функции можно сравнить с небольшими программками, которые сами по себе, т. е. автономно, не исполняются, а встраиваются в обычную программу. Нередко их так и называют – подпрограммы. Других ключевых отличий функций от программ нет. Функции также при необходимости могут получать и возвращать данные. Только обычно они их получают не с ввода (клавиатуры, файла и др.), а из вызывающей программы. Сюда же они возвращают результат своей работы.

    Существует множество встроенных в язык программирования функций. С некоторыми такими в Python мы уже сталкивались. Это print(), input(), int(), float(), str(), type(). Код их тела нам не виден, он где-то "спрятан внутри языка". Нам же предоставляется только интерфейс – имя функции.

    С другой стороны, программист всегда может определять свои функции. Их называют пользовательскими. В данном случае под "пользователем" понимают программиста, а не того, кто пользует программу. Разберемся, зачем нам эти функции, и как их создавать.Предположим, надо три раза подряд запрашивать на ввод пару чисел и складывать их. С этой целью можно использовать цикл:

    i = 0

    while i < 3:

       a = int(input())

       b = int(input())

       print(a+b)

       i += 1

    Однако, что если перед каждым запросом чисел, надо выводить надпись, зачем они нужны, и каждый раз эта надпись разная. Мы не можем прервать цикл, а затем вернуться к тому же циклу обратно. Придется отказаться от него, и тогда получится длинный код, содержащий в разных местах одинаковые участки:

    print("Сколько бананов и ананасов для обезьян?")

    a = int(input())

    b = int(input())

    print("Всего", a+b, "шт.")

     

    print("Сколько жуков и червей для ежей?")

    a = int(input())

    b = int(input())

    print("Всего", a+b, "шт.")

     

    print("Сколько рыб и моллюсков для выдр?")

    a = int(input())

    b = int(input())

    print("Всего", a+b, "шт.")

    Пример исполнения программы:

    Сколько бананов и ананасов для обезьян?

    15

    5

    Всего 20 шт.

    Сколько жуков и червей для ежей?

    50

    12

    Всего 62 шт.

    Сколько рыб и моллюсков для выдр?

    16

    8

    Всего 24 шт.

    Внедрение функций позволяет решить проблему дублирования кода в разных местах программы. Благодаря им можно исполнять один и тот же участок кода не сразу, а только тогда, когда он понадобится.

    2) Определение функции, оператор def

    В языке программирования Python функции определяются с помощью оператора def. Рассмотрим код:

    def countFood():

       a = int(input())

       b = int(input())

       print("Всего", a+b, "шт.")

    Это пример определения функции. Как и другие сложные инструкции вроде условного оператора и циклов функция состоит из заголовка и тела. Заголовок оканчивается двоеточием и переходом на новую строку. Тело имеет отступ.

    Ключевое слово def сообщает интерпретатору, что перед ним определение функции. За def следует имя функции. Оно может быть любым, также как и всякий идентификатор, например, переменная. В программировании весьма желательно давать всему осмысленные имена. Так в данном случае функция названа "посчитатьЕду" в переводе на русский.

    После имени функции ставятся скобки. В приведенном примере они пустые. Это значит, что функция не принимает никакие данные из вызывающей ее программы. Однако она могла бы их принимать, и тогда в скобках были бы указаны так называемые параметры.

    После двоеточия следует тело, содержащее инструкции, которые выполняются при вызове функции. Следует различать определение функции и ее вызов. В программном коде они не рядом и не вместе. Можно определить функцию, но ни разу ее не вызвать. Нельзя вызвать функцию, которая не была определена. Определив функцию, но ни разу не вызвав ее, вы никогда не выполните ее тела.

    1. Ответ на вопрос
      Ответ на вопрос дан DaRiAnIs
      Функции как бы разделяют ее на обособленные части, каждая из которых выполняет свою конкретную задачу.
      Пусть надо написать программу, вычисляющую площади разных фигур. Пользователь указывает, площадь какой фигуры он хочет вычислить. После этого вводит исходные данные. Например, длину и ширину в случае прямоугольника. Чтобы разделить поток выполнения на несколько ветвей, следует использовать оператор if-elif-else:
    2. Ответ на вопрос
      Ответ на вопрос дан DaRiAnIs
      figure = input("1-прямоугольник, 2-треугольник, 3-круг: ")
      if figure == '1':
      a = float(input("Ширина: "))
      b = float(input("Высота: "))
      print("Площадь: %.2f" % (a*b))
      elif figure == '2':
      a = float(input("Основание: "))
      h = float(input("Высота: "))
      print("Площадь: %.2f" % (0.5 * a * h))
      elif figure == '3':
      r = float(input("Радиус: "))
      print("Площадь: %.2f" % (3.14 * r**2))
      else:
      print("Ошибка ввода")
    3. Ответ на вопрос
      Ответ на вопрос дан DaRiAnIs
      Здесь нет никаких функций, и все прекрасно. Но напишем вариант с функциями:
      def rectangle():
      a = float(input("Ширина: "))
      b = float(input("Высота: "))
      print("Площадь: %.2f" % (a*b))
      def triangle():
      a = float(input("Основание: "))
      h = float(input("Высота: "))
      print("Площадь: %.2f" % (0.5 * a * h))
      def circle():
      r = float(input("Радиус: "))
      print("Площадь: %.2f" % (3.14 * r**2))
    4. Ответ на вопрос
      Ответ на вопрос дан DaRiAnIs
      figure = input("1-прямоугольник, 2-треугольник, 3-круг: ")
      if figure == '1':
      rectangle()
      elif figure == '2':
      triangle()
      elif figure == '3':
      circle()
      else:
      print("Ошибка ввода")
      Он кажется сложнее, а каждая из трех функций вызывается всего один раз. Однако из общей логики программы как бы убраны и обособлены инструкции для нахождения площадей. Программа теперь состоит из отдельных "кирпичиков Лего". В основной ветке мы можем комбинировать их как угодно. Она играет роль управляющего механизма.
    5. Ответ на вопрос
      Ответ на вопрос дан DaRiAnIs
      Если нам когда-нибудь захочется вычислять площадь треугольника по формуле Герона, а не через высоту, то не придется искать код во всей программе (представьте, что она состоит из тысяч строк кода как реальные программы). Мы пойдем к месту определения функций и изменим тело одной из них.
      Если понадобиться использовать эти функции в какой-нибудь другой программе, то мы сможем импортировать их туда, сославшись на данный файл с кодом.
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 5 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.