From 62fb1b7525cb85d26566eb48ff7c40d2b61b9b3c Mon Sep 17 00:00:00 2001 From: Dmitriy Date: Mon, 30 Mar 2020 14:06:37 +0300 Subject: [PATCH 1/2] add Ready to check --- .gitignore | 2 + ArrayList.py | 195 ++ lecture_1/01 Introduction.ipynb | 1266 ------------ lecture_1/02. Data Types.ipynb | 442 ----- lecture_1/03. Strings.ipynb | 886 --------- lecture_1/04. Iterators.ipynb | 1150 ----------- lecture_1/Python_Lecture1.pptx | Bin 371186 -> 0 bytes lecture_1/StringRep.java | 22 - lecture_1/images/cpp.png | Bin 21617 -> 0 bytes lecture_1/images/hh.png | Bin 25317 -> 0 bytes lecture_1/images/java.png | Bin 61227 -> 0 bytes lecture_1/images/jupyter.png | Bin 30974 -> 0 bytes lecture_1/images/platforms.png | Bin 95514 -> 0 bytes lecture_1/images/salary.jpeg | Bin 160221 -> 0 bytes lecture_1/images/type_hier.png | Bin 160976 -> 0 bytes lecture_1/string_rep.py | 8 - lecture_2/05. Functions.ipynb | 588 ------ lecture_2/06. Generators.ipynb | 369 ---- lecture_2/07. Libraries.ipynb | 659 ------- lecture_2/Lecture 2.ipynb | 2159 --------------------- lecture_2/ipynb_content/2vars2obj.png | Bin 20810 -> 0 bytes lecture_2/ipynb_content/arena.png | Bin 43831 -> 0 bytes lecture_2/ipynb_content/cbr.jpg | Bin 45446 -> 0 bytes lecture_2/ipynb_content/cbv.jpg | Bin 55151 -> 0 bytes lecture_2/ipynb_content/collections.pdf | Bin 55060 -> 0 bytes lecture_2/ipynb_content/hierarchy.png | Bin 100684 -> 0 bytes lecture_2/ipynb_content/machine.gif | Bin 5939 -> 0 bytes lecture_2/ipynb_content/memlayout.png | Bin 9288 -> 0 bytes lecture_2/ipynb_content/sequence.pdf | Bin 47764 -> 0 bytes lecture_2/ipynb_content/shallow.png | Bin 21238 -> 0 bytes lecture_2/ipynb_content/stackoverflow.jpg | Bin 138330 -> 0 bytes lecture_2/ipynb_content/sticker.png | Bin 63081 -> 0 bytes lecture_2/ipynb_content/zones.png | Bin 66292 -> 0 bytes lecture_3/Classes.ipynb | 2084 -------------------- lecture_3/VCS Basics.ipynb | 1435 -------------- lecture_3/ipynb_content/commit.png | Bin 63081 -> 0 bytes lecture_3/ipynb_content/cycle.png | Bin 64840 -> 0 bytes lecture_3/ipynb_content/distr.png | Bin 17114 -> 0 bytes lecture_3/ipynb_content/plumbing.png | Bin 20199 -> 0 bytes lecture_3/ipynb_content/shared.png | Bin 10440 -> 0 bytes test.py | 176 ++ 41 files changed, 373 insertions(+), 11068 deletions(-) create mode 100644 ArrayList.py delete mode 100644 lecture_1/01 Introduction.ipynb delete mode 100644 lecture_1/02. Data Types.ipynb delete mode 100644 lecture_1/03. Strings.ipynb delete mode 100644 lecture_1/04. Iterators.ipynb delete mode 100644 lecture_1/Python_Lecture1.pptx delete mode 100644 lecture_1/StringRep.java delete mode 100644 lecture_1/images/cpp.png delete mode 100644 lecture_1/images/hh.png delete mode 100644 lecture_1/images/java.png delete mode 100644 lecture_1/images/jupyter.png delete mode 100644 lecture_1/images/platforms.png delete mode 100644 lecture_1/images/salary.jpeg delete mode 100644 lecture_1/images/type_hier.png delete mode 100644 lecture_1/string_rep.py delete mode 100644 lecture_2/05. Functions.ipynb delete mode 100644 lecture_2/06. Generators.ipynb delete mode 100644 lecture_2/07. Libraries.ipynb delete mode 100644 lecture_2/Lecture 2.ipynb delete mode 100644 lecture_2/ipynb_content/2vars2obj.png delete mode 100644 lecture_2/ipynb_content/arena.png delete mode 100644 lecture_2/ipynb_content/cbr.jpg delete mode 100644 lecture_2/ipynb_content/cbv.jpg delete mode 100644 lecture_2/ipynb_content/collections.pdf delete mode 100644 lecture_2/ipynb_content/hierarchy.png delete mode 100644 lecture_2/ipynb_content/machine.gif delete mode 100644 lecture_2/ipynb_content/memlayout.png delete mode 100644 lecture_2/ipynb_content/sequence.pdf delete mode 100644 lecture_2/ipynb_content/shallow.png delete mode 100644 lecture_2/ipynb_content/stackoverflow.jpg delete mode 100644 lecture_2/ipynb_content/sticker.png delete mode 100644 lecture_2/ipynb_content/zones.png delete mode 100755 lecture_3/Classes.ipynb delete mode 100644 lecture_3/VCS Basics.ipynb delete mode 100644 lecture_3/ipynb_content/commit.png delete mode 100644 lecture_3/ipynb_content/cycle.png delete mode 100644 lecture_3/ipynb_content/distr.png delete mode 100644 lecture_3/ipynb_content/plumbing.png delete mode 100644 lecture_3/ipynb_content/shared.png create mode 100644 test.py diff --git a/.gitignore b/.gitignore index b6e4761..a724b2a 100644 --- a/.gitignore +++ b/.gitignore @@ -127,3 +127,5 @@ dmypy.json # Pyre type checker .pyre/ +.DS_Store + diff --git a/ArrayList.py b/ArrayList.py new file mode 100644 index 0000000..4e84272 --- /dev/null +++ b/ArrayList.py @@ -0,0 +1,195 @@ +import array as arr +from typing import Iterable, Any, Type + + +class ArrayList: + def __init__(self, typecode: str, data=None) -> None: + ''' + Функция для инициализации объекта класса + + :param typecode: тип + :param data: данные + ''' + if typecode in ['i', 'f', 'u'] and type(data) == list and data is not None: + self.__type = typecode + self.array = arr.array(typecode, data) + elif typecode in ['i', 'f', 'u'] and data is None: + self.__type = typecode + self.array = arr.array(typecode) + else: + raise Exception('Wrong init parameters.') + + self.__type_dict = {'i': int, 'f': float, 'u': str}[typecode] + super().__init__() + + def __getitem__(self, index): + if isinstance(index, slice): + return type(self)(self.__type, self.array[index]) + else: + return self.array[index] + + def __setitem__(self, key, value): + self.array[key] = value + + def __delitem__(self, key): + i = self.index(key) + self.array = self.array[:i] + self.array[i + 1:] + + def __contains__(self, item): + for i in range(len(self.array)): + if self.array[i] == item: + return True + return False + + def __iter__(self): + return Iterator(self.array) + + def __reversed__(self): + return Iterator(self.array, -1, 0, -1) + + def __len__(self): + return len(self.array) + + def __iadd__(self, ArrayList): + self.array = self.array + ArrayList.array + return self + + def __str__(self) -> str: + return 'ArrayList' + str(self.array)[5:] + + def __repr__(self): + return self.array.__repr__() + + def __sizeof__(self) -> int: + return self.array.__sizeof__() + + def __dir__(self) -> Iterable[str]: + return self.__dir__() + + def append(self, value): + ''' + Добавление в конец списка + + :param value: значение + :return: None + ''' + if self.__type_dict is type(value): + self.array = self.array + arr.array(self.__type, [value]) + else: + raise Exception('Wrong type of value.') + + def insert(self, index: int, value): + ''' + Добавление значения по индексу + + :param index: индекс + :param value: значение + :return: None + ''' + if type(index) is int and type(value) is self.__type_dict: + if index >= self.__len__(): + self.append(value) + elif index <= 0: + self.array = arr.array(self.__type, [value]) + self.array + else: + tmp = arr.array(self.__type, [value]) + self.array = self.array[:index] + tmp + self.array[index:] + else: + raise Exception('Wrong index and value.') + + def count(self, value): + ''' + Подсчет одинаннаковых значений + + :param value: значение + :return: None + ''' + counter = 0 + for el in self.array: + if el == value: + counter += 1 + return counter + + def reverse(self): + ''' + Разворот списка + + :return: список на оборот + ''' + self.array = self.array[::-1] + + def remove(self, value): + ''' + Удаление элемента + + :param value: значение + :return: None + ''' + for i, el in enumerate(self): + if el == value: + self.array = self.array[:i] + self.array[i + 1:] + + def pop(self, i=None): + ''' + Удаление элемента по индексу + + :param i: индекс + :return: удаленный элемент + ''' + if i is None: + i = -1 + + el = self.array[i] + if i != -1: + self.array = self.array[:i] + self.array[i + 1:] + else: + self.array = self.array[:i] + return el + + def index(self, value): + ''' + Возвращение индекса + + :param value: элемент + :return: индекс по элементу + ''' + for i, el in enumerate(self.array): + if el == value: + return i + raise Exception('Value not found.') + + def extend(self, arrayList): + ''' + Добавление списка к существующему + + :param arrayList: + :return: None + ''' + for el in arrayList: + self.array.append(el) + + +class Iterator: + def __init__(self, collection, start=0, end=-1, step=1): + self.collection = collection + if start < 0: + self.start = len(collection) + start + else: + self.start = start + if end < 0: + self.end = len(collection) + end + step + else: + self.end = end + step + self.step = step + self.current = self.start + + def __next__(self): + if self.current == self.end: + raise StopIteration + + c_el = self.collection[self.current] + self.current += self.step + return c_el + + def __iter__(self): + return self \ No newline at end of file diff --git a/lecture_1/01 Introduction.ipynb b/lecture_1/01 Introduction.ipynb deleted file mode 100644 index 4ee7b2a..0000000 --- a/lecture_1/01 Introduction.ipynb +++ /dev/null @@ -1,1266 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "-" - } - }, - "source": [ - "# Python 101" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "-" - } - }, - "source": [ - "**TLDR** - один из лучших языков программирования. \n", - "И что в нем особенного?" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Особенности\n", - "### Интерпретрируемый язык" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Создадим Hello World" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "!echo \"a = 1; print('Hello world, and the number is %d' % a)\" > interpreted.py" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Hello world, and the number is 1\r\n" - ] - } - ], - "source": [ - "!python interpreted.py" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Как видим, ничего компилировать не пришлось. \n", - "Что осталось на выходе?" - ] - }, - { - "cell_type": "code", - "execution_count": 80, - "metadata": {}, - "outputs": [], - "source": [ - "!ls -al | grep *.py*" - ] - }, - { - "cell_type": "code", - "execution_count": 82, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " 2 0 LOAD_GLOBAL 0 (print)\n", - " 2 LOAD_CONST 1 ('Hello friends!')\n", - " 4 CALL_FUNCTION 1\n", - " 6 POP_TOP\n", - " 8 LOAD_CONST 0 (None)\n", - " 10 RETURN_VALUE\n" - ] - } - ], - "source": [ - "def hello_world():\n", - " print(\"Hello friends!\")\n", - "\n", - "import dis\n", - "dis.dis(hello_world)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "У нас не остается никаких бинарных исполняемых файлов" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Кроссплатформенность" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Python - кроссплатформенный (если есть интерпретатор для вашей платформы)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "![platforms](images/platforms.png)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Динамическая типизация" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], - "source": [ - "variable_a = 1\n", - "print(type(variable_a))" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], - "source": [ - "variable_a = \"123\"\n", - "print(type(variable_a))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Язык с удобным синтаксисом" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Java** (без модных API) - https://pastebin.com/Rk3L67eU" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "![java](images/java.png)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Python-версия**" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "REPREPREP\n" - ] - } - ], - "source": [ - "def repeat_string(data, times=7):\n", - " if data and times > 0:\n", - " print(data*times)\n", - " else:\n", - " print(\"Incorrect data\")\n", - "\n", - "repeat_string('REP', 3)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Вопрос** - при каком случае сломается этот код?" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Большое число библиотек на любой случай" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Стандартная библиотека** \n", - "https://docs.python.org/3/library/ \n", - " \n", - " \n", - "**Real-Case** \n", - "Сбор данных о погоде в разных городах и укладка для дальнейшего использования \n", - "https://www.metaweather.com/api/" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "import json\n", - "import requests\n", - "import pandas as pd" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "london\n", - "paris\n", - "moscow\n" - ] - } - ], - "source": [ - "location_api = 'https://www.metaweather.com/api/location/search/?query={city}'\n", - "weather_api = 'https://www.metaweather.com/api/location/{id}'\n", - "\n", - "cities = ['london', 'paris', 'moscow']\n", - "df_raw = []\n", - "\n", - "for c in cities:\n", - " print(c)\n", - " woeid = requests.get(location_api.format(city=c)).json()[0]['woeid']\n", - " desc = requests.get(weather_api.format(id=woeid)).json()\n", - " if isinstance(desc, list):\n", - " df_raw.append(desc[0])\n", - " else:\n", - " df_raw.append(desc['consolidated_weather'][0])\n", - "\n", - "df = pd.DataFrame(df_raw)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idweather_state_nameweather_state_abbrwind_direction_compasscreatedapplicable_datemin_tempmax_tempthe_tempwind_speedwind_directionair_pressurehumidityvisibilitypredictability
05268017250304000Heavy RainhrSSE2020-03-04T12:16:02.402074Z2020-03-043.4308.2057.0103.651427164.3418901008.5697.27315077
14757901367312384Heavy RainhrS2020-03-04T12:36:05.400612Z2020-03-044.0558.7906.3105.745560191.0000001012.5806.69092577
24825981833445376Heavy CloudhcSE2020-03-04T12:27:32.621772Z2020-03-041.9155.2005.7053.006960127.3276921017.08911.09706871
\n", - "
" - ], - "text/plain": [ - " id weather_state_name weather_state_abbr \\\n", - "0 5268017250304000 Heavy Rain hr \n", - "1 4757901367312384 Heavy Rain hr \n", - "2 4825981833445376 Heavy Cloud hc \n", - "\n", - " wind_direction_compass created applicable_date \\\n", - "0 SSE 2020-03-04T12:16:02.402074Z 2020-03-04 \n", - "1 S 2020-03-04T12:36:05.400612Z 2020-03-04 \n", - "2 SE 2020-03-04T12:27:32.621772Z 2020-03-04 \n", - "\n", - " min_temp max_temp the_temp wind_speed wind_direction air_pressure \\\n", - "0 3.430 8.205 7.010 3.651427 164.341890 1008.5 \n", - "1 4.055 8.790 6.310 5.745560 191.000000 1012.5 \n", - "2 1.915 5.200 5.705 3.006960 127.327692 1017.0 \n", - "\n", - " humidity visibility predictability \n", - "0 69 7.273150 77 \n", - "1 80 6.690925 77 \n", - "2 89 11.097068 71 " - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "df.to_excel('weather_dataset.xlsx', index=False)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Недостатки" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Быстродействие\n", - "Говорят что Python медленный. \n", - "Не всегда" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Original string: PHP\n", - "\n", - "After repeating 7 times: PHPPHPPHPPHPPHPPHPPHP\n", - "CPU times: user 16.2 ms, sys: 15.1 ms, total: 31.3 ms\n", - "Wall time: 504 ms\n" - ] - } - ], - "source": [ - "%%time\n", - "!cd /Users/lancer/KIB\\ Python\\ Course/CentralRepo/lecture_1 && java StringRep" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "REPREPREP\n", - "CPU times: user 6.52 ms, sys: 11.2 ms, total: 17.8 ms\n", - "Wall time: 187 ms\n" - ] - } - ], - "source": [ - "%%time\n", - "!cd /Users/lancer/KIB\\ Python\\ Course/CentralRepo/lecture_1 && python string_rep.py" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "При математических операциях особенно" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: user 13 µs, sys: 1e+03 ns, total: 14 µs\n", - "Wall time: 20 µs\n" - ] - }, - { - "data": { - "text/plain": [ - "2016" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "%%time\n", - "sum(range(2**6))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Подключим математическую библиотеку" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: user 417 µs, sys: 180 µs, total: 597 µs\n", - "Wall time: 592 µs\n" - ] - }, - { - "data": { - "text/plain": [ - "2016" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "%%time\n", - "import numpy as np\n", - "np.sum(np.array(range(2**6)))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Ошибку можно словить только в рантайме" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "String operation completed= aa\n", - "String operation completed= bb\n" - ] - }, - { - "ename": "AttributeError", - "evalue": "'int' object has no attribute 'replace'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m'a'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'b'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m12\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0md\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"String operation completed=\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreplace\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0md\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mAttributeError\u001b[0m: 'int' object has no attribute 'replace'" - ] - } - ], - "source": [ - "data = ['a', 'b', 12]\n", - "for d in data:\n", - " print(\"String operation completed=\", d.replace(d, d*2))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Снова к плюсам \n", - " \n", - "Универсальность, развитое сообщество привели к широкому распространению языка -> **Востребованность** \n", - "Востребованность порождает разнообразие \n", - "* backend \n", - "* web \n", - "* devops \n", - "* data science\n", - "\n", - "\n", - "![hh_python](images/hh.png) \n", - "![hh_cpp](images/cpp.png) \n", - " \n", - "### Баян про зарплату\n", - "![salary](images/salary.jpeg) \n", - "\n", - " \n", - "### Мораль такова - прокачанный разработчик всегда найдет хорошее место и оклад" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Ладно, убедили, я хочу питонить!!!111 \n", - " \n", - " \n", - " \n", - "Существуют несколько реализаций Python:\n", - "* CPython - стандартная реализация\n", - "* Jython\n", - "* IronPython\n", - "* PyPy \n", - " \n", - " \n", - " \n", - "### Установка CPython\n", - "* Собрать самому из исходников (make install ...)\n", - "* Готовый пакет (deb/rpm/msi)\n", - "* Anaconda\n", - " \n", - " \n", - " \n", - "### В чем создавать скрипты\n", - "* Любой текстовый редактор\n", - "* Любая годная IDE\n", - "* Pycharm Community\n", - "* Jupyter Notebook\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Jupyter \n", - "![jup_arch](images/jupyter.png) " - ] - }, - { - "cell_type": "code", - "execution_count": 48, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "lancer 27228 0.0 0.7 4314132 57708 s000 S+ 4:02PM 0:06.75 /Users/lancer/anaconda3/bin/python /Users/lancer/anaconda3/bin/jupyter-notebook\r\n", - "lancer 28057 0.0 0.7 4611776 60512 ?? Ss 5:01PM 0:04.08 /Users/lancer/anaconda3/bin/python -m ipykernel_launcher -f /Users/lancer/Library/Jupyter/runtime/kernel-7e9c7b7c-dc29-47c6-a647-432201f4374a.json\r\n" - ] - } - ], - "source": [ - "!ps aux | grep python | grep -v grep" - ] - }, - { - "cell_type": "code", - "execution_count": 49, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "lancer 28057 4.3 0.7 4611776 60512 ?? Ss 5:01PM 0:04.11 /Users/lancer/an 27228\r\n", - "lancer 28389 3.0 0.0 4270384 1184 s003 Ss+ 5:12PM 0:00.01 /bin/sh -c ps au 28057\r\n" - ] - } - ], - "source": [ - "!ps aux -o ppid | grep 28057 | grep -v grep" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Синтаксис \n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Логически, код на Python разделяется на строки " - ] - }, - { - "cell_type": "code", - "execution_count": 50, - "metadata": {}, - "outputs": [], - "source": [ - "logical_string = 'cool'" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Разделяются строки переносом строки, либо ';'" - ] - }, - { - "cell_type": "code", - "execution_count": 51, - "metadata": {}, - "outputs": [], - "source": [ - "today = 'is'; the_great = 'day'" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Переменная может быть объявлена любой алфавитной последовательностью + нижний слэш, но не должна начинаться с цифры" - ] - }, - { - "cell_type": "code", - "execution_count": 71, - "metadata": {}, - "outputs": [], - "source": [ - "джигурда = 'с бородой'\n", - "and_your_mentors = 'без'" - ] - }, - { - "cell_type": "code", - "execution_count": 73, - "metadata": {}, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "invalid syntax (, line 1)", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m 7sdf = None\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" - ] - } - ], - "source": [ - "7sdf = None" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Комментарий - через #" - ] - }, - { - "cell_type": "code", - "execution_count": 52, - "metadata": {}, - "outputs": [], - "source": [ - "# результат этого кода видят только ...\n", - "data = None" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Иногда нужно делать длинные вызовы, условия \n", - "Используем обратный slash" - ] - }, - { - "cell_type": "code", - "execution_count": 56, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "46\n" - ] - } - ], - "source": [ - "big_data = \\\n", - " 10*2 + \\\n", - " 23+3\n", - "print(big_data)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Иногда backslash не нужен (в основном в коллекциях)" - ] - }, - { - "cell_type": "code", - "execution_count": 58, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[1, 2, 3, 4, 5, 6, 7, 8, 10]\n" - ] - } - ], - "source": [ - "container = [1,2,3,4,\n", - " 5,6,7,8,\n", - " 10]\n", - "print(container)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Функции объявляются с помощью ключевого слова **def**" - ] - }, - { - "cell_type": "code", - "execution_count": 61, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "-100\n" - ] - } - ], - "source": [ - "def inverter(number):\n", - " print(number * -1)\n", - " \n", - "inverter(100)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Тело функций и других похожих по смыслу конструкций выделяется с помощью отступов (с помощью пробелов или табуляции) \n", - "Отступы должны быть везде одинаковые" - ] - }, - { - "cell_type": "code", - "execution_count": 67, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Все по-пацански\n", - "1\n", - "2\n" - ] - } - ], - "source": [ - "def ok_indent():\n", - " print(\"Все по-пацански\")\n", - " print(1)\n", - " if 1 != 2:\n", - " print(2)\n", - "ok_indent()\n" - ] - }, - { - "cell_type": "code", - "execution_count": 69, - "metadata": {}, - "outputs": [ - { - "ename": "IndentationError", - "evalue": "unindent does not match any outer indentation level (, line 4)", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m4\u001b[0m\n\u001b[0;31m if 1 != 2:\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mIndentationError\u001b[0m\u001b[0;31m:\u001b[0m unindent does not match any outer indentation level\n" - ] - } - ], - "source": [ - "def notok_indent():\n", - " print(\"Все по-пацански\")\n", - " print(1)\n", - " if 1 != 2:\n", - " print(2)\n", - "ok_indent()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Операторы " - ] - }, - { - "cell_type": "code", - "execution_count": 74, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Сложение: 5+2 = 7\n", - "Вычитание: 5-2 = 3\n", - "Умножение: 5*2 = 10\n", - "Степень: 5^2 = 25\n", - "Деление: 5/2 = 2.5\n", - " Целое: 2\n", - " Остаток: 1\n" - ] - } - ], - "source": [ - "a = 5 + 2; \n", - "print('Сложение: 5+2 =', a)\n", - "a = 5 - 2; \n", - "print('Вычитание: 5-2 =', a)\n", - "a = 5 * 2; \n", - "print('Умножение: 5*2 =', a)\n", - "a = 5 ** 2; \n", - "print('Степень: 5^2 =', a)\n", - "a = 5 / 2; \n", - "print('Деление: 5/2 =', a)\n", - "a = 5 // 2; \n", - "print(' Целое: ', a)\n", - "a = 5 % 2; \n", - "print(' Остаток: ', a)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Побитовые операторы предназначены для работы с данными в битовом (двоичном) формате.\n", - "\n", - "`&` - побитовый \"И\"\n", - "\n", - "`|` - побитовый \"ИЛИ\"\n", - "\n", - "`^` - побитовый \"Исключающее ИЛИ\"\n", - "\n", - "`~` - побитовое отрицание (дополнение) - унарная операция\n", - "\n", - "`<<` - побитовый сдвиг влево\n", - "\n", - "`>>` - побитовый сдвиг право" - ] - }, - { - "cell_type": "code", - "execution_count": 76, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "101 & 011 = 1 ( 0b1 )\n", - "101 | 011 = 7 ( 0b111 )\n", - "101 ^ 011 = 6 ( 0b110 )\n", - "~101 = -6 ( -0b110 )\n", - "101 << 2 = 10 ( 0b1010 )\n", - "101 >> 2 = 2 ( 0b10 )\n" - ] - } - ], - "source": [ - "print(\"101 & 011 = \", 5 & 3, \"(\", bin(5 & 3), \")\")\n", - "print(\"101 | 011 = \", 5 | 3, \"(\", bin(5 | 3), \")\")\n", - "print(\"101 ^ 011 = \", 5 ^ 3, \"(\", bin(5 ^ 3), \")\")\n", - "print(\"~101 = \", ~5, \"(\", bin(~5), \")\")\n", - "print(\"101 << 2 = \",5 << 1, \"(\", bin(5 << 1), \")\")\n", - "print(\"101 >> 2 = \",5 >> 1, \"(\", bin( 5>> 1), \")\")\n", - "\n", - "#bin() - представление числа в двоичной системе счисления" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Условия" - ] - }, - { - "cell_type": "code", - "execution_count": 77, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Yes.\n" - ] - } - ], - "source": [ - "a = 5\n", - "b = 3\n", - "\n", - "if a > b:\n", - " a += 1\n", - " print('Yes.')\n", - "elif a < b:\n", - " a -= 1\n", - " print('No')\n", - "else:\n", - " print('Equal.')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "a = 1\n", - "b = 2\n", - "c = 3\n", - "d = 4\n", - "\n", - "if (a == 1 and b == 2 and\n", - " c == 3 and d == 4):\n", - " print('1')\n", - "\n", - "if [a == 1 and b == 2 and\n", - " c == 3 and d == 4]:\n", - " print('2')\n", - " \n", - "if {a == 1 and b == 2 and\n", - " c == 3 and d == 4}:\n", - " print('3')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Циклы" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Цикл от 0 до n-1:\n", - "for i in range(8):\n", - " print(i)\n", - "\n", - "# Цикл от m до n-1. \n", - "# Посчитаем факториал числа 8\n", - "f = 1\n", - "for i in range(2, 9):\n", - " f = f * i\n", - "print(f)\n", - "\n", - "# Цикл по итерируемому объекту\n", - "\n", - "tup = (1, 2, 5)\n", - "for i in tup:\n", - " print(i)\n", - "\n", - "s = 'КСБ'\n", - "for letter in s:\n", - " print(letter.lower())\n", - "\n", - "d = {1: 'one', 2: 'two'}\n", - "for el in d:\n", - " print(el, ':', d[el])\n", - "\n", - "for k, v in d.items():\n", - " print(k, ':', v)\n", - "\n", - "# Цикл while\n", - "# Сумма четных чисел от 2 до n\n", - "\n", - "n = 20\n", - "i = 2\n", - "sum = 0\n", - "\n", - "while i < n:\n", - " sum += i\n", - " i += 2\n", - "print(sum)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "( ) [ ] { }\n", - ", : . ; @ = ->\n", - "+= -= *= /= //= %= @=\n", - "&= |= ^= >>= <<= **=" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Zen of Python" - ] - }, - { - "cell_type": "code", - "execution_count": 78, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The Zen of Python, by Tim Peters\n", - "\n", - "Beautiful is better than ugly.\n", - "Explicit is better than implicit.\n", - "Simple is better than complex.\n", - "Complex is better than complicated.\n", - "Flat is better than nested.\n", - "Sparse is better than dense.\n", - "Readability counts.\n", - "Special cases aren't special enough to break the rules.\n", - "Although practicality beats purity.\n", - "Errors should never pass silently.\n", - "Unless explicitly silenced.\n", - "In the face of ambiguity, refuse the temptation to guess.\n", - "There should be one-- and preferably only one --obvious way to do it.\n", - "Although that way may not be obvious at first unless you're Dutch.\n", - "Now is better than never.\n", - "Although never is often better than *right* now.\n", - "If the implementation is hard to explain, it's a bad idea.\n", - "If the implementation is easy to explain, it may be a good idea.\n", - "Namespaces are one honking great idea -- let's do more of those!\n" - ] - } - ], - "source": [ - "import this" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Ключевые принципы Python \n", - "* Все есть объект \n", - "![hier](images/type_hier.png) " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.4" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/lecture_1/02. Data Types.ipynb b/lecture_1/02. Data Types.ipynb deleted file mode 100644 index f6285a6..0000000 --- a/lecture_1/02. Data Types.ipynb +++ /dev/null @@ -1,442 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "7gou5fqfnRGv" - }, - "source": [ - "# Типы данных в Python. Изменяемые и неизменяемые типы. Хранение переменных в памяти" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "Px79JIsrnRGz" - }, - "source": [ - "Python – это динамически типизированный язык, тип переменной определяется непосредственно при выполнении программы.\n", - "\n", - "Например, строка:\n", - "\n", - "`a = 5`\n", - "\n", - "объявляет переменную b и присваивает ей значение 5.\n", - "\n", - "Python - язык с сильной типизацией, то есть вы не можете складывать например строки и числа, нужно все приводить к одному типу." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "6N_4uTdznRG1", - "outputId": "22ad0683-5389-4fe2-a6cd-2568c5e2f825" - }, - "outputs": [], - "source": [ - "a = 5\n", - "print(type(a))\n", - "\n", - "a = 5.5\n", - "print(type(a))\n", - "\n", - "a = 'abc'\n", - "print(type(a))\n", - "\n", - "a = [1,2]\n", - "print(type(a))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "hGEE9NDznRG_" - }, - "source": [ - "## Типы данных\n", - "К основным встроенным типам данных в Python относятся:\n", - "\n", - "- **None** (неопределенное значение переменной)\n", - "- **Логические переменные** (Boolean Type)\n", - "- **NotImplemented** (используется для указания Python, что специальный метод не поддерживает конкретные аргументы, а Python будет пытаться использовать альтернативы, если они доступны)\n", - "- **Числа** (Numeric Type)\n", - " - *int* – целое число\n", - " - *float* – число с плавающей точкой\n", - " - *complex* – комплексное число\n", - "- **Списки** (Sequence Type)\n", - " - *list* – список\n", - " - *tuple* – кортеж\n", - " - *range* – диапазон\n", - "- **Строки** (Text Sequence Type )\n", - " - *str*\n", - "- **Бинарные списки** (Binary Sequence Types)\n", - " - *bytes* – байты\n", - " - *bytearray* – массивы байт\n", - " - *memoryview* – специальные объекты для доступа к внутренним данным объекта через protocol buffer\n", - "- **Множества** (Set Types)\n", - " - *set* – множество\n", - " - *frozenset* – неизменяемое множество\n", - "- **Словари** (Mapping Types)\n", - " - *dict* – словарь" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "x1gCErknnRHC" - }, - "source": [ - "## Хранение переменных в памяти\n", - "\n", - "При создании переменной вначале создается **объект**, который имеет **уникальный идентификатор**, **тип** и **значение**, после этого переменная может ссылаться на созданный объект.\n", - "\n", - "![Создание переменной](02/02-00.png)" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "2384645881968" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "a = 4789\n", - "id(a)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "2384645884592" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "b = 4789\n", - "id(b)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 68 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 2100, - "status": "ok", - "timestamp": 1575272498278, - "user": { - "displayName": "Надежда Демиденко", - "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mA6D7k5OgtG9hzPe8Abs8DfOKAXQoTXaPfn7EY=s64", - "userId": "05224310221243935536" - }, - "user_tz": -180 - }, - "id": "tAglMsYQnRHD", - "outputId": "75595566-2e30-4bbb-b6b5-f5c9010c42bc" - }, - "outputs": [], - "source": [ - "a = 19.5\n", - "\n", - "print('идентификатор: ', id(a))\n", - "print('тип: ', type(a))\n", - "print('значение: ', a)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "Z3CNEcb5j4DB" - }, - "source": [ - "Операция `*3` при создании объекта копирует ссылки. Это видно на следующем примере:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 51 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 746, - "status": "ok", - "timestamp": 1575272888037, - "user": { - "displayName": "Надежда Демиденко", - "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mA6D7k5OgtG9hzPe8Abs8DfOKAXQoTXaPfn7EY=s64", - "userId": "05224310221243935536" - }, - "user_tz": -180 - }, - "id": "j4CHjQZPkEP-", - "outputId": "2e1fad27-5487-47b5-8f3b-b6179565ffc9" - }, - "outputs": [], - "source": [ - "a = [[]] * 3\n", - "print(a)\n", - "\n", - "a[0].append(3)\n", - "print(a)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "zBxjS5PBnRHK" - }, - "source": [ - "## Изменяемые и неизменяемые типы данных\n", - "\n", - "В Python существуют изменяемые и неизменяемые типы.\n", - "\n", - "![Типы данных](02/02-03.png)\n", - "\n", - "К **неизменяемым** (*immutable*) типам относятся: \n", - "- целые числа (*int*)\n", - "- числа с плавающей точкой (*float*)\n", - "- комплексные числа (*complex*)\n", - "- логические переменные (*bool*)\n", - "- кортежи (*tuple*)\n", - "- строки (*str*)\n", - "- неизменяемые множества (*frozen set*).\n", - "\n", - "К **изменяемым** (mutable) типам относятся:\n", - "- списки (*list*)\n", - "- множества (*set*)\n", - "- словари (*dict*)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "rMEig-G9nRHM" - }, - "source": [ - "### Неизменяемые типы\n", - "\n", - "Неизменяемость типа данных означает, что созданный объект больше не изменяется.\n", - "При изменении значения происходит создание нового объекта, на который теперь будет ссылаться переменная." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "2fNDSEDPnRHO", - "outputId": "36cd1687-3702-44cf-e7df-f087b85ac6aa" - }, - "outputs": [], - "source": [ - "a = 2\n", - "print(id(a))\n", - "\n", - "a = 4\n", - "print(id(a))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "j46-f4ibnRHV" - }, - "source": [ - "Если выполнить операцию присваивания\n", - "\n", - "`a = b`\n", - "\n", - "то переменная `a` будет ссылаться на тот же объект, что и переменная `b`.\n", - "\n", - "Узнать, ссылаются ли переменные на один и тот же объект, можно при помощи операторов тождественности:\n", - "\n", - "* `is`\n", - "* `is not`\n", - "\n", - "![Пример адресации переменных неизменяемых типов](02/02-01.png)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "M0XLS-XcnRHX", - "outputId": "431b3e62-481a-499b-fde6-b88d25339bb3" - }, - "outputs": [], - "source": [ - "a = 16\n", - "print('id(a) = ', id(a))\n", - "\n", - "b = 2.2\n", - "print('id(b) = ', id(b))\n", - "\n", - "a = b\n", - "\n", - "print('id(a) = ', id(a))\n", - "print(a is b)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "UWHsKNrp89xX" - }, - "source": [ - "Так как строки - также неизменяемые объекты, при попытке изменить какой-нибудь символ в строке произойдет ошибка:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 180 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 1819, - "status": "error", - "timestamp": 1575530835506, - "user": { - "displayName": "Надежда Демиденко", - "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mA6D7k5OgtG9hzPe8Abs8DfOKAXQoTXaPfn7EY=s64", - "userId": "05224310221243935536" - }, - "user_tz": -180 - }, - "id": "lvbc7Hsx9IXH", - "outputId": "ce421abf-21a7-498b-efbf-2cfd666f440c" - }, - "outputs": [], - "source": [ - "s = \"абракадабра\"\n", - "s[3] = 'ы'" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "Fp8gCBqvnRHc" - }, - "source": [ - "### Изменяемые типы\n", - "\n", - "Изменяемыми объектами являются списки, множества и словари, и их можно менять:\n", - "\n", - "- Менять элементы\n", - "- Добавлять/удалять элементы\n", - "\n", - "В примере ниже создан список, а потом изменен второй элемент.\n", - "\n", - "В качестве данных списка выступают не объекты, а отношения между объектами. Т.е. в переменной a хранятся ссылки на объекты содержащие числа 1 и 3, а не непосредственно сами эти числа.\n", - "\n", - "![Пример адресации переменных изменяемых типов](02/02-02.png)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "qMz0niUSnRHe", - "outputId": "8b8390f8-cbe7-4b67-ee70-7815b33cfa5b" - }, - "outputs": [], - "source": [ - "# Создаем список\n", - "a = [1, 2]\n", - "\n", - "print(a)\n", - "print('a: ', id(a))\n", - "print('a[1]: ', id(a[1]))\n", - "print()\n", - "\n", - "# Изменяем один элемент\n", - "a[1] = 3\n", - "\n", - "print(a)\n", - "print('a: ', id(a))\n", - "print('a[1]: ', id(a[1]))\n", - "print()\n", - "\n", - "# Добавляем еще один элемент в список\n", - "a.append(4)\n", - "\n", - "print(a)\n", - "print('a: ', id(a))\n" - ] - } - ], - "metadata": { - "colab": { - "name": "topic02.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.4" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/lecture_1/03. Strings.ipynb b/lecture_1/03. Strings.ipynb deleted file mode 100644 index 5a6106f..0000000 --- a/lecture_1/03. Strings.ipynb +++ /dev/null @@ -1,886 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "BFdiWhNr6r0G" - }, - "source": [ - "# Работа со строками" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "uYFXI1DQ6r0K" - }, - "source": [ - "Строки в Python - упорядоченные последовательности символов, используемые для хранения и представления текстовой информации.\n", - "\n", - "В Python, начиная с версии 3, все строки являются юникодом.\n", - "\n", - "Строки явлются неизменяемым типом." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "KWnZ9OXX6r0M" - }, - "source": [ - "## Литералы строк\n", - "\n", - "Строки заключают в двойные или одинарные кавычки. Между ними нет разницы, причина наличия двух вариантов в том, чтобы позволить вставлять в литералы строк символы кавычек или апострофов, не используя экранирование." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "G4dTs2aS6r0N", - "outputId": "4551d821-23e5-4aa5-e640-ead3f0c7a308" - }, - "outputs": [], - "source": [ - "s = 'your\"s'\n", - "print(s)\n", - "s = \"your's\"\n", - "print(s)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "P7TZgo5E6r0W" - }, - "source": [ - "Тройные апострофы или кавычки можно использовать для записи многострочных блоков текста. Внутри такой строки возможно присутствие кавычек и апострофов, главное, чтобы не было трех кавычек подряд." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "T8eevX9M6r0Y", - "outputId": "c529db6b-62e8-4c8f-ffa4-9888d7cd1783" - }, - "outputs": [], - "source": [ - "s = '''Это очень большая\n", - "строка, 'многострочный'\n", - "блок текста'''\n", - "print(s)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "Gx854F6e6r0e" - }, - "source": [ - "### Экранированные последовательности - служебные символы\n", - "\n", - "`\\` - экранирование следующего символа\\\n", - "`\\n` - Новая строка\\\n", - "`\\a` - Сигнал BIOS\\\n", - "`\\b` - Backspace\\\n", - "`\\r` - Возврат каретки\\\n", - "`\\t` - Горизонтальная табуляция\\\n", - "`\\v` - Вертикальная табуляция\\\n", - "`\\uhhhh` - 16-битовый символ Юникода в 16-ричном представлении\\\n", - "`\\xhh` - 16-ричное значение символа\\\n", - "`\\ooo` - 8-ричное значение символа\\\n", - "`\\0` - Символ Null (не является признаком конца строки)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "N30enGHm6r0g", - "outputId": "56879859-f225-4cba-e79b-0adeeede903d" - }, - "outputs": [], - "source": [ - "print('aa\\nbb')\n", - "print('aa\\bbb')\n", - "print('aa\\tbb')\n", - "print('\\u00A9')\n", - "print('\\154')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "rNAzFO0B6r0m" - }, - "source": [ - "### \"Сырые\" строки\n", - "\n", - "Если перед открывающей кавычкой стоит символ 'r' (в любом регистре), то механизм экранирования отключается.\n", - "\n", - "Но, несмотря на назначение, \"сырая\" строка не может заканчиваться символом обратного слэша." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "UjvATtvO6r0o", - "outputId": "a4c21be4-a802-4519-a621-f46619f2f288" - }, - "outputs": [], - "source": [ - "s = r'C:\\newt.txt'\n", - "print(s)\n", - "\n", - "# Если нужен \\ в конце строки:\n", - "\n", - "s = r'\\n\\n\\\\'[:-1]\n", - "print(s)\n", - "s = r'\\n\\n' + '\\\\'\n", - "print(s)\n", - "s = '\\\\n\\\\n\\\\'\n", - "print(s)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "-ktZP5fOt3yu" - }, - "source": [ - "### Форматирование строк\n", - "\n", - "Существует несколько более удобных способов форматирования строк, чем простая конкатенация." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "T0YPDJltt5JG" - }, - "source": [ - "#### Оператор `%`" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 51 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 1918, - "status": "ok", - "timestamp": 1575276473682, - "user": { - "displayName": "Надежда Демиденко", - "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mA6D7k5OgtG9hzPe8Abs8DfOKAXQoTXaPfn7EY=s64", - "userId": "05224310221243935536" - }, - "user_tz": -180 - }, - "id": "IKAFxGH6w4Zb", - "outputId": "197bf9f5-96c4-48a5-ecb7-545a46a06383" - }, - "outputs": [], - "source": [ - "# Подстановка одного оператора\n", - "name = 'Vasya'\n", - "print('Hello, %s!' % name)\n", - "\n", - "# А если несколько, то значением будет являться кортеж со строками подстановки:\n", - "print('%d %s, %d %s' % (6, 'bananas', 10, 'lemons'))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "Omjyy7ZqzL4O" - }, - "source": [ - "Спецификаторы преобразования записываются в следующем порядке:\n", - "\n", - "1. %.\n", - "2. Ключ (опционально), определяет, какой аргумент из значения будет подставляться.\n", - "3. Флаги преобразования.\n", - "4. Минимальная ширина поля. Если *, значение берётся из кортежа.\n", - "5. Точность, начинается с '.', затем - желаемая точность.\n", - "6. Модификатор длины (опционально).\n", - "7. Тип.\n", - "\n", - "Возможные типы представлены в таблице ниже:\n", - "\n", - "|Тип|Значение|\n", - "|---|:---|\n", - "|`%d`, `%i`, `%u`|Десятичное число|\n", - "|`%o`|Число в восьмеричной системе счисления|\n", - "|`%x`|Число в шестнадцатеричной системе счисления (буквы в нижнем регистре)|\n", - "|`%X`|Число в шестнадцатеричной системе счисления (буквы в верхнем регистре)|\n", - "|`%e`|Число с плавающей точкой с экспонентой (экспонента в нижнем регистре)|\n", - "|`%E`|Число с плавающей точкой с экспонентой (экспонента в верхнем регистре)|\n", - "|`%f`, `%F`|Число с плавающей точкой (обычный формат)|\n", - "|`%g`|Число с плавающей точкой. с экспонентой (экспонента в нижнем регистре), если она меньше, чем -4 или точности, иначе обычный формат|\n", - "|`%G`|Число с плавающей точкой. с экспонентой (экспонента в верхнем регистре), если она меньше, чем -4 или точности, иначе обычный формат|\n", - "|`%r`|Строка (литерал python)|\n", - "|`%s`|Строка (как обычно воспринимается пользователем)|\n", - "|`%%`|Знак `%`|\n", - "\n", - "Флаги преобразования:\n", - "\n", - "|Флаг|Значение|\n", - "|---|:---|\n", - "|`#`|Значение будет использовать альтернативную форму|\n", - "|`0`|Свободное место будет заполнено нулями|\n", - "|`-`|Свободное место будет заполнено пробелами справа|\n", - "|` ` (пробел)|Свободное место будет заполнено пробелами справа|\n", - "|`+`|Свободное место будет заполнено пробелами слева|" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 136 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 1457, - "status": "ok", - "timestamp": 1575277126575, - "user": { - "displayName": "Надежда Демиденко", - "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mA6D7k5OgtG9hzPe8Abs8DfOKAXQoTXaPfn7EY=s64", - "userId": "05224310221243935536" - }, - "user_tz": -180 - }, - "id": "NBvmPVmV1Gxy", - "outputId": "ec0b1790-d510-4144-eaee-fdd72a5ae916" - }, - "outputs": [], - "source": [ - "print ('%(language)s has %(number)03d quote types.' % {\"language\": \"Python\", \"number\": 2})\n", - "\n", - "print('%.2s' % 'Hello!')\n", - "print('%.*s' % (2, 'Hello!'))\n", - "print('%-10d' % 25)\n", - "print('%+10f' % 25)\n", - "print('+25.000000')\n", - "print('%+10s' % 'Hello')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "bRGQz2J89FXT" - }, - "source": [ - "#### Метод **format**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 136 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 1315, - "status": "ok", - "timestamp": 1575279818764, - "user": { - "displayName": "Надежда Демиденко", - "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mA6D7k5OgtG9hzPe8Abs8DfOKAXQoTXaPfn7EY=s64", - "userId": "05224310221243935536" - }, - "user_tz": -180 - }, - "id": "xyN98bDL9DvY", - "outputId": "76910550-2d50-4faa-d035-90e32f00d3e7" - }, - "outputs": [], - "source": [ - "name = 'Vasya'\n", - "print('Hello, {}!'.format(name))\n", - "\n", - "print('{0}, {1}, {2}'.format('a', 'b', 'c'))\n", - "print('{}, {}, {}'.format('a', 'b', 'c'))\n", - "print('{2}, {1}, {0}'.format('a', 'b', 'c'))\n", - "print('{2}, {1}, {0}'.format(*'abc'))\n", - "\n", - "print('Coordinates: {latitude}, {longitude}'.format(latitude='37.24N', longitude='-115.81W'))\n", - "\n", - "coord = {'latitude': '37.24N', 'longitude': '-115.81W'}\n", - "print('Coordinates: {latitude}, {longitude}'.format(**coord))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "ks1w757EA03H" - }, - "source": [ - "Синтаксис метода format:\n", - "\n", - "|||\n", - "|---|---|\n", - "|поле замены |`\"{\" [имя поля] [\"!\" преобразование] [\":\" спецификация] \"}\"`|\n", - "|имя поля|`arg_name (\".\" имя атрибута \\| \"[\" индекс \"]\")*`|\n", - "|преобразование|`\"r\" (внутреннее представление) \\| \"s\" (человеческое представление)`|\n", - "|спецификация|см. таблица ниже|\n", - "\n", - "Спецификация формата\n", - "\n", - "|||\n", - "|---|:---|\n", - "|спецификация|`[[fill]align][sign][#][0][width][,][.precision][type]`|\n", - "|заполнитель|символ кроме `{` или `}`|\n", - "|выравнивание|\"<\" \\| \">\" \\| \"=\" \\| \"^\"|\n", - "|знак|\"+\" \\| \"-\" \\| \" \"|\n", - "|ширина|integer|\n", - "|точность|integer|\n", - "|тип|\"b\" \\| \"c\" \\| \"d\" \\| \"e\" \\| \"E\" \\| \"f\" \\| \"F\" \\| \"g\" \\| \"G\" \\| \"n\" \\| \"o\" \\| \"s\" \\| \"x\" \\| \"X\" \\| \"%\"|\n", - "\n", - "Выравнивание производится при помощи символа-заполнителя. Доступны следующие варианты выравнивания:\n", - "\n", - "|Флаг|Значение|\n", - "|---|:---|\n", - "|`<`|Символы-заполнители будут справа (выравнивание объекта по левому краю) (по умолчанию)|\n", - "|`>`|выравнивание объекта по правому краю|\n", - "|`=`|Заполнитель будет после знака, но перед цифрами. Работает только с числовыми типами|\n", - "|`^`|Выравнивание по центру|\n", - "\n", - "Опция \"знак\" используется только для чисел и может принимать следующие значения:\n", - "\n", - "|Флаг|Значение|\n", - "|---|:---|\n", - "|`+`|Знак должен быть использован для всех чисел|\n", - "|`-`|'-' для отрицательных, ничего для положительных|\n", - "|'Пробел'|'-' для отрицательных, пробел для положительных|\n", - "\n", - "Поле \"тип\" может принимать следующие значения:\n", - "\n", - "|Тип|Значение|\n", - "|---|:---|\n", - "|`d`, `i`, `u`|Десятичное число|\n", - "|`o`|Число в восьмеричной системе счисления|\n", - "|`x`|Число в шестнадцатеричной системе счисления (буквы в нижнем регистре)|\n", - "|`X`|Число в шестнадцатеричной системе счисления (буквы в верхнем регистре)|\n", - "|`e`|Число с плавающей точкой с экспонентой (экспонента в нижнем регистре)|\n", - "|`E`|Число с плавающей точкой с экспонентой (экспонента в верхнем регистре)|\n", - "|`f`, `F`|Число с плавающей точкой (обычный формат)|\n", - "|`g`|Число с плавающей точкой. с экспонентой (экспонента в нижнем регистре), если она меньше, чем -4 или точности, иначе обычный формат|\n", - "|`G`|Число с плавающей точкой. с экспонентой (экспонента в верхнем регистре), если она меньше, чем -4 или точности, иначе обычный формат|\n", - "|`c`|Символ (строка из одного символа или число - код символа)|\n", - "|`s`|Строка|\n", - "|`%`|Число умножается на 100, отображается число с плавающей точкой, а за ним знак %|\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 85 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 1087, - "status": "ok", - "timestamp": 1575281946261, - "user": { - "displayName": "Надежда Демиденко", - "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mA6D7k5OgtG9hzPe8Abs8DfOKAXQoTXaPfn7EY=s64", - "userId": "05224310221243935536" - }, - "user_tz": -180 - }, - "id": "2iphdJ8cGWRR", - "outputId": "0ed8e48f-6a62-4a09-9e08-0da340c4914e" - }, - "outputs": [], - "source": [ - "# Несколько примеров\n", - "\n", - "print(\"int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}\".format(42))\n", - "\n", - "points = 19.5\n", - "total = 22\n", - "print('Correct answers: {:.2%}'.format(points/total))\n", - "\n", - "print('{:^30}'.format('centered'))\n", - "print('{:*^30}'.format('centered'))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "KDDNupK4X-_n" - }, - "source": [ - "#### F-строки\n", - "\n", - "С версии Python 3.6 появился новый способ: f-строки. F-строки предоставляют способ встраивания выражений внутри строковых литералов с минимальным синтаксисом. Стоит обратить внимание на то, что f-строка является выражением, которое оценивается по мере выполнения, а не постоянным значением. \n", - "\n", - "В исходном коде Python f-строки является литеральной строкой с префиксом f, которая содержит выражения внутри скобок. Выражения заменяются их значением." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 102 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 642, - "status": "ok", - "timestamp": 1575236533893, - "user": { - "displayName": "Надежда Демиденко", - "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mA6D7k5OgtG9hzPe8Abs8DfOKAXQoTXaPfn7EY=s64", - "userId": "05224310221243935536" - }, - "user_tz": -180 - }, - "id": "xtRKhnsMYouR", - "outputId": "d5b06b08-1421-4d8b-b5d0-485245317d17" - }, - "outputs": [], - "source": [ - "name = \"Eric Idle\"\n", - "age = 74\n", - "profession = \"comedian\"\n", - "affiliation = \"Monty Python\"\n", - "\n", - "# Переменные \n", - "print(f\"Hello, {name}. You are {age}.\")\n", - "print(F\"Hello, {name}. You are {age}.\")\n", - "\n", - "# Произвольные выражения\n", - "print(f\"{2 * 37}\")\n", - "\n", - "# Вызов функций\n", - "print(f\"{name.lower()} is funny.\")\n", - "\n", - "# Многострочные f-strings\n", - "message = (\n", - " f\"Hi {name}. \"\n", - " f\"You are a {profession}. \"\n", - " f\"You were in {affiliation}.\"\n", - ")\n", - " \n", - "print(message)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 85 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 1333, - "status": "ok", - "timestamp": 1575282366784, - "user": { - "displayName": "Надежда Демиденко", - "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mA6D7k5OgtG9hzPe8Abs8DfOKAXQoTXaPfn7EY=s64", - "userId": "05224310221243935536" - }, - "user_tz": -180 - }, - "id": "qL7pczoXJA9Z", - "outputId": "69c3ed93-074b-48c2-bd8d-01f418c80f7a" - }, - "outputs": [], - "source": [ - "# После двоеточия в f-строках можно указывать те же значения, что и при использовании format:\n", - "\n", - "oct1, oct2, oct3, oct4 = [10, 1, 1, 1]\n", - "print(f'''\n", - " IP address:\n", - " {oct1:<8} {oct2:<8} {oct3:<8} {oct4:<8}\n", - " {oct1:08b} {oct2:08b} {oct3:08b} {oct4:08b}''')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "-C9W60c46r0t" - }, - "source": [ - "## Функции и методы работы со строками" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "k9nIMFL56r0x" - }, - "source": [ - "### Базовые методы" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "kc2BCMQM6r02", - "outputId": "3a6f8293-3022-4956-daf7-c435b178377b" - }, - "outputs": [], - "source": [ - "# Конкатенация (сложение)\n", - "s1 = 'abc'\n", - "s2 = 'def'\n", - "s = s1 + s2\n", - "print(s)\n", - "\n", - "# Дублирование (умножение)\n", - "print(s*3)\n", - "\n", - "# Длина строки\n", - "print(len(s))\n", - "\n", - "# Доступ по индексу (нумерация идет с 0!)\n", - "# Отрицательный индекс означает, что счет будет вестись с конца\n", - "print(s[0])\n", - "print(s[3])\n", - "print(s[-1])\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "Hb30Dq6y6r09" - }, - "source": [ - "Так как строки являются неизменяемым типом, все функции и методы будут создавать новый объект.\n", - "\n", - "Попытка изменить один символ при помощи доступа по индексу приведет к ошибке:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "xZ67zLrU6r0_", - "outputId": "d06a926e-8d86-4dde-9491-94edc13ba9bb", - "scrolled": true - }, - "outputs": [], - "source": [ - "# Неправильно\n", - "s = 'abcdef'\n", - "s[2] = 'Z'" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "1l-2ar9L6r1G", - "outputId": "10bcdaaa-145d-4574-a86e-51953623a70e", - "scrolled": true - }, - "outputs": [], - "source": [ - "# Правильно\n", - "s = 'abcdef'\n", - "s = s[:2] + 'Z' + s[3:]\n", - "print(s)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "8CEqhN5W6r1O" - }, - "source": [ - "### Срез\n", - "\n", - "Срез возвращает подстроку.\n", - "\n", - "Оператор извлечения среза: `[Start:Stop]`. Start – начало среза, а Stop – окончание;\n", - "\n", - "Символ с номером Stop в срез не входит. По умолчанию первый индекс равен 0, а второй - длине строки." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "QHBUuxNV6r1Q", - "outputId": "a7e71319-94d7-4b78-9541-b1baafc57b3a" - }, - "outputs": [], - "source": [ - "s = 'abcdef'\n", - "\n", - "print('3:5 ', s[3:5])\n", - "print('2:-2', s[2:-2])\n", - "print(' :4 ', s[:4])\n", - "print('1: ', s[1:])\n", - "print(' : ', s[:])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "AeUK_5-z6r1a" - }, - "source": [ - "Кроме того, можно задать шаг, с которым нужно извлекать срез: `[Start:Stop:Step]`.\n", - "\n", - "Отрицательное значение шага будет означать, что строка будет пройдена в обратном направлении." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "QExj_NSq6r1d", - "outputId": "0b74cece-fb66-4455-bcd1-dab9c93b37e5", - "scrolled": true - }, - "outputs": [], - "source": [ - "s = 'abcdef'\n", - "\n", - "print(' : :-1', s[::-1])\n", - "print('3:5:-1', s[3:5:-1])\n", - "print('5:3:-1', s[5:3:-1])\n", - "print('1: : 2', s[1::2])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "HeYsPyDL6r1n" - }, - "source": [ - "### Прочие функции\n", - "\n", - "|Функция|Назначение|\n", - "|---|:---|\n", - "|`S.find(str, [start],[end])`|Поиск подстроки в строке. Возвращает номер первого вхождения или -1|\n", - "|`S.rfind(str, [start],[end])`|Поиск подстроки в строке. Возвращает номер последнего вхождения или -1|\n", - "|`S.index(str, [start],[end])`|Поиск подстроки в строке. Возвращает номер первого вхождения или вызывает ValueError|\n", - "|`S.rindex(str, [start],[end])`|Поиск подстроки в строке. Возвращает номер последнего вхождения или вызывает ValueError|\n", - "|`S.replace(шаблон, замена)`|Замена шаблона|\n", - "|`S.split(символ)`|Разбиение строки по разделителю|\n", - "|`S.isdigit()`|Состоит ли строка из цифр|\n", - "|`S.isalpha()`|Состоит ли строка из букв|\n", - "|`S.isalnum()`|Состоит ли строка из цифр или букв|\n", - "|`S.islower()`|Состоит ли строка из символов в нижнем регистре|\n", - "|`S.isupper()`|Состоит ли строка из символов в верхнем регистре|\n", - "|`S.isspace()`|Состоит ли строка из неотображаемых символов (пробел, символ перевода страницы (`\\f`), \"новая строка\" (`\\n`), \"перевод каретки\" (`\\r`), \"горизонтальная табуляция\" (`\\t`) и \"вертикальная табуляция\" (`\\v`))|\n", - "|`S.istitle()`|Начинаются ли слова в строке с заглавной буквы|\n", - "|`S.upper()`|Преобразование строки к верхнему регистру|\n", - "|`S.lower()`|Преобразование строки к нижнему регистру|\n", - "|`S.startswith(str)`|Начинается ли строка S с шаблона str|\n", - "|`S.endswith(str)`|Заканчивается ли строка S шаблоном str|\n", - "|`S.join(список)`|Сборка строки из списка с разделителем S|\n", - "|`ord(символ)`|Символ в его код ASCII|\n", - "|`chr(число)`|Код ASCII в символ|\n", - "|`S.capitalize()`|Переводит первый символ строки в верхний регистр, а все остальные в нижний|\n", - "|`S.center(width, [fill])`|Возвращает отцентрованную строку, по краям которой стоит символ fill (пробел по умолчанию)|\n", - "|`S.count(str, [start],[end])`|Возвращает количество непересекающихся вхождений подстроки в диапазоне [начало, конец] (0 и длина строки по умолчанию)|\n", - "|`S.expandtabs([tabsize])`|Возвращает копию строки, в которой все символы табуляции заменяются одним или несколькими пробелами, в зависимости от текущего столбца. Если TabSize не указан, размер табуляции полагается равным 8 пробелам|\n", - "|`S.lstrip([chars])`|Удаление пробельных символов в начале строки|\n", - "|`S.rstrip([chars])`|Удаление пробельных символов в конце строки|\n", - "|`S.strip([chars])`|Удаление пробельных символов в начале и в конце строки|\n", - "|`S.partition(шаблон)`|Возвращает кортеж, содержащий часть перед первым шаблоном, сам шаблон, и часть после шаблона. Если шаблон не найден, возвращается кортеж, содержащий саму строку, а затем две пустых строки|\n", - "|`S.rpartition(sep)`|Возвращает кортеж, содержащий часть перед последним шаблоном, сам шаблон, и часть после шаблона. Если шаблон не найден, возвращается кортеж, содержащий две пустых строки, а затем саму строку|\n", - "|`S.swapcase()`|Переводит символы нижнего регистра в верхний, а верхнего – в нижний|\n", - "|`S.title()`|Первую букву каждого слова переводит в верхний регистр, а все остальные в нижний|\n", - "|`S.zfill(width)`|Делает длину строки не меньшей width, по необходимости заполняя первые символы нулями|\n", - "|`S.ljust(width, fillchar=\" \")`|Делает длину строки не меньшей width, по необходимости заполняя последние символы символом fillchar|\n", - "|`S.rjust(width, fillchar=\" \")`|Делает длину строки не меньшей width, по необходимости заполняя первые символы символом fillchar|\n", - "|`S.format(*args, **kwargs)`|Форматирование строки|" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 136 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 1646, - "status": "ok", - "timestamp": 1575283586234, - "user": { - "displayName": "Надежда Демиденко", - "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mA6D7k5OgtG9hzPe8Abs8DfOKAXQoTXaPfn7EY=s64", - "userId": "05224310221243935536" - }, - "user_tz": -180 - }, - "id": "6-nl8p6r6r1r", - "outputId": "7ce6bbc8-57c5-496a-f4b6-64a2a3885ba2" - }, - "outputs": [], - "source": [ - "# Некоторые примеры функций работы со строками\n", - "\n", - "# Метод split\n", - "\n", - "s = 'abcdef abcba aaa'\n", - "# Если разделитель не указан, выполняется разбитие по пробелу\n", - "print(s.split())\n", - "print(s.split('c'))\n", - "# в параметре maxsplit указывается максимальное количество разбиений. По умолчанию -1, то есть без ограничений\n", - "print(s.split('c', maxsplit=1))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "ZM5b-svROG2a" - }, - "outputs": [], - "source": [ - "# Метод join\n", - "\n", - "# возвращается строка, полученная соединением элементов переданного списка в одну строку, \n", - "# при этом между элементами списка вставляется разделитель, равный той строке, к которой применяется метод.\n", - "\n", - "a = ['red', 'green', 'blue']\n", - "print(' '.join(a))\n", - "print(''.join(a))\n", - "print('***'.join(a))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 51 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 985, - "status": "ok", - "timestamp": 1575283734335, - "user": { - "displayName": "Надежда Демиденко", - "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mA6D7k5OgtG9hzPe8Abs8DfOKAXQoTXaPfn7EY=s64", - "userId": "05224310221243935536" - }, - "user_tz": -180 - }, - "id": "dNcC7T93OSdY", - "outputId": "99900bf1-c683-4b72-c7cb-61c5dee521ab" - }, - "outputs": [], - "source": [ - "# Метод replace\n", - "s = 'abcabcbabc'\n", - "print(s.replace('c','Z'))\n", - "# третьим параметром может стоять количество замен (от начала строки)\n", - "print(s.replace('c','Z', 2))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "RUQn37EgmgIT" - }, - "source": [ - "# Задачи для практики\n", - "\n", - "- В строке заменить пробелы звездочкой. Если встречается подряд несколько пробелов, то их следует заменить одним знаком \"*\", пробелы в начале и конце строки удалить.\n", - "- В строке найти все слова, в которых содержится заданная подстрока, и вывести эти слова целиком." - ] - } - ], - "metadata": { - "colab": { - "name": "topic03.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.4" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/lecture_1/04. Iterators.ipynb b/lecture_1/04. Iterators.ipynb deleted file mode 100644 index 459fc52..0000000 --- a/lecture_1/04. Iterators.ipynb +++ /dev/null @@ -1,1150 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "vjOw806ePGYf" - }, - "source": [ - "# Работа с итерируемыми коллекциями\n", - "\n", - "Коллекция в Python — программный объект (переменная-контейнер), хранящая набор значений одного или различных типов, позволяющий обращаться к этим значениям, а также применять специальные функции и методы, зависящие от типа коллекции." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "6jFHTx2BPGYh" - }, - "source": [ - "## Классификация коллекций\n", - "\n", - "![Классификация коллекций](04/04-00.png)\n", - "\n", - "**Индексированность** – каждый элемент коллекции имеет свой порядковый номер — индекс. Это позволяет обращаться к элементу по его порядковому индексу, проводить слайсинг («нарезку») — брать часть коллекции выбирая исходя из их индекса. Детально эти вопросы будут рассмотрены в дальнейшем в отдельной статье.\n", - "\n", - "**Уникальность** – каждый элемент коллекции может встречаться в ней только один раз. Это порождает требование неизменности используемых типов данных для каждого элемента, например, таким элементом не может быть список.\n", - "\n", - "**Изменяемость коллекции** — позволяет добавлять в коллекцию новых членов или удалять их после создания коллекции." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "0FR4kfQ6PGYi", - "outputId": "2d58c51e-d551-4dc1-c7ab-a32666ffd851" - }, - "outputs": [], - "source": [ - "# Лист (list)\n", - "a = []\n", - "print(type(a))\n", - "\n", - "# Кортеж (tuple)\n", - "a = ()\n", - "print(type(a))\n", - "\n", - "# Множество (set)\n", - "a = {10, 20}\n", - "print(type(a))\n", - "\n", - "# Неизменное множество (frozenset)\n", - "a = frozenset()\n", - "print(type(a))\n", - "\n", - "# Словарь (dict)\n", - "a = {'a': 1, 'b':2}\n", - "print(type(a))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "YbHTzkBcPGYk" - }, - "source": [ - "В зависимости от стоящих задач, один тип коллекции можно конвертировать в другой тип коллекции. Для этого, как правило достаточно передать одну коллекцию в функцию создания другой.\n", - "\n", - "При преобразовании одной коллекции в другую возможна потеря данных:\n", - "\n", - "- При преобразовании в множество теряются дублирующие элементы, так как множество содержит только уникальные элементы. Проверка на уникальность, обычно и является причиной использовать множество в задачах, где у нас есть в этом потребность.\n", - "- При конвертации индексированной коллекции в неиндексированную теряется информация о порядке элементов." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "T0vPrg3APGYl", - "outputId": "ad6692b0-3d8b-43de-fc6c-80b4df6e57d4" - }, - "outputs": [], - "source": [ - "my_tuple = ('a', 'b', 'a')\n", - "\n", - "my_list = list(my_tuple)\n", - "my_set = set(my_tuple) # теряем индексы и дубликаты элементов\n", - "my_frozenset = frozenset(my_tuple) # теряем индексы и дубликаты элементов\n", - "\n", - "print(my_list, my_set, my_frozenset)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "mqr3Q4VjPGYn" - }, - "source": [ - "## Списки\n", - "\n", - "Со списками возможны следующие действия:\n", - "\n", - "- Печать элементов: `print()`" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 2503, - "status": "ok", - "timestamp": 1575285065201, - "user": { - "displayName": "Надежда Демиденко", - "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mA6D7k5OgtG9hzPe8Abs8DfOKAXQoTXaPfn7EY=s64", - "userId": "05224310221243935536" - }, - "user_tz": -180 - }, - "id": "RNUpqiFsPGYo", - "outputId": "2b47c7a6-948e-45e3-8080-f8641053c361" - }, - "outputs": [], - "source": [ - "my_list = ['a', 'b', 'c', 'd', 'e', 'f']\n", - "print(my_list)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "RKG4g4vrPGYp" - }, - "source": [ - "- Подсчет количества элементов: `len()`" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 2632, - "status": "ok", - "timestamp": 1575285084438, - "user": { - "displayName": "Надежда Демиденко", - "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mA6D7k5OgtG9hzPe8Abs8DfOKAXQoTXaPfn7EY=s64", - "userId": "05224310221243935536" - }, - "user_tz": -180 - }, - "id": "XC0IkQGvPGYq", - "outputId": "7e883c99-b523-4ce9-f627-9e96bc92bbaa" - }, - "outputs": [], - "source": [ - "my_list = ['a', 'b', 'c', 'd', 'e', 'f']\n", - "print(len(my_list))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "L3GPNy6ePGYt" - }, - "source": [ - "- Проверка принадлежности элемента данной коллекции: операторы `in`, `not in`" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 85 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 907, - "status": "ok", - "timestamp": 1575285122229, - "user": { - "displayName": "Надежда Демиденко", - "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mA6D7k5OgtG9hzPe8Abs8DfOKAXQoTXaPfn7EY=s64", - "userId": "05224310221243935536" - }, - "user_tz": -180 - }, - "id": "5tisZa3WPGYu", - "outputId": "de87cf45-424f-4e66-877d-f2627e6f4255" - }, - "outputs": [], - "source": [ - "my_list = ['a', 'b', 'c', 'd', 'e', 'f']\n", - "\n", - "print('a' in my_list)\n", - "print('q' in my_list)\n", - "print('a' not in my_list)\n", - "print('q' not in my_list) #поиск подстроки в строке" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "8Y1pQ8kIPGYw" - }, - "source": [ - "- Обход всех элементов в цикле: `for in`\n", - "\n", - "В цикле будут последовательно перебираться элементы коллекции, пока не будут перебраны все из них.\n", - "\n", - "Порядок обработки элементов для не индексированных коллекций будет не тот, как при их создании.\n", - "\n", - "**Не меняйте количество элементов коллекции в теле цикла во время итерации по этой же коллекции!** — Это порождает не всегда очевидные на первый взгляд ошибки." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 119 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 1063, - "status": "ok", - "timestamp": 1575285148500, - "user": { - "displayName": "Надежда Демиденко", - "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mA6D7k5OgtG9hzPe8Abs8DfOKAXQoTXaPfn7EY=s64", - "userId": "05224310221243935536" - }, - "user_tz": -180 - }, - "id": "jBf8pbg5PGYw", - "outputId": "015c023a-295c-4aaf-c170-db6ecf39904f" - }, - "outputs": [], - "source": [ - "my_list = ['a', 'b', 'c', 'd', 'e', 'f']\n", - "my_dict = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}\n", - "\n", - "for elem in my_list:\n", - " print(elem)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "hZcFKCePWt8f" - }, - "source": [ - "- Функция `enumerate()`\n", - "\n", - "Встроенная функция `enumerate()` создает объект, который генерирует кортежи, состоящие из двух элементов - индекса элемента и самого элемента.\n", - "\n", - "Функция `enumerate()` используется для упрощения прохода по коллекциям в цикле, когда кроме самих элементов требуется их индекс." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 153 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 627, - "status": "ok", - "timestamp": 1575622333369, - "user": { - "displayName": "Надежда Демиденко", - "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mA6D7k5OgtG9hzPe8Abs8DfOKAXQoTXaPfn7EY=s64", - "userId": "05224310221243935536" - }, - "user_tz": -180 - }, - "id": "cjuqtRatV2CA", - "outputId": "1a7560fc-3bf6-4070-cbf9-df6d0e99fd0c" - }, - "outputs": [], - "source": [ - "a = [10, 20, 30, 40]\n", - "for i in enumerate(a):\n", - " print(i)\n", - " \n", - "for id, item in enumerate(a):\n", - " a[id] = item + 5\n", - " print(a[id])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "ZNAe7-bJPGYy" - }, - "source": [ - "- Функции `min()`, `max()`, `sum()`\n", - "\n", - "Функции `min()`, `max()` — поиск минимального и максимального элемента соответственно — работают не только для числовых, но и для строковых значений.\n", - "\n", - "`sum()` — суммирование всех элементов, если они все числовые." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 662, - "status": "ok", - "timestamp": 1575285169105, - "user": { - "displayName": "Надежда Демиденко", - "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mA6D7k5OgtG9hzPe8Abs8DfOKAXQoTXaPfn7EY=s64", - "userId": "05224310221243935536" - }, - "user_tz": -180 - }, - "id": "c9iiD1yvPGYy", - "outputId": "9edc7f7e-508a-4c5f-854c-6fa9a12d7955" - }, - "outputs": [], - "source": [ - "my_list = ['a', 'b', 'c', 'd', 'e', 'f']\n", - "print(min(my_list))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "0nIZ8IuUPGY0" - }, - "source": [ - "- Функция `sorted()` - сортировка элементов коллекции\n", - "\n", - "Мы может использовать функцию `sorted()` для вывода списка сортированных элементов любой коллекции для последующее обработки или вывода.\n", - "\n", - "1. функция не меняет исходную коллекцию, а возвращает новый список из ее элементов;\n", - "2. независимо от типа исходной коллекции, вернётся список (list) ее элементов;\n", - "3. поскольку она не меняет исходную коллекцию, ее можно применять к неизменяемым коллекциям;\n", - "4. поскольку при сортировке возвращаемых элементов нам не важно, был ли у элемента некий индекс в исходной коллекции, можно применять к неиндексированным коллекциям;\n", - "5. Имеет дополнительные не обязательные аргументы:\n", - " - `reverse = True` - сортировка в обратном порядке\n", - " - `key = funcname` (начиная с Python 2.4) - сортировка с помощью специальной функции funcname" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 68 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 1124, - "status": "ok", - "timestamp": 1575285198431, - "user": { - "displayName": "Надежда Демиденко", - "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mA6D7k5OgtG9hzPe8Abs8DfOKAXQoTXaPfn7EY=s64", - "userId": "05224310221243935536" - }, - "user_tz": -180 - }, - "id": "eJhYRR3qPGY0", - "outputId": "395ad1d4-0113-4356-8e79-676bc198698d" - }, - "outputs": [], - "source": [ - "my_list = [2, 5, 1, 7, 3]\n", - "my_list_sorted = sorted(my_list)\n", - "print(my_list_sorted)\n", - "\n", - "my_set = {2, 5, 1, 7, 3}\n", - "my_set_sorted = sorted(my_set, reverse=True)\n", - "print(my_set_sorted)\n", - "\n", - "# сортировка списка строк по длине len() каждого элемента\n", - "my_files = ['somecat.jpg', 'pc.png', 'apple.bmp', 'mydog.gif']\n", - "my_files_sorted = sorted(my_files, key=len)\n", - "print(my_files_sorted)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "NpI9zoGhPGY2" - }, - "source": [ - "- `.count()` - подсчет определенных элементов для неуникальных коллекций, возвращает сколько раз элемент встречается в коллекции." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "fa7M6O_CPGY3", - "outputId": "8e615fb5-e7dd-4a28-f231-8e5d9591982b" - }, - "outputs": [], - "source": [ - "my_list = [1, 2, 2, 2, 2, 3]\n", - "\n", - "print(my_list.count(2))\n", - "print(my_list.count(5))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "ZrntKDurPGY4" - }, - "source": [ - "- `.index()` - минимальный индекс переданного элемента для индексированных коллекций. Если такого элемента не найдено - ошибка ValueError." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "7qUiE951PGY5", - "outputId": "898f6972-e34c-496e-9840-90cb94676d59" - }, - "outputs": [], - "source": [ - "my_list = [1, 2, 2, 2, 2, 3]\n", - "\n", - "print(my_list.index(2))\n", - "print(my_list.index(5)) # ValueError: 5 is not in list - такого элемента нет в ссписке" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "ds-uw01wPGY6" - }, - "source": [ - "- `.copy()` — неглубокая (не рекурсивная) копия коллекции" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "92RgKL_nPGY7", - "outputId": "76241685-e9fd-4e3d-a0bc-80e17e375db2" - }, - "outputs": [], - "source": [ - "my_set = {1, 2, 3}\n", - "my_set_2 = my_set.copy()\n", - "\n", - "print(my_set_2 == my_set) # коллекции равны - содержат одинаковые значения\n", - "print(my_set_2 is my_set) # коллекции не идентичны - это разные объекты с разными id" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "XcOr3QFoPGY9" - }, - "source": [ - "- `.clear()` — метод изменяемых коллекций, удаляющий из коллекции все элементы и превращающий её в пустую коллекцию." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "4OM3ZF19PGY9", - "outputId": "f4e01454-7b07-4933-fedd-c3f8e54cb428" - }, - "outputs": [], - "source": [ - "my_set = {1, 2, 3}\n", - "print(my_set)\n", - "\n", - "my_set.clear()\n", - "print(my_set)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "jk3nmQVFPGY_" - }, - "source": [ - "- Обращение к элементу\n", - "\n", - "Можно обратиться к элементу по индексу в квадратных скобках (отрицательный индекс означает отсчет с конца)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "nJNxcIllPGZA", - "outputId": "e6b864e7-1817-4a98-8c36-12b328daf17b" - }, - "outputs": [], - "source": [ - "my_list = ['a', 'b', 'c', 'd', 'e', 'f']\n", - "\n", - "print(my_list[0])\n", - "print(my_list[3])\n", - "print(my_list[-1])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "aGKx62RPPGZB" - }, - "source": [ - "Коллекции могут иметь несколько уровней вложенности, к примеру, список списков. Для перехода на уровень глубже ставится вторая пара квадратных скобок." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "A8XAE_s6PGZD", - "outputId": "86f69974-8531-4c90-acf8-0a7b22fc96bc" - }, - "outputs": [], - "source": [ - "my_2lvl_list = [[1, 2, 3], ['a', 'b', 'c']]\n", - "\n", - "print(my_2lvl_list[0])\n", - "print(my_2lvl_list[0][0])\n", - "print(my_2lvl_list[1][-1])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "PbxV3yZaPGZE" - }, - "source": [ - "Так как **списки** - изменяемые коллекции, в них можно изменять элементы, обращаясь к ним через индекс.\\\n", - "*Прим.: Для этого элемент уже должен существовать в списке, нельзя таким образом добавить элемент на несуществующий индекс.*" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "GqUxYt8zPGZF", - "outputId": "9ac37287-81e4-4ff7-fa30-02f582831bf5" - }, - "outputs": [], - "source": [ - "my_list = [1, 2, 3, [4, 5]]\n", - "my_list[0] = 10\n", - "my_list[-1][0] = 40\n", - "print(my_list)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "_P6-GsqKPGY2" - }, - "source": [ - "- Добавление и удаление элементов \n", - "\n", - "![Добавление и удаление элементов](04-03.png)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 85 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 838, - "status": "ok", - "timestamp": 1575287019806, - "user": { - "displayName": "Надежда Демиденко", - "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mA6D7k5OgtG9hzPe8Abs8DfOKAXQoTXaPfn7EY=s64", - "userId": "05224310221243935536" - }, - "user_tz": -180 - }, - "id": "t3u83DQUXkVO", - "outputId": "3949112c-943a-43d5-a650-d5f617757fa4" - }, - "outputs": [], - "source": [ - "my_list = [13, 27, 8]\n", - "print(my_list)\n", - "my_list.append(41)\n", - "print(my_list)\n", - "# Удаление по значению\n", - "my_list.remove(27)\n", - "print(my_list)\n", - "# Удаление по индексу\n", - "my_list.pop(1)\n", - "print(my_list)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "Ni6pns0GPGZP" - }, - "source": [ - "Для объединения списков (list) возможны три варианта без изменения исходного списка:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "AiyYEIcBPGZQ", - "outputId": "5eb631a5-672d-45a7-b75e-0831cafd2e39" - }, - "outputs": [], - "source": [ - "# Добавляем все элементы второго списка к элементам первого\n", - "# (аналог метод .extend() но без изменения исходного списка):\n", - "a = [1, 2, 3]\n", - "b = [4, 5]\n", - "c = a + b \n", - "print(a, b, c)\n", - "\n", - "# Добавляем второй список как один элемент без изменения исходного списка\n", - "# (аналог метода.append() но без изменения исходного списка):\n", - "a = [1, 2, 3]\n", - "b = [4, 5]\n", - "c = a + [b]\n", - "print(a, b, c)\n", - "\n", - "# работает на версии питона 3.5 и выше:\n", - "a, b = [1, 2, 3], [4, 5]\n", - "c = [*a, *b]\n", - "print(c)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "S3Oe7r0FZM0A" - }, - "source": [ - "## Кортежи и строки\n", - "\n", - "Кортежи и строки во многом похожи на списки, за одним исключением: они неизменяемые. Соответственно, для них работает всё то же самое, что и для списков, кроме функций, изменяющих коллекцию.\n", - "\n", - "Кортежи работают быстрее, чем списки, поэтому если не нужно менять коллекцию, лучше использовать кортеж или строку." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 204 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 763, - "status": "ok", - "timestamp": 1575287246656, - "user": { - "displayName": "Надежда Демиденко", - "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mA6D7k5OgtG9hzPe8Abs8DfOKAXQoTXaPfn7EY=s64", - "userId": "05224310221243935536" - }, - "user_tz": -180 - }, - "id": "TuVIeCc2Z7Z1", - "outputId": "e0e0a267-74af-4629-e81f-f8b3c793d070" - }, - "outputs": [], - "source": [ - "my_tuple = (3, 2, 4, 1, 5)\n", - "my_string = 'lndskb'\n", - "\n", - "print(my_tuple)\n", - "print(my_tuple[2])\n", - "\n", - "print(my_string[-1])\n", - "\n", - "print(sorted(my_tuple))\n", - "print(sorted(my_string))\n", - "\n", - "for each in my_string:\n", - " print(each)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "T4lLLzN6PGZN" - }, - "source": [ - "Объединение строк (string) и кортежей (tuple) возможна с использованием оператора сложения «+»" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "2uH-ZNYuPGZN", - "outputId": "1b28443e-d604-49d1-b1b6-7207ab727232" - }, - "outputs": [], - "source": [ - "str1 = 'abc'\n", - "str2 = 'de'\n", - "str3 = str1 + str2\n", - "print(str3)\n", - "\n", - "tuple1 = (1, 2, 3)\n", - "tuple2 = (4, 5)\n", - "tuple3 = tuple1 + tuple2\n", - "print(tuple3)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "IYxrrT5zcqR3" - }, - "source": [ - "## Словари и множества\n", - "\n", - "Множество (set) – неупорядоченная коллекция из уникальных (неповторяющихся) элементов. Элементы множества в Python должны быть немутабельны (неизменяемы), хотя само содержимое множества может меняться: можно добавлять и удалять элементы из множества.\n", - "\n", - "Словарь (dictionary) — это ассоциативный массив или хеш. Это неупорядоченное множество пар `ключ: значение` с требованием уникальности ключей. \n", - "\n", - "Внутри множества тоже реализованы как хэш-таблицы, в которых есть только ключи без значений и добавлены некоторые оптимизации, которые используют отсутствие значений." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 214 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 719, - "status": "error", - "timestamp": 1575288952985, - "user": { - "displayName": "Надежда Демиденко", - "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mA6D7k5OgtG9hzPe8Abs8DfOKAXQoTXaPfn7EY=s64", - "userId": "05224310221243935536" - }, - "user_tz": -180 - }, - "id": "OsSXRtkge8FH", - "outputId": "3fb2815d-9457-4bfa-90dc-75f32735ee65" - }, - "outputs": [], - "source": [ - "# Создание множества\n", - "my_set = set() # пустое множество\n", - "my_set = {1, 2, 3, 4}\n", - "\n", - "my_hetero_set = {\"abc\", 3.14, (10, 20)} # можно с кортежем\n", - "\n", - "my_invalid_set = {\"abc\", 3.14, [10, 20]} # нельзя со списком, так как он нехешируемый" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 51 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 649, - "status": "ok", - "timestamp": 1575288896503, - "user": { - "displayName": "Надежда Демиденко", - "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mA6D7k5OgtG9hzPe8Abs8DfOKAXQoTXaPfn7EY=s64", - "userId": "05224310221243935536" - }, - "user_tz": -180 - }, - "id": "3vQWag4RhwDQ", - "outputId": "adc7d5c2-5c36-4fc4-ac5c-3fd5e1b8c5a7" - }, - "outputs": [], - "source": [ - "# Создание словаря\n", - "\n", - "my_dict1 = {} # Пустой словарь\n", - "print(my_dict1)\n", - "my_dict2 = {'one': 10, 'two': 20, 'three': 30}\n", - "print(my_dict2)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 374 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 713, - "status": "ok", - "timestamp": 1575289237227, - "user": { - "displayName": "Надежда Демиденко", - "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mA6D7k5OgtG9hzPe8Abs8DfOKAXQoTXaPfn7EY=s64", - "userId": "05224310221243935536" - }, - "user_tz": -180 - }, - "id": "H71xC2y2i9r4", - "outputId": "f22495f9-1d9b-4e81-f3e1-94c9b945788c" - }, - "outputs": [], - "source": [ - "# Доступ к значениям или к ключам выполняется при помощи .keys() или .values()\n", - "# .items() возвращает пару \"ключ: значение\" в кортеже\n", - "\n", - "my_dict = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}\n", - "\n", - "print('Проход по ключам')\n", - "for elem in my_dict: # равносильно my_dict.keys()\n", - " print(elem) \n", - " \n", - "print('Проход по значениям')\n", - "for elem in my_dict.values(): # .values() возвращает значения\n", - " print(elem)\n", - "\n", - "print('Проход по парам - ключ: значение')\n", - "for key, value in my_dict.items(): # Проход по .items() возвращает кортеж (ключ, значение), \n", - " print(key, value) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "Wc1ksuulPGZM" - }, - "source": [ - "Операции, непосредственно изменяющие множество\n", - "\n", - "|Функция|Пояснение \n", - "|---|:---|\n", - "|`set.update(other, ...)`; `set \\|= other \\| ...`|объединение|\n", - "|`set.intersection_update(other, ...)`; `set &= other & ...`|пересечение|\n", - "|`set.difference_update(other, ...)`; `set -= other \\| ...`|вычитание|\n", - "|`set.symmetric_difference_update(other)`; `set ^= other`|множество из элементов, встречающихся в одном множестве, но не встречающиеся в обоих|\n", - "|`set.add(elem)`|добавляет элемент в множество|\n", - "|`set.remove(elem)`|удаляет элемент из множества. KeyError, если такого элемента не существует|\n", - "|`set.discard(elem)`|удаляет элемент, если он находится в множестве|\n", - "|`set.pop()`|удаляет первый элемент из множества. Так как множества не упорядочены, нельзя точно сказать, какой элемент будет первым|\n", - "|`set.clear()`|очистка множества|" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "31fpGaQePGZS" - }, - "source": [ - "Объединить словари можно, комбинируя методы .copy() и .update():" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 51 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 1420, - "status": "ok", - "timestamp": 1575288544579, - "user": { - "displayName": "Надежда Демиденко", - "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mA6D7k5OgtG9hzPe8Abs8DfOKAXQoTXaPfn7EY=s64", - "userId": "05224310221243935536" - }, - "user_tz": -180 - }, - "id": "jCUzbitxPGZS", - "outputId": "fd97e853-89ec-47e5-b1d3-28fbd9ff4424" - }, - "outputs": [], - "source": [ - "dict1 = {'a': 1, 'b': 2}\n", - "dict2 = {'c': 3, 'd': 4}\n", - "dict3 = dict1.copy()\n", - "dict3.update(dict2)\n", - "print(dict3)\n", - "\n", - "# Для версии Python 3.5 и выше:\n", - "dict1 = {'a': 1, 'b': 2}\n", - "dict2 = {'c': 3, 'd': 4}\n", - "dict3 = {**dict1, **dict2}\n", - "print(dict3)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "LWBSMlXVgNGN" - }, - "source": [ - "С множествами можно выполнять множество операций: находить объединение, пересечение и т.п.:\n", - "\n", - "|Функция|Пояснение \n", - "|---|:---|\n", - "|`len(s)`|число элементов в множестве (размер множества)|\n", - "|`x in s`|принадлежит ли x множеству s|\n", - "|`set.isdisjoint(other)`|истина, если set и other не имеют общих элементов|\n", - "|`set == other`|все элементы set принадлежат other, все элементы other принадлежат set|\n", - "|`set.issubset(other)` или `set <= other`|все элементы set принадлежат other|\n", - "|`set.issuperset(other)` или `set >= other`|аналогично|\n", - "|`set.union(other, ...)` или `set \\| other \\| ...`|объединение нескольких множеств|\n", - "|`set.intersection(other, ...)` или `set & other & ...`|пересечение|\n", - "|`set.difference(other, ...)` или `set - other - ...`|множество из всех элементов set, не принадлежащие ни одному из other|\n", - "|`set.symmetric_difference(other)`; `set ^ other`|множество из элементов, встречающихся в одном множестве, но не встречающиеся в обоих|\n", - "|`set.copy()`|копия множества|" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "WmzhPB9cPGZH" - }, - "source": [ - "### Срезы\n", - "\n", - "В индексируемых коллекциях также применимы срезы, как при работе со строками: `[Start:Stop:Step]`\n", - "\n", - "Start задает начало среза;\\\n", - "Stop задает конец среза (не включая элемент с индексом Stop);\\\n", - "Step задает шаг.\n", - "\n", - "Срезы на примере строки:\n", - "\n", - "![Примеры срезов](04-02.png)\n", - "\n", - "С помощью среза можно не только получать копию коллекции, но в случае **списка** можно также менять значения элементов, удалять и добавлять новые. Для этого необходимо передавать также итерируемый объект.\n", - "\n", - "Обращение к несуществующему индексу коллекции вызывает ошибку, а в случае выхода границ среза за границы коллекции никакой ошибки не происходит." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "ZYEoYBvBPGZI", - "outputId": "4d2fe08f-9291-41a9-b5a6-7b9bdc28027d" - }, - "outputs": [], - "source": [ - "my_list = [1, 1, 3, 4, 5]\n", - "\n", - "# my_list[1:2] = 2 # Неправильно - TypeError: can only assign an iterable\n", - "my_list[1:2] = [2] # Правильно\n", - "print(my_list)\n", - "\n", - "my_list[1:3] = [20, 30]\n", - "print(my_list) # [1, 20, 30, 4, 5]\n", - "\n", - "my_list[1:3] = [0] # можно заменить два элемента на один\n", - "print(my_list)\n", - "my_list[2:] = [40, 50, 60] # или два элемента на три\n", - "print(my_list)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "VUgsI77tjnq4" - }, - "source": [ - "Можно также создать объект среза (slice) или использовать его на лету:\n", - "slice(start,stop,step)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 153 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 441, - "status": "ok", - "timestamp": 1575289585211, - "user": { - "displayName": "Надежда Демиденко", - "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mA6D7k5OgtG9hzPe8Abs8DfOKAXQoTXaPfn7EY=s64", - "userId": "05224310221243935536" - }, - "user_tz": -180 - }, - "id": "ji0Ksxeojwcb", - "outputId": "e0fc67b2-ef45-4422-9c51-84cc5ba02a71" - }, - "outputs": [], - "source": [ - "my_list = [5, 6, 7, 8, 9]\n", - "\n", - "my_slice = slice(2, 4)\n", - "print(my_slice.start)\n", - "print(my_slice.stop)\n", - "print(my_slice.step)\n", - "\n", - "print(my_list[my_slice]) # эквивалент [2:4]\n", - "\n", - "print(my_list[slice(1, None)]) # эквивалент [1:]\n", - "\n", - "print(my_list[slice(None, -1)]) # эквивалент [:-1]\n", - "\n", - "print(my_list[slice(None, None, 2)]) # эквивалент [::2]\n", - "\n", - "print(my_list[slice(None)]) # эквивалент [::]" - ] - } - ], - "metadata": { - "colab": { - "name": "topic04.ipynb", - "provenance": [ - { - "file_id": "1Fx90fM9aCQ4ZuX5vz_fCkFFCHjZXzMng", - "timestamp": 1575284888378 - } - ] - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.4" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/lecture_1/Python_Lecture1.pptx b/lecture_1/Python_Lecture1.pptx deleted file mode 100644 index 463d89ee142d3f4b957bf167f8b9441ff268aeeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 371186 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

qpCqqK7KDySU6u4#W*%zp$rlq{E;1e?@`Ay|F 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