{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "# MLClass. \"Прикладной анализ данных\"\n", "# Модуль \"Инструментарий Data Science\"\n", "\n", "\n", "## Автор материала: Юрий Кашницкий, ФКН НИУ ВШЭ\n", "
\n", "Материал распространяется на условиях лицензии Ms-RL. Можно использовать в любых целях, кроме коммерческих, но с обязательным упоминанием автора материала." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Урок 2. Основы языка Python" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Часть 2. Числа" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Числа в Python бывают разные:\n", " - Целые числа (int): 122, -4, 99999999999, 0o177, 0x9ff, 0b101010\n", " - Вещественные числа (float): 1.0, 3.14, .5, 4E21, 4.0e21 \n", " - Комплексные числа (complex): 3 + 4j, 3.0 + 4.0j, \n", " - Числа фиксированной точности% decimal.Decimal('0.1')\n", " - Рациональные числа: fractions.Fraction(3, 4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Операции с целыми и вещественными числами\n", "\n", "" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Python 2 and 3 compatibility\n", "# pip install future\n", "from __future__ import (absolute_import, division,\n", " print_function, unicode_literals)\n", "from builtins import *" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Целые числа" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "5\n" ] } ], "source": [ "print(3+2)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n" ] } ], "source": [ "print(3-2)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "6\n" ] } ], "source": [ "print(3*2)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n" ] } ], "source": [ "print(3 / 2)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "9\n" ] } ], "source": [ "print(3 ** 2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Можно использовать скобки для управления порядком операций" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "14\n", "20\n" ] } ], "source": [ "standard_order = 2 + 3*4\n", "print(standard_order)\n", "my_order = (2 + 3)*4\n", "print(my_order)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Вещественные числа" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.2\n" ] } ], "source": [ "print(.1 + .1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Целые числа в Python 2 и Python 3\n", "В Python 2 результат деления двух челых чисел - тоже целое, а в Python 3 - float." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.5\n" ] } ], "source": [ "print(3 / 2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "В Python 3 результат - 1.5, в Python 2 (без подключения future) - 1 " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Комплексные числа" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "|(2+3j)| = 3.60555127546\n", "(1+1j) * (2+3j) = (-1+5j)\n" ] } ], "source": [ "print \"|{0}| = {1}\".format(complex(2, 3), abs(complex(2, 3)))\n", "print \"{0} * {1} = {2}\".format(complex(1, 1), complex(2, 3), complex(1, 1) * complex(2, 3))" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(-5+10j)" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(1 + 2j) * (3+4j)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Числа фиксированной точности и рациональные числа" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Для решения проблем, связанных с точностью представления простых вещественных чисел введены\n", "вещественные числа с фиксированной точностью и рациональные числа (числа, представленные дробью, то есть парой целых чисел – числителем и знаменателем)." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.366666666667\n" ] }, { "data": { "text/plain": [ "True" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print(1.1/3)\n", "from decimal import Decimal\n", "from decimal import getcontext\n", "getcontext().prec = 3\n", "Decimal('4') / 3 == Decimal('1.33')" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.37\n" ] } ], "source": [ "from decimal import Decimal\n", "from decimal import getcontext\n", "getcontext().prec = 2\n", "print(Decimal('1.10') / 3)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n", "False\n" ] } ], "source": [ "print(7/71)\n", "print(7/71*71 == 7)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "True\n" ] } ], "source": [ "from fractions import Fraction\n", "print(Fraction(7, 71) * 71 == 7)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Приоритет арифметических операций в Python\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " \n", "#### Полезные ссылки\n", "\n", "- [сайт Python](http://python.org/)\n", "\n", " Основной сайт Python, содержит исчерпывающую документацию.\n", " \n", "\n", " \n", "- [StackOverflow](http://stackoverflow.com/)\n", "\n", " StackOverflow - популярный форум для вопросов и ответов о программировании. Решения для очень многих ошибок, появляющихся в процессе программирования, можно найти, используя поисковик и StackOverflow.\n", "\n", "\n", "\n", "- [CodeAcademy](https://www.codecademy.com/)\n", "\n", " CodeAcademy - это простое интерактивное введение во многие языки, включая Python." ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.10" }, "name": "seminar2_part1_variables_strings_numbers.ipynb" }, "nbformat": 4, "nbformat_minor": 0 }