Параметр-значения
Это – формальный вариант, который объявляется без ключевого слова. Тип – совместимый. В виде фактического parameter выступает то или иное выражение.
Здесь нужно запомнить следующее:
- Поведение параметра-значения – как у локальной переменной, поэтому она инициализируется значением, передаваемым при вызове процедуры.
- Если передается переменная, компилятор создаст ее копию. Процедура будет работать с «дубликатом».
- Корректировки копии никак не влияют на исходную переменную.
- При обработке компонента происходит выделение памяти на устройстве.
Как только процедура заканчивается, копия переменной или выделенная область памяти освобождаются. Это помогает оптимизировать расход ресурсов устройства.
Примеры использования процедур и функций
Процедуры и функции в Python позволяют облегчить написание кода, сократить его размер и повысить его читабельность. Вот несколько примеров использования:
- Разбиение задач на более мелкие части. Создание процедуры или функции для каждой из этих частей позволяет легче поддерживать и читать код.
- Избежание дублирования кода. Если у вас есть несколько участков кода, которые выполняют похожие функции, вы можете выделить повторяющуюся часть в отдельную функцию и вызывать ее вместо дублирования кода.
- Создание повторно используемых компонентов. Вы можете создать компоненты, которые будут полезны и пригодны для использования во многих программах или модулях.
- Повышение безопасности. Если выскользнувшая ошибка может повлиять на функцию, можно создать процедуру или функцию для обработки этой ошибки.
Рассмотрим пример создания функции в Python:
def sum_two_numbers(a, b):
result = a + b
return result
print(sum_two_numbers(5, 3)) # 8
Функция sum_two_numbers принимает два аргумента a и b и возвращает результат их суммирования.
Рассмотрим пример создания процедуры в Python:
def print_hello():
print(“Hello, world!”)
print_hello() # Hello, world!
Процедура print_hello не требует аргументов и выводит «Hello, world!» на экран.
Также в Python существует множество встроенных функций и процедур, таких как print, len и другие. Их использование очень распространено при написании кода на Python.
Процедуры в Python
Процедуры в Python – это блоки кода, которые могут быть вызваны из других частей программы. Они используются для группировки и организации кода, упрощения его чтения и понимания. Кроме того, процедуры позволяют избежать дублирования кода и повторного использования универсальных функций.
Процедуры в Python объявляются с помощью ключевого слова «def», после которого следует имя процедуры и ее параметры, если они есть. Затем идет блок кода, который выполняется при вызове процедуры.
Параметры процедуры представляют собой переменные, которые передаются в нее при вызове. Они служат для передачи данных внутрь процедуры и могут быть как обязательными, так и необязательными. Если параметр не является обязательным, то он имеет значение по умолчанию.
Процедуры могут возвращать результат своей работы с помощью ключевого слова «return». Этот результат может быть любым объектом – числом, строкой, списком и т.д. Если процедура не возвращает значение, то используется ключевое слово «pass».
Пример вызова процедуры:
def say_hello(name):
print(“Привет, ” + name)
say_hello(“Иван”)
Результат работы данного кода будет следующим: Привет, Иван.
Также существуют встроенные процедуры в Python, такие как «print», «len», «range» и т.д. Они могут быть использованы в любой части программы без дополнительного объявления.
Использование процедур позволяет создавать более модульный и читаемый код, а также повышает переиспользуемость кода. Кроме того, процедуры в Python являются одним из базовых понятий языка и необходимы для работы с библиотеками и фреймворками.
Функции в Python
Функция в языке программирования Python — это блок кода, который может быть вызван из другого места программы. Она может принимать аргументы и возвращать значения. Использование функций упрощает кодирование, предотвращает дублирование кода и упрощает его понимание.
Для определения функции в Python используется ключевое слово def. Функция может принимать один или несколько аргументов и возвращать одно или несколько значений. Функция может быть вызвана в любой части программы.
Python также предоставляет множество стандартных функций, таких как print(), len(), range() и многие другие. Они позволяют упростить написание кода и сократить время разработки.
Кроме того, функции в Python могут иметь значения аргументов по умолчанию и могут быть определены с произвольным числом аргументов. Такие функции называются функциями с переменным числом аргументов.
В Python функции также могут быть определены внутри других функций. Они называются вложенными функциями. Это может быть полезно, когда функция нужна только внутри другой функции и не должна быть доступна в других частях программы.
Использование функций — это ключевая часть программирования на Python. Хорошо написанные функции позволяют создавать более понятный и эффективный код, ускоряют процесс разработки и облегчают сопровождение программы.
Процедура в программировании
Процедуры являются одним из основных строительных блоков в программировании и помогают управлять сложностью кода, повторно использовать фрагменты кода и разделять программу на логические блоки. Они также способствуют улучшению читаемости и поддерживаемости кода.
Процедуры могут принимать аргументы, которые передаются при их вызове, и использовать локальные переменные для временного хранения данных. Они также могут быть вложены друг в друга и вызывать другие процедуры.
Отличительной особенностью процедур является отсутствие возврата значения. Если необходимо вернуть результат работы процедуры, вместо нее используют функцию.
Структура программы.
Программы на языке Паскаль состоят из заголовка программы, раздела описаний и тела программы. Раздел описаний может включать следующие подразделы: меток, констант, типов, переменных, процедур и функций. Последовательность подразделов в структуре программы произвольная, но естественно, что если вводится переменная нового типа, заданного в Туре, то подраздел Туре предшествует подразделу Var. Принцип нашего языка программирования «то, что используется, должно быть описано» сохраняется и для раздела описаний.
program <имя программы>; label <метки>; const <описание констант>; type <описание типов данны\>; var <описание переменных>; <процедуры и функции>; begin <основное тело программы>; end.
Роль процедур в программировании
Кроме того, процедуры улучшают читабельность и понимание программы. Отдельные фрагменты кода, реализующие конкретную логику или функциональность, могут быть выделены в отдельные процедуры, что делает код более структурированным и модульным. Это упрощает анализ, отладку и тестирование программы.
Еще одной важной ролью процедур является абстрагирование и инкапсуляция функциональности. Процедуры позволяют скрыть детали реализации и предоставить только интерфейс, через который можно взаимодействовать с функциональностью
Такой подход способствует упрощению и упрощению процесса разработки программного обеспечения, а также повышает возможность переиспользования кода.
Выбор между процедурой и функцией зависит от конкретной задачи и требований к коду. Процедуры применяются в случаях, когда нужно выполнить последовательность операций без возврата результата. Функции, в свою очередь, возвращают значение и чаще всего применяются, когда необходимо вычислить и вернуть какое-либо значение.
Использование процедур и функций в программировании позволяет создавать более гибкие, модульные и легко поддерживаемые программы. Они помогают разбить сложную задачу на более мелкие, самодостаточные блоки, которые можно использовать в разных частях программы
Важно правильно выбирать и применять соответствующий инструмент в зависимости от требований проекта
Цель и назначение процедуры
Основная цель процедуры заключается в том, чтобы выполнить определенную последовательность действий с целью получить нужный результат или изменить состояние программы. Процедура может быть вызвана из других частей программы для выполнения задачи, что позволяет сократить повторяющийся код и упростить его обслуживание и отладку.
Назначение процедуры заключается в том, чтобы разделить сложную задачу на более простые и понятные блоки кода. Это упрощает написание и понимание программы, а также повышает ее модульность и повторное использование. Процедура может принимать параметры (аргументы) для передачи данных из вызывающей области кода и возвращать результат, если это необходимо.
Различия между процедурами и функциями
Процедуры и функции, в рамках программирования, представляют некоторые блоки кода, которые можно вызвать из другого места программы. Они могут принимать параметры и возвращать результат. Но что же отличает процедуры от функций?
Главное различие между процедурами и функциями заключается в том, что функции могут возвращать некоторое значение, а процедуры — нет. То есть, если в функции используется ключевое слово return, то она возвращает значение, которое можно присвоить какой-то переменной или использовать в дальнейшем коде. Процедуры, в свою очередь, могут только выполнять определенные задачи, но не возвращать результат.
Другое важное отличие — форма записи вызова функций и процедур. Функцию нужно вызывать в виде имя_функции(аргументы)
Процедуру же можно вызывать без скобок имя_процедуры аргументы, хотя в большинстве случаев все же следует ставить скобки.
Еще одно различие заключается в назначении. Функции используются, когда нужно выполнить какой-то расчет и получить результат. Процедуры же, как правило, используются для выполнения каких-то действий, которые могут повторяться в программе. То есть, функции используются, когда нужен результат, а процедуры — когда нужно выполнять действия.
Но не стоит забывать, что в Python это различие не очень существенно. Поскольку в Python в любом случае создается объект, можно создавать процедуры, которые возвращают значения и использовать функции для выполнения действий без возврата значения. Интерпретатор Python позволяет использовать функции и процедуры практически взаимозаменяемыми.
Вывод: хотя в Python различия между процедурами и функциями не такие существенные, на практике функции чаще используются для расчетов и получения результата, а процедуры — для выполнения действий. В любом случае, выбор зависит от поставленной задачи и индивидуальных предпочтений разработчика.
What is Function?
Functions are a group of instructions that are bundled together to attain a specific outcome. A function can increase the reusability of a particular code. Any values can be passed on using variables to a function. Variables are categorized into two – arguments and parameters.
In JAVA, we start the programming with a class followed by the next line stating “public static void main ()” the ‘public’ denotes an access specifier and is used to manage which part of the content should be accessible.
There are certain rules to be followed for defining a function in programming languages like JAVA and C++. For example, in JAVA, the rules for defining a Function are that multiple functions having the same signature cannot be declared, i.e., having the same parameters and numbers cannot be repeated. An example of a function in JAVA is given below for reference, Int findMinimum (int num1, int num2, int num3) { If (num1 > num2) return num1; { elseif (num3 > num1) return num3; else return num1; } } In C programming language, functions are of two types, predefined and user-defined functions.
Functions like puts(), gets(), printf(), scanf(), etc are predefined library functions. For example, – printf() function is described in <stdio.h> header file therefore, to use the printf() function, the <stdio.h> header file must be included in the program using #include <stdio.h>.
The functions that are created by the user in a program are known as user-defined functions. The syntax of the user-defined function is; return_type function_name (argument list) { Set of statements – Block of code }. The return type can be data such as char, int, void, etc. The argument list is for comparing two return-type data. The block of code is a group of C language programming statements that will be executed whenever a call is made to the function during the execution.
Что можно делать с функциями
Задавать. Разработчик может создать функцию — описать, как она будет называться и что будет делать. Обычно описание начинается с ключевого слова function и имени функции, которое разработчик придумывает сам. Правда, в разных языках синтаксис может отличаться.
Задать функцию можно в любом участке кода. Но правилом хорошего тона считается собирать все функции в одном месте, а не разбрасывать их по документу с кодом хаотично.
Вызывать. Когда программист задает функцию, она не выполняется сразу — это просто описание. Чтобы функция сработала, ее нужно вызвать: написать в нужном участке кода команду вызова. Команда обычно состоит из названия функции и двух скобок. Например, так: myFunction().
Вызывать с аргументами. Иногда, чтобы функция сработала как надо, ей нужно передать какие-то данные. Причем при разных вызовах эти данные могут различаться. В таком случае можно создать функцию с параметрами:
- при создании функции описать, что она будет получать на входе — какие-то переменные с любым удобным разработчику именем;
- при вызове указывать в круглых скобках значения аргументов, фактических значений, которые будут передаваться в функцию. Это могут быть числа, строки, объекты и так далее.
Например, функция multiply умножает заданное число на 2. Чтобы она могла каждый раз получать новое число, при создании функции указывают параметр number: function multiply(number). Это значит, что на вход функция будет получать какой-то number и иметь возможность с ним работать. А при вызове вместо number будут писать в скобках нужное число или переменную. Например, так: multiply(2) или multiply(myMoney). 2 и myMoney — аргументы, которые передаются в параметр.
Получать значения. Функция может возвращать в основную программу какой-то результат, и с ним можно работать: записывать в переменную или использовать в вычислениях. Обычно для возврата используют ключевое слово return, а после него пишут то, что нужно вернуть. Существуют и функции, которые ничего не возвращают, — иногда бывает нужно и такое.
Редактировать. Если изменить описание функции, ее работа поменяется во всех местах, где эту функцию вызывали. Результат тоже изменится.
Курс для новичков «IT-специалист с нуля» – разберемся, какая профессия вам подходит, и поможем вам ее освоить
Подробнее
Когда нужна процедура?
В программировании процедура представляет собой набор инструкций, которые выполняют определенные действия. Процедура выполняется последовательно и может возвращать результат или ничего не возвращать.
Процедуры особенно полезны, когда нужно выполнить одну и ту же последовательность действий несколько раз в разных частях программы. Они позволяют избежать дублирования кода и облегчают его понимание и сопровождение.
Кроме того, процедуры могут быть использованы для группировки кода и управления его выполнением. Например, с помощью процедур можно организовать выполнение сложной логики или обработку ошибок.
В отличие от функций, процедуры могут не возвращать значения. Они могут быть использованы для выполнения действий без необходимости возвращать результат работы.
Процедуры также могут быть вызваны из других процедур или функций, что позволяет организовывать код в более модульную структуру и повышать его переиспользуемость.
Таким образом, процедуры представляют собой важный инструмент для организации кода, улучшения его структуры и повышения его эффективности. Они позволяют разделить сложные задачи на более простые, что делает программирование более удобным и понятным.
Функция в программировании
Функции имеют имя, список входных параметров и возвращаемое значение. Имя функции позволяет обращаться к ней из других частей программы. Входные параметры — это значения, передаваемые в функцию при ее вызове, которые могут использоваться внутри функции для выполнения нужных операций. Возвращаемое значение — это результат работы функции, который может быть использован в других частях программы.
Для определения функции используется ключевое слово , за которым следует имя функции и список входных параметров, заключенных в круглые скобки. Внутри фигурных скобок записываются инструкции, которые будут выполнены при вызове функции.
Функции можно вызывать из других частей программы с помощью имени функции и передачи нужных параметров в скобках. После вызова функции выполнение программы возвращается к месту, где была вызвана функция, и продолжает свое выполнение.
Процедура и функция в программировании: существенные различия и выбор правильного инструмента
Процедура — это блок кода, который выполняет определенные действия, не возвращая результат. Она может принимать определенные параметры, но не возвращает значение. Процедуры используются для группировки основных операций в одном месте и повторного использования кода. Они также помогают улучшить читаемость и организацию программы. Процедуры определяются с помощью ключевого слова «procedure» во многих языках программирования, таких как Pascal, Delphi, а также в языке SQL.
Функция, в отличие от процедуры, возвращает некоторое значение после выполнения определенных операций. Она также может принимать параметры, которые используются внутри функции. Функции обычно используются для выполнения вычислений и возвращения результата. Они позволяют создавать более гибкие и мощные программы, так как результаты выполнения функции могут быть использованы в других частях программы. Функции определяются с помощью ключевого слова «function» во многих языках программирования, таких как C++, Python, JavaScript.
При выборе между процедурой и функцией необходимо учитывать суть задачи. Если требуется только выполнить некоторые действия без необходимости возвращать результат, то следует использовать процедуру. Если же нужны вычисления или возврат значения, то целесообразнее использовать функцию.
Кроме того, функции могут быть более удобны в использовании в случае, если их результаты будут использованы в других частях программы. Они могут быть вызваны в любом месте программы и возвращать результат, который можно сохранить в переменную или использовать непосредственно в других выражениях.
Важно также отметить, что процедуры и функции имеют схожую структуру и роль в программировании. Оба эти инструмента помогают разбить код на более мелкие и понятные части, что делает программу более читаемой и легкой для сопровождения
Таким образом, понимание различий между процедурой и функцией, а также правильный выбор инструмента в зависимости от задачи, являются важной частью разработки программного обеспечения. Используйте процедуры, чтобы группировать операции и повторно использовать код, а функции — для выполнения сложных вычислений и возврата результатов
Правильный выбор поможет сделать код более эффективным и легким для понимания.
Как создать функцию в C++
Для удобства любые подпрограммы, в том числе и процедуры, называют функциями.
Одну функцию мы с вами уже создавали — main (). Она работает как точка входа в каждую программу. Другие функции создаются аналогичным образом:
Вот так это выглядит в коде:
Функции могут принимать или не принимать аргументы. Но если вы указали, что аргументы всё же нужны, то попытка вызвать функцию без них приведёт к ошибке.
Если вы указываете какой-либо тип возвращаемых данных, то обязательно должен присутствовать оператор return. Если возвращать значение не нужно, создайте процедуру — укажите тип void.
Вот что выведет такая программа:
Main Difference Between Function and Method
- A function is directly called by its name, whereas a method includes a code that is called by the object’s name.
- A function can pass and then return the data that is operated, whereas a method operates data in a Class.
- A function is independent, whereas a method is a function linked with an object.
- Explicit data is passed on to a function, whereas a method completely passes the object on which it was called in the program.
- A method is Object-oriented programming, while a function has standalone functionality.
References
- https://www.sciencedirect.com/science/article/pii/S0096300309010376
- https://www.sciencedirect.com/science/article/pii/S0960077905004054
Home – Software – Function vs Method: Difference and Comparison
Last Updated : 11 June, 2023
One request?
I’ve put so much effort writing this blog post to provide value to you. It’ll be very helpful for me, if you consider sharing it on social media or with your friends/family. SHARING IS ️
5.1.5. Побочный эффект¶
Побочный эффект (англ. Side Effect) – любые действия программы, изменяющие среду выполнения (англ. Execution Environment).
К побочным эффектам выполнения функции можно отнести:
изменение данных в памяти;
чтение/запись файла или устройства;
ввод/вывод значений;
самостоятельную реакцию на исключительные ситуации;
и др.
Часто функции с побочным эффектом при вызове несколько раз с одними и теми же аргументами в качестве результата возвращают разные значения. Пример – стандартная функция генерации случайного числа.
Создавая функцию, необходимо избегать побочных эффектов – такие функции легче тестируются и не содержат скрытых действий. Один из примеров такой функции – функция в .
Естественно, что полностью избежать побочных эффектов невозможно. В таких случаях необходимо локализовать участки кода с побочным эффектом в отдельные функции (Листинге 5.1.16).
Листинг 5.1.16 – Локализация кода с побочным эффектом в отдельные функции |
def heron(a, b, c): """Вернуть площадь треугольника по формуле Герона. Параметры: - a, b, c (float): стороны треугольника. Результат: - float: значение площади. - None: если треугольник не существует. """ if not (a + b > c and a + c > b and b + c > a): return p = (a + b + c) 2 return (p * (p - a) * (p - b) * (p - c))**0.5 def input_data(): """Запросить стороны треугольника с клавиатуры. Результат: - tuple of float: (a, b, c). Побочный эффект! """ return (float(x) for x in input('Введите стороны (a b c): ').split()) def print_res(res): """Вывести на экран 'res'. Параметры: - res (float): площадь треугольника. Побочный эффект! """ if res print('S = {:.2f}'.format(res)) else print('Треугольник не существует!') a, b, c = input_data() res = heron(a, b, c) print_res(res)
Предупреждение
Решая задачу, необходимо следить чтобы каждая проектируемая функция выполняла минимальную, логически полную задачу.
Например, если необходимо вычислить сумму и среднее значение элементов списка, правильнее будет создать 2 функции для каждого вычисления, а не одну; при этом ввод и вывод значений также оформить в виде отдельных функций.
Побочные эффекты
Современные языки программирования позволяют функциям работать не только внутри себя, но и влиять на окружение. Например, функция может вывести что-то на экран, записать на диск, изменить какую-то глобальную переменную. Взломать Пентагон, опять же. Всё это называется побочными эффектами. Хорошие программисты смотрят на них крайне настороженно.
Примерчики!
Мы пишем таск-менеджер. В памяти программы хранятся задачи, у каждой из которых есть приоритет: высокий, средний и низкий. Все задачи свалены в кучу в памяти, а нам надо вывести только те, что с высоким приоритетом.
Можно написать функцию, которая считывает все задачи из памяти, находит нужные и возвращает. При этом на задачи в памяти это не влияет: они как были свалены в кучу, так и остались. Это функция без побочных эффектов.
getTasksByPriority(‘high’) — вернёт новый массив с приоритетными задачами, не изменив другие массивы. В памяти был один массив, а теперь появится ещё и второй.
А можно написать функцию, которая считывает задачи, находит нужные, стирает их из исходного места и записывает в какое-то новое — например, в отдельный массив приоритетных задач. Получается, будто она физически вытянула нужные задачи из исходного массива. Побочный эффект этой функции — изменение исходного массива задач в памяти.
- pullTasksByPriority(‘high’) — физически вытащит задачи из исходного массива и переместит их в какой-то новый. В старом массиве уменьшится число задач.
- Такие изменения называют мутациями: я вызвал функцию в одном месте, а мутировало что-то в другом.
Программисты настороженно относятся к мутациям, потому что за ними сложно следить. Что если из-за какой-то ошибки функции выполнятся в неправильном порядке и уничтожат важные для программы данные? Или функция выполнится непредсказуемо много раз? Или она застрянет в цикле и из-за мутаций разорвёт память? Или мутация произойдёт не с тем куском программы, который мы изначально хотели?
Вот типичная ошибка, связанная с мутацией. Мы пишем игру, нужно поменять сумму игровых очков. За это отвечает функция changeScore(), которая записывает результат в глобальную переменную playerScore — то есть мутирует эту переменную. Мы случайно, по невнимательности, вызвали эту функцию в двух местах вместо одного, и баллы увеличиваются вдвое. Это баг.
Другая типичная ошибка. Программист написал функцию, которая удаляет из таблицы последнюю строку, потому что был почему-то уверен: строка будет пустой и никому не нужной. Случайно эта функция вызывается в бесконечном цикле и стирает все строки, от последней к первой. Данные уничтожаются. А вот если бы функция не удаляла строку из таблицы, а делала новую таблицу без последней строки, данные бы не пострадали.
Без мутирующих функций, конечно, мы не обойдёмся — нужно и выводить на экран, и писать в файл, и работать с глобальными переменными. Сложно представить программу, в которой вообще не будет мутирующих функций. Но программисты предпочитают выделять такие функции отдельно, тестировать их особо тщательно, и внимательно следить за тем, как они работают. Грубо говоря, если функция вносит изменения в большой важный файл, она должна как минимум проверить корректность входящих данных и сохранить резервную копию этого файла.
Программируемые функции
Функции, которые программист создает
сам, упрощают процесс написания программ,
поскольку они:
помогают избежать повторного
программирования, так как одну и ту же
функцию можно применять в различных
программах;
повышают уровень модульности программы,
следовательно, облегчают ее чтение,
внесение изменений и коррекцию ошибок.
Пример
9
.1.
Создадим
функцию, которая печатает 65 символов
“*” в ряд. Чтобы эта функция выполнялась
в некотором контексте, она включена в
программу печати фирменного бланка.
Программа состоит из функций: main() и
stars().
// Фирменный бланк
#include
const
int Limit=65;
void stars(void); // прототип
функции stars()
cout
// Определение функции stars()
for (count=1; count
Мы рассмотрели пример простейшей
функции, не имеющей аргументов и не
возвращающей никаких значений.
Преимущества функции
- Модульность: Функции позволяют разбивать программу на отдельные модули, каждый из которых выполняет определенную задачу. Это упрощает процесс разработки и позволяет повторно использовать код.
- Улучшенная читаемость: Использование функций делает программу более структурированной и понятной. Функции позволяют абстрагироваться от деталей реализации и сосредоточиться на самом алгоритме или логике программы.
- Меньшее дублирование кода: Функции позволяют избежать повторения одного и того же кода в разных частях программы. Это не только улучшает читаемость, но и упрощает поддержку и обновление программы.
- Улучшенная отладка: С помощью функций можно выделить определенные участки кода и тестировать их независимо от остальной программы. Это значительно упрощает процесс отладки и нахождения ошибок.
- Повышенная гибкость: Функции позволяют легко изменять и дополнять логику программы без необходимости вносить изменения во всю программу. Можно просто изменить реализацию функции или добавить новую функцию.
- Рекурсия: Функции позволяют вызывать сами себя, что позволяет решать сложные задачи, основанные на повторении одних и тех же действий. Рекурсия может быть очень полезной для решения задач, связанных с обработкой и структурированием данных.
Использование функций позволяет создавать более гибкий, удобочитаемый и легко поддерживаемый код, что является одним из ключевых преимуществ функционального программирования.
Функции в роли процедуры
Подпрограммы прежде всего необходимы в ситуации, когда в разных частях программы необходимо выполнять одни и те же действия несколько раз. В таком случае повторяемые операторы оформляются в виде функции или процедуры, к которой можно обращаться и вызывать ее выполнение из разных частей программы.
В python существует два вида реализации подпрограмм: функции в роли процедуры и функции в классическом понимании.
Функция в роли процедуры призвана не возвратить значение в основную программу, а вывести его, либо выполнить какие-либо действия с глобальными переменными, при этом не возвращая полученные значения основной программе (не используя ключевое слово ).
Рассмотрим синтаксис функции-процедуры на примере:
Пример: Создать процедуру для вывода сообщения об ошибке. Запрашивать у пользователя ввести положительное число, в случае ввода отрицательного числа, вызывать процедуру для вывода сообщения об ошибке.
Решение:
def Err(): # определение процедуры print ( "Ошибка: неверные данные" ) n = int ( input('введите положительное число') ) if n < : Err() # вызов процедуры |
- Процедура — вспомогательный алгоритм, выполняющий некоторые действия.
- Это поименованный фрагмент программы, который можно вызвать.
- Процедура должна быть определена к моменту её вызова. Определение процедуры начинается со служебного слова def.
- Вызов процедуры осуществляется по ее имени, за которым следуют круглые скобки, например, Err().
- В одной программе может быть сколько угодно много вызовов одной и той же процедуры.
- Использование процедур сокращает код и повышает удобочитаемость.
Процедура с параметрами
Как используются в Python параметры процедуры, рассмотрим на примере.
Пример: Написать процедуру, которая печатает 60 раз указанный символ (введенный с клавиатуры), каждый с новой строки.
Решение:
1 2 3 4 5 | def printChar(s): for i in range(60): print (s) sim = input('введите символ') printChar(sim) |
- Глобальная переменная — если ей присвоено значение в основной программе (вне процедуры).
- Локальная переменная (внутренняя) известна только на уровне процедуры, обратиться к ней из основной программы и из других процедур нельзя.
- Параметры процедуры — локальные переменные. В программе s — локальная переменная.
Задание Python 3_0:
Создать процедуру, которая вычисляет разность двух вводимых пользователем числа. Выполнить задание двумя способами: 1) процедура без параметров: числа — глобальные переменные, определенные в основной программе; 2) процедура с параметрами: числа — параметры процедуры.
Локальные и глобальные переменные
Примеры использования локальных и глобальных переменных:
1 2 3 4 | x = 3 # глобальная переменная def pr(): # процедура без параметров print (x) # вывод значения глобальной переменной pr() |
1 2 3 4 5 | x = 3 # глобальная переменная def pr(a): # процедура с параметром a = 4 # локальная переменная print (a) # 4 pr(x) # передача параметра глобальной переменной (3) |
Существует возможность изменить значение глобальной переменной (не создавая локальную). В процедуре с помощью слова global:
1 2 3 4 5 6 | x = 3 # глобальная переменная def pr(): # процедура без параметров global x x = 1 print (x) # вывод измененного значения глобальной переменной (1) pr(x) |
Задание Python 3_1:
Напишите процедуру, которая выводит на экран в столбик все цифры переданного ей числа, начиная с последней:
число: 4673 результат: 3 7 6 4
Задание Python 3_2:
Напишите процедуру, которая выводит на экран все делители переданного ей числа (в одну строчку).
Задание Python 3_3:
Составить программу с процедурой для вычисления степени числа (входные параметры: число и степень).
Рекомендации: для вычисления степени числа можно использовать функцию
Задание Python 3_4:
Напишите процедуру, которая принимает параметр – натуральное число N – и выводит первые N чисел Фибоначчи.
Пример использования ключевого слова :
Поменять значений двух переменных.
Решение:
- Решение 1:
def Swap(): global x,y t = x x = y y = t x=3 y=5 Swap() print(x,y) |
Решение 2:
def Swap(): global x,y (x, y) = (y, x) (x,y)=(3,5) Swap() print(x,y) |
Задание Python 3_5:
Создайте процедуру без параметров , которая добавляет введенную цифру (0D (0global для работы с глобальными переменными.
Ожидаемый результат:
введите D (0>>2 >>>4 результат: 42
Рекомендации по созданию функций
Разрабатывая программы, вы постоянно будете работать с функциями, поэтому важно научиться делать их максимально полезными. Вот несколько рекомендаций:
- Называйте их так, чтобы было сразу понятно, что они делают. При этом лучше использовать повелительное наклонение, то есть напечатайФакториал (), а не печатьФакториала ().
- Делайте функции как можно меньше и универсальнее.
- Если есть вероятность, что часть кода может повториться несколько раз, то сразу выносите её в отдельную функцию.
И старайтесь как можно больше практиковаться, чтобы закрепить новые знания. В этой серии статей описываются базовые возможности программирования, которые пригодятся вам на протяжении всей карьеры. В следующем материале мы разберёмся, как упростить повторяющийся код с помощью циклов.