Практические задачи по циклам python

Булевы значения

Это самый примитивный тип данных в Python, да и в любом языке программирования, который может принимать два значения: истина () или лож (). Небольшая оговорка, в Python ложными и истинными значениями считаются не только и .

К истинным значениям в Python относятся:

  • любое число не равно нулю;
  • любая непустая строка;
  • любой непустой объект.

К ложным значениям в Python относятся:

  • ноль ();
  • ;
  • пустая строка;
  • пустой объект.

Чтобы проверить, является ли значение объекта ложным или истинным, используйте функцию :

Пример

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

Операторы присваивания

Мы видели, что переменным можно присваивать значение с помощью оператора . Например, следующим образом:

a = 24
print(a)
# 24

Мы можем использовать эти переменные в выражениях с любым из упомянутых ранее операторов. Например, чтобы добавить 2 к , мы пишем:

a + 2
# 26

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

a += 2  # эквивалентно a = a + 2
print(a)
# 26

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

a += b    a -= b    a *= b    a /= b

a //= b    a %= b    a **= b    a &= b

a |= b    a ^= b    a <<= b    a >>= b

Каждый из этих операторов эквивалентен применению соответствующего оператора с последующим присваиванием. То есть для любого оператора выражение эквивалентно с небольшой оговоркой.

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

Matplotlib

Сайт: http://matplotlib.sourceforge.net/ Поддерживаемые версии Python: 2.4, 2.5Документация: http://matplotlib.sourceforge.net/

Краткое описание

Matplotlib — это библиотека для построения графиков и визуализации данных. Кроме большого количества типов графиков, которые можно построить с помощью этого пакета, приятной особенностью Matplotlib является то, что функции для построения графиков напоминают функции Matlab. Здесь есть проблемы с отображением на графиках русских букв. Зато через Matplotlib можно выводить формулы в виде TeX. Графики, нарисованные с помощью Matplotlib можно масштабировать для просмотра интересующей области, причем как программно из скрипта, так и через интерфейс с помощью мыши.

Примеры использования

#-*- coding: utf-8 -*-import pylabimport math# Картинка в левом верхнем углу
x1 = range (1, 100)
data1 = math.exp (-n * n / 1000.0) for n in x1# Разбиваем окно на две  строки и два столбца. Вывод будет осуществляться в первую область
pylab.subplot (2, 2, 1)# Вывод данных
pylab.plot (x1, data1, «r»)# Картинка в правом верхнем углу
fracs = 10, 20, 30, 40# Разбиваем окно на две  строки и два столбца. Вывод будет осуществляться во вторую область
pylab.subplot (2, 2, 2)
pylab.pie (fracs)# Картинка снизу
x2 = range (, 720)
data2 = math.sin (n * math.pi / 180.0) for n in x2
data3 = math.sin (n * math.pi / 180.0 + math.pi / 3) for n in x2# Разбиваем окно на две строки и один столбец. Вывод будет осуществляться во вторую область
pylab.subplot (2, 1, 2)# Вывод данных
pylab.plot (x2, data2)
pylab.plot (x2, data3, «—«)# Добавим легенду
pylab.legend («label 1», «label 2»)# Включим сетку
pylab.grid(True)# Нарисовать все
pylab.show()

Исходник

Результат работы:

Также можете посмотреть статью Рисование трехмерных графиков в Python с помощью Pylab/MatPlotLib и Шпаргалку по библиотеке Matplotlib/Pylab.

Много примеров использования можно найти на этой странице официального сайта.

Деление (/)

Сложение, вычитание и умножение тривиальны, а вот с делением не всё так просто. В Python существует три вида деления и столько же разных операторов. Начнём с истинного деления, за которое отвечает оператор «». Его главным отличием является то, что, вне зависимости от типов операндов, будет возвращен вещественный результат ().

Этот вид деления наиболее близок к обычному и знакомому нам математическому. И здесь тоже нельзя делить на ноль:

Немного истории. В старых версиях Питон оператор «/» выполнял операцию классического деления: т.е. он делил целочисленно и усекал дробную часть в том случае, когда делимое и делитель были целыми. Если же операнды принадлежали к множеству вещественных чисел, то проводилось деление с сохранением дробной части, и результат был float.

Разработчики отказались от классического деления в Python 3.0 и вместо него добавили истинное деление. Архитекторы языка пошли на такой шаг по той причине, что в предыдущей модели классического деления результаты напрямую зависели от типов операндов. Из-за этого возникали трудности с их предварительной идентификацией и оценкой, что было особенно критично для Питона, как для языка с динамической типизацией.

Числа

 Python есть 6 основных «математических» операторов:

  1. сложение;
  2. вычитание;
  3. умножение;
  4. деление;
  5. возведение в степень.
  6. остаток от деления (mod);
  7. целочисленное деление (div).

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

Сложение

Несложно догадаться, что делает этот оператор: он просто складывает числа. Чтобы проверить, как это работает, просто перейдите в IDLE и введите число, затем знак сложения + (плюс), а затем еще одно число, которое нужно добавить к первому числу. Нажмите Enter. Это должно выглядеть так, как показано ниже.

Пример: сложим 8 и 19.

После нажатия клавиши Enter чуть ниже строки кода появится ответ. Вывод так и будет отображаться каждый раз — чуть ниже кода. Нажимаете Enter — получаете результат. 

Не останавливайтесь на этом примере, попробуйте использовать оператор сложения с другими числами. Например, попробуйте сложить числа с плавающей точкой: и т. д.

У вычитания такой же синтаксис, как и у сложения. Просто измените оператор на знак вычитания (минус). Так же выберите случайные числа и попробуйте вычесть одно из другого.

Пример: вычтем из 89.33 число 23.67. Ответ 65.55. 

Умножение

Опять то же самое! Просто измените оператор на (звездочку). Вы ведь знаете, что он используется для умножения, верно? Попробуйте использовать оператор в IDLE. 

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

Деление

На этот раз нам понадобится знак (слэш). Попробуйте использовать оператор со случайными числами. 

Если вы новичок, то можете столкнуться с некоторыми трудностями. Какими? Сейчас узнаем. Для начала возьмем целые числа (числа без десятичной дроби), например 16 и 2, и разделим одно на другое.

Возведение в степень

Этого математического оператора обычно в языках программирования нет. Честно говоря, языков со встроенным возведением в степень, кроме Python, и не припомнить. В других языках для возведения в степень используют другие операторы. В Python же для этого достаточно поставить между двумя числами (две звездочки). Правое число возведется в степень, равную левому числу. Например, чтобы найти 10 степень числа 2, нужно написать:

Теперь мы знаем обо всех часто используемых математических операторах Python. Попробуйте объединить несколько операторов и использовать их в одном выражении. Например, введите . Python должен вывести .

Взятие остатка от деления

Оператор взятия остатка от деления в Python обозначается % (знак процента). Если вам знакомы другие языки программирования, скорее всего, вы знаете, что такое взятие остатка от деления. В других языках этот оператор часто называют mod. Если вы с ним еще не знакомы, ничего страшного. 

Вы ведь знаете оператор деления, так? Тогда вы знаете, каков будет остаток от этого деления, верно? Этот оператор как раз и возвращает этот остаток в качестве ответа. Целая часть как бы откидывается. Вот несколько примеров.  

  • , так как 12 полностью делится на 2. 
  • , так как остаток от деления 13 на 2 равен 1. 
  • , так как, опять же, остаток от деления 19 на 5 равен 4.

В IDLE все так же:

Целочисленное деление

Этот оператор в Python обозначается знаком // (двумя слэшами), в других языках его называют div. Оператор откидывает остаток и оставляет только целую часть. Вот как это работает:

  • , так как 13/2 = 6.5
  • , так как 19/5 = 3.8

Попробуйте использовать целочисленное деление со случайными числами в своей IDLE.

Арифметические операторы Python.

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

Арифметические операторы Python
Операции Python  Арифметический оператор Алгебраическое выражение Выражение Python
Сложение + a + b a + b
Вычитание a — b a — b
Умножение * a · b a * b
Возведение в степень ** xy a ** b
Деление x / y x / y
Целочисленное деление // [ x / y ] x // y
Остаток от деления % r mod s  r % s

2.1. Сложение и  вычитание в Python.

Сложение и  вычитание в целом выполняется и записывается, как и обычно в алгебре. 

>>> 5 + 27
>>> 5 — 23

2.2. Умножение в Python( *)

В Python в качестве оператора умножения используется знак * (звездочка)

>>> 5 * 525

2.3. Возведение в степень в Python( **)

В Python для возведения в степень используются два знака **. 

>>> 5 ** 615625
>>> 81 **(1/2)9.0

Для вычисления квадратного корня можно воспользоваться показателем степени 1/2. Корень 81 = 9.

2.4. Деление в Python ( )

Оператор деления () делит числитель на знаменатель

>>> 10 25.0
>>> 10 81.25

Важно, при делении двух любых чисел — даже если это целые числа, частным от деления которых является целое число, вы всегда получаете вещественное число. 

2.5. Деление с округлением в Python( //)

Операция целочисленное деление ( // ) делит числитель на знаменатель, в результате получается наибольшее целое число, не превышающее результат. В Python дробная часть отсекается. 

>>> 10 // 81
>>> 20 // 82
>>> — 17 // 4-5

При обычном деление 10 на 8, получается результат 1,25. Python отсекает дробную часть и в итоге получаем 1.

2.6. Оператор вычисления остатка от деления ( % )

Для вычисления остатка от  деления в Python используется оператор вычисления остатка от деления %

>>> 21 % 51
>>> 18 % 42

>>> 9.5 % 4.50.5

В данных примерах при делении 21 на 5, получается частное 4 и остаток 1. Во втором случае при делении 18 на 4, получается 4 и остаток 2. Этот оператор чаще работает с целыми числами, но также может использоваться и с другими типами. 

Библиотека (модуль) math

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

Для работы с данным модулем его предварительно нужно импортировать.

>>> import math

Рассмотрим наиболее часто используемые функции.

math.ceil(x)

Возвращает ближайшее целое число большее, чем x.

>>> math.ceil(3.2)
4

math.fabs(x)

Возвращает абсолютное значение числа.

>>> math.fabs(-7)
7.

math.factorial(x)

Вычисляет факториал x.

>>> math.factorial(5)
120

math.floor(x)

Возвращает ближайшее целое число меньшее, чем x.

>>> math.floor(3.2)
3

math.exp(x)

Вычисляет e**x.

>>> math.exp(3)
20.085536923187668

math.log2(x)

Логарифм по основанию 2.

math.log10(x)

Логарифм по основанию 10.

math.log(x)

По умолчанию вычисляет логарифм по основанию e, дополнительно можно указать основание логарифма.

>>> math.log2(8)
3.
>>> math.log10(1000)
3.
>>> math.log(5)
1.6094379124341003
>>> math.log(4, 8)
0.6666666666666667

math.pow(x, y)

Вычисляет значение x в степени y.

>>> math.pow(3, 4)
81.

math.sqrt(x)

Корень квадратный от x.

>>> math.sqrt(25)
5.

Тригонометрические функции, их мы оставим без примера.

math.cos(x)

math.sin(x)

math.tan(x)

math.acos(x)

math.asin(x)

math.atan(x)

И напоследок пару констант.

math.pi

Число пи.

math.e

Число е.

Работа с циклами и условиями

Теперь посмотрим, как в Python устроены условия и циклы, которые позволяют направить вычисления в ту или иную сторону.

Для условий используются классические структуры if — else. Давайте с их помощью проверим число на чётность:

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

Циклы позволяют выполнять какое-то действие больше чем один раз. Виды циклов:

  • while: действие будет выполняться до тех пор, пока выполняется условие;
  • for: действие будет выполнено определённое количество раз.

Посмотрим на примерах, как это работает.

ПРИМЕР 1

Такой код выведет нам последовательность чисел от 10 до 0, а потом остановится.

ПРИМЕР 2

Здесь мы получим последовательность от 10 до 1 и напечатанное «Hurray!» в конце.

Перед работой с For-циклом надо узнать, что такое массив.

Массив — это набор информации, который представляется так:

В одном массиве можно хранить переменные разных типов. Например, в нашем массиве array хранится один int, два float и один str. Индексы в Python начинаются с нуля, поэтому чтобы получить информацию с первого места (в нашем случае цифру 1), напишем вот так:

С элементом массива можно работать как с обычным числом, то есть если написать array +1, мы получим 2.

Напишем простенький цикл:

Деление с остатком Python

Оператор % используется для деления по модулю, и возвращает остаток от деления, а не частное. Это полезно, например, для нахождения множителей числа.

Деление по модулю Python (с остатком) — пример:

o = 85
p = 15
print(o % p)

Вывод

10

В этом примере 85 делится на 15. Результат – 5 с остатком 10. Значение  выводится, поскольку оператор возвращает остаток от деления.

Если мы используем два числа с плавающей точкой для деления по модулю, число с плавающей точкой будет возвращено в качестве остатка:

q = 36.0
r = 6.0
print(o % p)

Вывод

0.0

В приведенном выше примере 36.0 делится на 6.0 без остатка, поэтому возвращается значение 0.0.

Не все так гладко…

Однако, не все так гладко в python. Например, сейчас уживается две версии языка 2. и 3., обе они развиваются параллельно, однако синтаксис 2ой версии не совместим полностью с синтаксисом 3ей версии.

Еще одна проблема может возникнуть у вас, если вы не обладатель linux, в этом случае при установке ряда библиотек у вас могут возникнуть трудности, некоторые библиотеки будут полностью не совместимы, например tensorflow.

P.S: все библиотеки для python, о которых говорилось данной статье, имеют открытый исходный код и распространяются бесплатно. Для их загрузки можно воспользоваться командой pip или просто скачать сборку Anaconda, которая содержит все основные библиотеки.

# Преобразование к логическому типу

Нам известны три типа данных – целые и вещественные (дробные) числа, и также строками. Новый четвертый – логический тип данных (тип ). Его также называют булевым. У этого типа всего два возможных значения: (правда) и (ложь):

1234

Здесь переменной a было присвоено значение , после чего с помощью встроенной в Python функции проверен ее тип. Интерпретатор сообщил, что это переменная класса . Понятия «класс» и «тип данных» в данном случае одно и то же. Переменная b также связана с булевым значением.

В программировании обычно приравнивают к нулю, а – к единице. Чтобы в этом убедиться, можно преобразовать булево значение к целочисленному типу:

12

Возможно и обратное. Можно преобразовать какое-либо значение к булевому типу:

12345

И здесь работает правило: всё, что не и , является правдой: .

Trigonometric functions¶

(x)

Return the arc cosine of x, in radians. The result is between and
.

(x)

Return the arc sine of x, in radians. The result is between and
.

(x)

Return the arc tangent of x, in radians. The result is between and
.

(y, x)

Return , in radians. The result is between and .
The vector in the plane from the origin to point makes this angle
with the positive X axis. The point of is that the signs of both
inputs are known to it, so it can compute the correct quadrant for the angle.
For example, and are both , but is .

(x)

Return the cosine of x radians.

(p, q)

Return the Euclidean distance between two points p and q, each
given as a sequence (or iterable) of coordinates. The two points
must have the same dimension.

Roughly equivalent to:

sqrt(sum((px - qx) ** 2.0 for px, qx in zip(p, q)))

New in version 3.8.

(*coordinates)

Return the Euclidean norm, .
This is the length of the vector from the origin to the point
given by the coordinates.

For a two dimensional point , this is equivalent to computing
the hypotenuse of a right triangle using the Pythagorean theorem,
.

Changed in version 3.8: Added support for n-dimensional points. Formerly, only the two
dimensional case was supported.

Changed in version 3.10: Improved the algorithm’s accuracy so that the maximum error is
under 1 ulp (unit in the last place). More typically, the result
is almost always correctly rounded to within 1/2 ulp.

(x)

Return the sine of x radians.

Арифметические операции с целыми и вещественными числами

Все эксперименты будем производить в Python, запущенном в интерактивном режиме.

Сложение.

Складывать можно непосредственно сами числа…

>>> 3+2
5

либо переменные, но они должны предварительно быть проинициализированы.

>>> a = 3
>>> b = 2
>>> a + b
5

Результат операции сложения можно присвоить другой переменной…

>>> a = 3
>>> b = 2
>>> c = a + b
>>> print(c)
5

либо ей же самой, в таком случае можно использовать полную или сокращенную запись, полная выглядит так

>>> a = 3
>>> b = 2
>>> a = a + b
>>> print(a)
5

сокращенная так

>>> a = 3
>>> b = 2
>>> a += b
>>> print(a)
5

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

Вычитание.

>>> 4-2
2
>>> a = 5
>>> b = 7
>>> a - b
-2

Умножение.

>>> 5 * 8
40
>>> a = 4
>>> a *= 10
>>> print(a)
40

Деление.

>>> 9  3
3.
>>> a = 7
>>> b = 4
>>> a  b
1.75

Получение целой части от деления.

>>> 9  3
3
>>> a = 7
>>> b = 4
>>> a  b
1

Получение остатка от деления.

>>> 9 % 5
4
>>> a = 7
>>> b = 4
>>> a % b
3

Возведение в степень.

>>> 5 ** 4
625
>>> a = 4
>>> b = 3
>>> a ** b
64

Библиотека Math в Python

Math является самым базовым математическим модулем Python. Охватывает основные математические операции, такие как сумма, экспонента, модуль и так далее. Эта библиотека не используется при работе со сложными математическими операциями, такими как умножение матриц. Расчеты, выполняемые с помощью функций библиотеки math, также выполняются намного медленнее. Тем не менее, эта библиотека подходит для выполнения основных математических операций.

Пример: Вы можете найти экспоненту от 3, используя функцию  библиотеки math следующим образом:

from math import exp
exp(3) # Вычисление экспоненты


Математические библиотеки Python

Начало работы в Python

Чтобы начать программировать, нужно скачать и установить дистрибутив. Для новичков хорошо подойдёт Anaconda.

Чем он хорош: в нём есть всё, что понадобится в работе.

В Anaconda уже встроены:

  • все библиотеки машинного обучения и библиотеки для работы с данными (например, NumPy и Pandas);
  • библиотека для визуализации (Matplotlib);
  • надстройка Jupyter, чтобы программировать прямо в браузере.

После того как вы установили и открыли Anaconda, у вас появится вот такое окно:

Кнопкой Launch запустим «тетрадку» Jupyter, которая откроет ваш дефолтный браузер. После этого ваше рабочее пространство будет выглядеть так:

Или так:

По функциональности они абсолютно одинаковые.

Важная особенность: комментарии в Python делаются с помощью решетки, вот так:

Комментарии — это часть кода, которая не будет выполняться. Для чего используется комментирование?

Во-первых, чтобы написать небольшое пояснение (например, к какой-то функции).

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

Выполнение кода. Для этого используется Shift+Enter, Ctrl+Enter или значок «Пуск».

В чём разница?

Если нажать Shift+Enter, то курсор перескочит на следующую ячейку.

Если нажать Ctrl+Enter — останется в той, где вы работали.

Функции возведения в степень и логарифма

Эта функция принимает один параметр в виде дробного числа и возвращает .

Пример:

Вывод:

Эта функция работает так же, как и , но возвращает . Здесь, значит , то есть, .

Пример:

Вывод:

Функция log() — логарифм числа

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

Пример:

Вывод:

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

Пример:

Вывод:

Вычисляет логарифм по основанию 10.

Пример:

Вывод:

Функция pow() — степень числа

Используется для нахождение степени числа. Синтаксис функции . Она принимает два аргумента: основание и степень.

Пример:

Вывод:

Функция sqrt() — квадратный корень числа

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

Пример:

Вывод:

Закрепление знаний на практике

К этой ступени вы подходите с необходимыми знаниями для начала аналитической работы с Python. Осталось их закрепить и приумножить на практике. Мы знаем три способа попратиковаться с пользой: участвовать в конкурсах Kaggle, придумать и решить задачу самому, пройти практический курс.

Участвовать в конкурсах.

Kaggle часто проводит конкурсы по анализу данных. Советуем сначала участвовать в конкурсах без призов, потому что они самые простые. И со временем перебираться к более сложным.

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

Если такой способ практики вам подходит, почитайте руководство, как участвовать в конкурсах Kaggle, — The Beginner’s Guide to Kaggle.

Придумать и решить задачу самому.

Давайте представим маркетолога, который устал допоздна засиживаться на работе из-за того, что приходится вручную собирать и обрабатывать данные и делать на их основе наглядные отчеты. Чтобы упростить себе работу и возвращаться вовремя домой, он ставит задачу — автоматизировать этот процесс, используя Python, и решает ее.

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

Если это произойдет, воспользуйтесь способом ниже.

Пройти практический курс.

Под практическим курсом мы понимаем получение необходимых знаний и закрепление их на реальной задаче под присмотром наставника.

Мы не стали искать подобные курсы у других, а сделали свой. Называется он «Курс по Pytnon для анализа данных». Участники изучат Python и научатся использовать его для анализа данных на примере реальных бизнес-задач.

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

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Люкс-хост
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: