Python lambda functions with examples

Функция main()

В языке Python функцию можно вызвать в конце программы, и она запустится (как показано в предыдущих примерах), однако некоторым языкам программирования (например, C++ или Java) требуется функция main. Функция main() в Python необязательна, но она позволяет логически структурировать программу Python и объединить наиболее важные её компоненты в одну функцию. Также с её помощью программы Python легче читать программистам, которые работают с другими языками.

Вернитесь в файл hello.py и добавьте функцию main(), сохранив при этом функцию hello().

В функцию main() добавьте выражение print(). Затем вызовите функцию hello() внутри функции main().

В конце файла вызовите функцию main().

Теперь можно запустить программу:

Теперь попробуйте использовать несколько функций.

Если вы определяете переменную внутри блока функции, вы сможете использовать её только внутри этой функции. Если же вы хотите использовать переменную в нескольких функциях, объявите глобальную переменную.

В Python область выполнения высокоуровневого кода называется __main__. Когда программа запускается из стандартного ввода, скрипта или интерактивного запроса, __name__ равно __main__.

Потому в программах используется такая конструкция:

Эта конструкция работает как разделитель, благодаря чему файл можно использовать как:

  • Основную программу (и запустить код после конструкции if).
  • Модуль (и не выполнять код после if).

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

Попробуйте расширить программу names.py. Создайте новый файл more_names.py; в этом файле объявите глобальную переменную и измените исходную функцию names(), разделив задачи на две дискретные функции.

Первая функция, has_vowel(), будет проверять строку name на наличие гласных. Вторая функция, print_letters(), будет выводить каждую букву строки name.

Теперь определите функцию main(), которая будет вызывать has_vowel() и print_letters().

Затем добавьте конструкцию if __name__ == ‘__main__’: в конец файла.

В данном случае все функции помещены в функцию main(). Потому после конструкции нужно вызвать функцию main().

Теперь можно запустить программу:

Программа вернёт такой же вывод, как и names.py, но теперь код программы лучше организован, и его можно использовать как модуль без изменений.

Если вы не хотите определять функцию main(), вы можете закончить программу так:

Функция main() и конструкция if __name__ == ‘__main__’: позволяют логически организовать код, делают его модульным и удобочитаемым.

Python NumPy

NumPy IntroNumPy Getting StartedNumPy Creating ArraysNumPy Array IndexingNumPy Array SlicingNumPy Data TypesNumPy Copy vs ViewNumPy Array ShapeNumPy Array ReshapeNumPy Array IteratingNumPy Array JoinNumPy Array SplitNumPy Array SearchNumPy Array SortNumPy Array FilterNumPy Random
Random Intro
Data Distribution
Random Permutation
Seaborn Module
Normal Distribution
Binomial Distribution
Poisson Distribution
Uniform Distribution
Logistic Distribution
Multinomial Distribution
Exponential Distribution
Chi Square Distribution
Rayleigh Distribution
Pareto Distribution
Zipf Distribution

NumPy ufunc
ufunc Intro
ufunc Create Function
ufunc Simple Arithmetic
ufunc Rounding Decimals
ufunc Logs
ufunc Summations
ufunc Products
ufunc Differences
ufunc Finding LCM
ufunc Finding GCD
ufunc Trigonometric
ufunc Hyperbolic
ufunc Set Operations

lambdas in reduce()

The reduce function, like map(), is used to apply an operation to every element in a sequence. However, it differs from the map in its working. These are the steps followed by the reduce() function to compute an output:

Step 1) Perform the defined operation on the first 2 elements of the sequence.

Step 2) Save this result

Step 3) Perform the operation with the saved result and the next element in the sequence.

Step 4) Repeat until no more elements are left.

It also takes two parameters:

  1. A function that defines the operation to be performed
  2. A sequence (any iterator like lists, tuples, etc.)

For example, here is a program that returns the product of all elements in a list:

from functools import reduce
sequences = 
product = reduce (lambda x, y: x*y, sequences)
print(product)

Here is the output:

120

Code Explanation:

  1. Import reduce from the functools module
  2. Here, we define a list called sequences which contains some numbers.
  3. We declare a variable called product which will store the reduced value
  4. A lambda function that runs on each element of the list. It will return the product of that number as per the previous result.
  5. Print the result returned by the reduce function.

References

  • http://mail.python.org/pipermail/python-list/2004-December/256859.html

  • http://mail.python.org/pipermail/python-list/2004-December/256881.html

  • http://mail.python.org/pipermail/python-list/2004-December/257023.html

  • http://boredomandlaziness.skystorm.net/2004/12/anonymous-functions-in-python.html

  • http://mail.python.org/pipermail/python-list/2004-December/257893.html

  • http://mail.python.org/pipermail/python-list/2004-December/257977.html

  • http://mail.python.org/pipermail/python-list/2005-January/258441.html

  • http://mail.python.org/pipermail/python-list/2005-January/258578.html

  • http://mail.python.org/pipermail/python-list/2005-January/258581.html

  • http://mail.python.org/pipermail/python-list/2005-January/258113.html

  • http://boo.codehaus.org/Closures

  • http://mail.python.org/pipermail/python-list/2005-June/287966.html

Python NumPy

NumPy IntroNumPy Getting StartedNumPy Creating ArraysNumPy Array IndexingNumPy Array SlicingNumPy Data TypesNumPy Copy vs ViewNumPy Array ShapeNumPy Array ReshapeNumPy Array IteratingNumPy Array JoinNumPy Array SplitNumPy Array SearchNumPy Array SortNumPy Array FilterNumPy Random
Random Intro
Data Distribution
Random Permutation
Seaborn Module
Normal Distribution
Binomial Distribution
Poisson Distribution
Uniform Distribution
Logistic Distribution
Multinomial Distribution
Exponential Distribution
Chi Square Distribution
Rayleigh Distribution
Pareto Distribution
Zipf Distribution

NumPy ufunc
ufunc Intro
ufunc Create Function
ufunc Simple Arithmetic
ufunc Rounding Decimals
ufunc Logs
ufunc Summations
ufunc Products
ufunc Differences
ufunc Finding LCM
ufunc Finding GCD
ufunc Trigonometric
ufunc Hyperbolic
ufunc Set Operations

5.1.1. Основные понятия и механизм работы¶

Подпрограмма должна быть объявлена и в общем случае содержать:

  • имя;

  • список имен и типов передаваемых параметров (необязательно);

  • тип возвращаемого значения (необязательно).

Если подпрограмма возвращает значение вызывающему коду (одно или несколько), она называется функцией, иначе — .

Большинство современных языков программирования для управления вызовом подпрограмм используют стек вызовов.

Примерный цикл работы стека вызова следующий (Видео 5.1.1, Видео 5.1.2):

  1. Вызов подпрограммы создает запись в стеке; каждая запись может содержать информацию о данных вызова (аргументах, результате, а также адресе возврата).

  2. Когда подпрограмма завершается, запись удаляется из стека и программа продолжает выполняться, начиная с адреса возврата.

Видео 5.1.1 — Cтек вызовов (пример, Нетология)

Your browser does not support the video tag.

Видео 5.1.2 — Cтек вызовов (пример, Stepik.org)

Global vs. Local variables

Variables that are defined inside a function body have a local scope, and those defined outside have a global scope.

This means that local variables can be accessed only inside the function in which they are declared, whereas global variables can be accessed throughout the program body by all functions. When you call a function, the variables declared inside it are brought into scope. Following is a simple example −

#!/usr/bin/python

total = 0; # This is global variable.
# Function definition is here
def sum( arg1, arg2 ):
   # Add both the parameters and return them."
   total = arg1 + arg2; # Here total is local variable.
   print "Inside the function local total : ", total
   return total;

# Now you can call sum function
sum( 10, 20 );
print "Outside the function global total : ", total 

When the above code is executed, it produces the following result −

Inside the function local total :  30
Outside the function global total :  0

Previous Page
Print Page

Next Page  

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector