Дмитрий Красота - Введение в Python

Тут можно читать онлайн Дмитрий Красота - Введение в Python - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Дмитрий Красота - Введение в Python краткое содержание

Введение в Python - описание и краткое содержание, автор Дмитрий Красота, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Python это высокоуровневый, интерпретируемый, интерактивный и объектно-ориентированный скриптовой язык программирования. Python был разработан как "легкочитаемый" язык, часто использующий в качестве ключевых слов слова английского языка.
--------
Файл изготовлен по материалам сайта http://pythonicway.com/

Введение в Python - читать онлайн бесплатно полную версию (весь текст целиком)

Введение в Python - читать книгу онлайн бесплатно, автор Дмитрий Красота
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

| age = 44

| def info():

| print age # Печатаем глобальную переменную age

|

| def local_info():

| age = 22 # создаем локальную переменную age

| print age

|

| info() # напечатает 44

| local_info() # напечатает 22

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

Например:

| # глобальная переменная age

| age = 13

|

| # функция изменяющая глобальную переменную

| def get_older():

| global age

| age += 1

| print age # напечатает 13

| get_older() # увеличиваем age на 1

| print age # напечатает 14

Рекурсия

Рекурсией в программировании называется ситуация, в которой функция вызывает саму себя. Классическим примером рекурсии может послужить функция вычисления факториала числа.

Напомним, что факториалом числа, например, 5 является произведение всех натуральных (целых) чисел от 1 до 5. То есть, 1 * 2 * 3 * 4 * 5

Рекурсивная функция вычисления факториала на языке Python будет выглядеть так:

| def fact(num):

| if num == 0:

| return 1# По договоренности факториал нуля равен единице

| else:

| return num * fact(num - 1)

| # возвращаем результат произведения num и результата возвращенного функцией fact(num - 1)

Однако следует помнить, что использование рекурсии часто может быть неоправданным. Дело в том, что в момент вызова функции в оперативной памяти компьютера резервируется определенное количество памяти, соответственно чем больше функций одновременно мы запускаем - тем больше памяти потребуется, что может привести к переполнению стека (stack overflow) и программа завершится аварийно, не так как предполагалось. Учитывая это, там где это возможно, вместо рекурсии лучше применять циклы.

Рецепт создания функции в Python

Существует следующий алгоритм - рекомендация по созданию функции в Python. Например, мы создаем функцию вычисления площади прямоугольника.

1. Начинать следует с примеров того, что делает функция, и подобрать подходящее название. В нашем случае это будет выглядеть так:

| # На данном этапе мы еще не указываем имена переменных

| def rectangle_area_finder( ):

| """

| >>> rectangle_area_finder(3, 5)

| 15

| >>> rectangle_area_finder(17.2, 6)

| 103.2

| """

2. Указать типы данных, которые принимает функция и тип данных, который она возвращает

| # функция принимает два числа, а возвращает одно

| def rectangle_area_finder( ):

| """

| (num, num) -> num

| >>> rectangle_area_finder(3, 5)

| 15

| >>> rectangle_area_finder(17.2, 6)

| 103.2

| """

3. Подобрать подходящие названия для переменных

| # Поскольку это математическая функция нам вполне подойдут имена a и b

| def rectangle_area_finder(a, b):

| """

| (num, num) -> num

| >>> rectangle_area_finder(3, 5)

| 15

| >>> rectangle_area_finder(17.2, 6)

| 103.2

| """

4. Написать краткое, но содержательное описание функции

| def rectangle_area_finder(a, b):

| """

| (num, num) -> num

| Returns an area of a rectangle with given sides a and b.

| >>> rectangle_area_finder(3, 5)

| 15

| >>> rectangle_area_finder(17.2, 6)

| 103.2

| """

5. Написать собственно тело функции

| def rectangle_area_finder(a, b):

| """

| (num, num) -> num

| Returns an area of a rectangle with given sides a and b.

| >>> rectangle_area_finder(3, 5)

| 15

| >>> rectangle_area_finder(17.2, 6)

| 103.2

| """

| return a * b

6. Функция готова! Осталось вызвать ее с указанными в примерах аргументами

Как видно при вызове команды help с именем нашей функции в качестве - фото 11

Как видно, при вызове команды help() с именем нашей функции в качестве аргумента мы получаем написанную нами документацию.

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

Функциональное программирование в Python: lambda, zip, filter, map reduce

Published: 09 March 2017

Функциональным называется такой подход к процессу программирования, в программа рассматривается как вычисление математических функций, при этом не используются состояния и изменяемые объекты. Как правило, когда говорят о элементах функционального программировании в Python, то подразумеваются следующие функции: lambda, map, filter, reduce, zip.

Lambda выражение в Python:

lambda операторили lambda функция в Pythonэто способ создать анонимную функцию, то есть функцию без имени. Такие функции можно назвать одноразовыми, они используются только при создании. Как правило, lambda функциииспользуются в комбинации с функциями filter, map, reduce.

Синтаксис lambda выражения в Python

1 | lambda arguments: expression

В качестве arguments передается список аргументов, разделенных запятой, после чего над переданными аргументами выполняется expression. Если присвоить lambda-функцию переменной, то получим поведение как в обычной функции (делаем мы это исключительно в целях демонстрации)

1 | >>> multiply = lambda x,y: x * y

2 | >>> multiply(21, 2)

3 | 42

Но, конечно же, все преимущества lambda-выражений мы получаем, используя lambda в связке с другими функциями

Функция map() в Python:

В Python функция mapпринимает два аргумента: функцию и аргумент составного типа данных, например, список. map применяет к каждому элементу списка переданную функцию. Например, вы прочитали из файла список чисел, изначально все эти числа имеют строковый тип данных, чтобы работать с ними - нужно превратить их в целое число:

1 | old_list = ['1', '2', '3', '4', '5', '6', '7']

2 |

3 | new_list = []

4 | for item in old_list:

5 | new_list.append(int(item))

6 |

7 | print (new_list)

8 |

9 | [1, 2, 3, 4, 5, 6, 7]

Тот же эффект мы можем получить, применив функцию map:

1 | old_list = ['1', '2', '3', '4', '5', '6', '7']

2 | new_list = list(map(int, old_list))

3 | print (new_list)

4 |

5 | [1, 2, 3, 4, 5, 6, 7]

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

1 | def miles_to_kilometers(num_miles):

2 | """ Converts miles to the kilometers """

3 | return num_miles * 1.6

4 |

5 | mile_distances = [1.0, 6.5, 17.4, 2.4, 9]

6 | kilometer_distances = list(map(miles_to_kilometers, mile_distances))

7 | print (kilometer_distances)

[1.6, 10.4, 27.84, 3.84, 14.4]

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Дмитрий Красота читать все книги автора по порядку

Дмитрий Красота - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Введение в Python отзывы


Отзывы читателей о книге Введение в Python, автор: Дмитрий Красота. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x