mirror of
https://github.com/nicholasChieftain/1_semester_python_liga.git
synced 2024-11-26 14:30:53 +03:00
[+]add les 14
This commit is contained in:
parent
ed44f1cb0a
commit
dface46f7e
637
.ipynb_checkpoints/Lesson_14-checkpoint.ipynb
Normal file
637
.ipynb_checkpoints/Lesson_14-checkpoint.ipynb
Normal file
@ -0,0 +1,637 @@
|
|||||||
|
{
|
||||||
|
"cells": [
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"# Занятие 14"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"### Сохранение данных в файл. Обработка исключений"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"Модуль ***time***."
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 5,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
" 10"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"import time\n",
|
||||||
|
"\n",
|
||||||
|
"for i in range(10):\n",
|
||||||
|
" print('\\r', i + 1, end='')\n",
|
||||||
|
" time.sleep(1)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"Вызов подскази модулей."
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"help(time)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"**Задача 1**\n",
|
||||||
|
"\n",
|
||||||
|
"Напишите программу, которая будет выводить загрузочную строку в виде “#”. Таких символов в строке может быть 10. Пример вывода показан на слайде."
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"import time\n",
|
||||||
|
"\n",
|
||||||
|
"for i in range(10):\n",
|
||||||
|
" print('\\r[', '#' * (i + 1),'.' * (10 - (i + 1)) , ']', end='')\n",
|
||||||
|
" time.sleep(1)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"Пример первой программы с ошибкой. "
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"import time\n",
|
||||||
|
"\n",
|
||||||
|
"for i in range(10):\n",
|
||||||
|
" print('\\r', i + 1, end='')\n",
|
||||||
|
" taime.sleep(1)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"### Обработка ошибки"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"import time\n",
|
||||||
|
"\n",
|
||||||
|
"for i in range(10):\n",
|
||||||
|
" print('\\r', i + 1, end='')\n",
|
||||||
|
" try:\n",
|
||||||
|
" taime.sleep(1)\n",
|
||||||
|
" except NameError: \n",
|
||||||
|
" print(f'Кажется вы ошиблись при написании кода:)')\n",
|
||||||
|
" time.sleep(1)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"**Задача 2**\n",
|
||||||
|
"\n",
|
||||||
|
"Напишите функцию, которая будет складывать значения с одинаковыми индексами из двух списков одинаковой длины. Списки заранее прописаны в дневнике."
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"first_list = [1, 2, 3, '123']\n",
|
||||||
|
"second_list = [1, 1, 1, 234]\n",
|
||||||
|
"third_list = [1, 1, 1, 1]\n",
|
||||||
|
"\n",
|
||||||
|
"for i in range(len(first_list)):\n",
|
||||||
|
" try:\n",
|
||||||
|
" third_list[i] = first_list[i] + second_list[i]\n",
|
||||||
|
" except TypeError:\n",
|
||||||
|
" third_list[i] = str(first_list[i]) + str(second_list[i])\n",
|
||||||
|
" \n",
|
||||||
|
"print(third_list)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"### Чтение и запись данных"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"#### Запись и создание"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"f = open('text.txt', 'w')\n",
|
||||||
|
"for index in range(10):\n",
|
||||||
|
" f.write(str(index) + '\\n')\n",
|
||||||
|
"f.close()"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"#### Чтение"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 12,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"\u001f\u0002\u0003\u0004\u0005\u0006\u0007\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"f = open('text.txt', 'r')\n",
|
||||||
|
"a = f.read()\n",
|
||||||
|
"f.close()\n",
|
||||||
|
"\n",
|
||||||
|
"print(a)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"**Задача 3**\n",
|
||||||
|
"\n",
|
||||||
|
"Сгенерируйте список из 10 четных чисел и сохраните его в файл. После записи прочитайте список и выведите его на экран. "
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"#### Преобразование из десятичной системы счисления в двоичную: "
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 2,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"Список 16 чисел от 0 до 15: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]\n",
|
||||||
|
"\n",
|
||||||
|
"В десятичной системе счисления: 0;\n",
|
||||||
|
"Это же число в двоичной системе: 0b0\n",
|
||||||
|
"\n",
|
||||||
|
"В десятичной системе счисления: 1;\n",
|
||||||
|
"Это же число в двоичной системе: 0b1\n",
|
||||||
|
"\n",
|
||||||
|
"В десятичной системе счисления: 2;\n",
|
||||||
|
"Это же число в двоичной системе: 0b10\n",
|
||||||
|
"\n",
|
||||||
|
"В десятичной системе счисления: 3;\n",
|
||||||
|
"Это же число в двоичной системе: 0b11\n",
|
||||||
|
"\n",
|
||||||
|
"В десятичной системе счисления: 4;\n",
|
||||||
|
"Это же число в двоичной системе: 0b100\n",
|
||||||
|
"\n",
|
||||||
|
"В десятичной системе счисления: 5;\n",
|
||||||
|
"Это же число в двоичной системе: 0b101\n",
|
||||||
|
"\n",
|
||||||
|
"В десятичной системе счисления: 6;\n",
|
||||||
|
"Это же число в двоичной системе: 0b110\n",
|
||||||
|
"\n",
|
||||||
|
"В десятичной системе счисления: 7;\n",
|
||||||
|
"Это же число в двоичной системе: 0b111\n",
|
||||||
|
"\n",
|
||||||
|
"В десятичной системе счисления: 8;\n",
|
||||||
|
"Это же число в двоичной системе: 0b1000\n",
|
||||||
|
"\n",
|
||||||
|
"В десятичной системе счисления: 9;\n",
|
||||||
|
"Это же число в двоичной системе: 0b1001\n",
|
||||||
|
"\n",
|
||||||
|
"В десятичной системе счисления: 10;\n",
|
||||||
|
"Это же число в двоичной системе: 0b1010\n",
|
||||||
|
"\n",
|
||||||
|
"В десятичной системе счисления: 11;\n",
|
||||||
|
"Это же число в двоичной системе: 0b1011\n",
|
||||||
|
"\n",
|
||||||
|
"В десятичной системе счисления: 12;\n",
|
||||||
|
"Это же число в двоичной системе: 0b1100\n",
|
||||||
|
"\n",
|
||||||
|
"В десятичной системе счисления: 13;\n",
|
||||||
|
"Это же число в двоичной системе: 0b1101\n",
|
||||||
|
"\n",
|
||||||
|
"В десятичной системе счисления: 14;\n",
|
||||||
|
"Это же число в двоичной системе: 0b1110\n",
|
||||||
|
"\n",
|
||||||
|
"В десятичной системе счисления: 15;\n",
|
||||||
|
"Это же число в двоичной системе: 0b1111\n",
|
||||||
|
"\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"numbers = [i for i in range(16)]\n",
|
||||||
|
"\n",
|
||||||
|
"print(f'Список 16 чисел от 0 до 15: {numbers}\\n')\n",
|
||||||
|
"for number in numbers:\n",
|
||||||
|
" b_n = bin(number)\n",
|
||||||
|
" print(f'В десятичной системе счисления: {number};\\nЭто же число в двоичной системе: {b_n}\\n')"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"***bytes()*** и ***bytearray()***"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 11,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"b'\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\t\\n\\x0b\\x0c\\r\\x0e\\x0f'\n",
|
||||||
|
"bytearray(b'\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\t\\n\\x0b\\x0c\\r\\x0e\\x0f')\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"000102030405060708090a0b0c0d0e0f\n",
|
||||||
|
"000102030405060708090a0b0c0d0e0f\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"0b10000001000000011000001000000010100000110000001110000100000001001000010100000101100001100000011010000111000001111\n",
|
||||||
|
"0b10000001000000011000001000000010100000110000001110000100000001001000010100000101100001100000011010000111000001111\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"print(bytes(numbers))\n",
|
||||||
|
"print(bytearray(numbers))\n",
|
||||||
|
"print('\\n')\n",
|
||||||
|
"print(bytes(numbers).hex())\n",
|
||||||
|
"print(bytearray(numbers).hex())\n",
|
||||||
|
"print('\\n')\n",
|
||||||
|
"print(bin(int(bytes(numbers).hex(), base=16)))\n",
|
||||||
|
"print(bin(int(bytearray(numbers).hex(), base=16)))"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"#### Сохраним список файл и прочитаем его"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 26,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"f = open('text.txt', 'wb')\n",
|
||||||
|
"a = f.write(bytes(numbers))\n",
|
||||||
|
"f.close()\n",
|
||||||
|
"\n",
|
||||||
|
"f = open('text.txt', 'rb')\n",
|
||||||
|
"b = f.read()\n",
|
||||||
|
"f.close()\n",
|
||||||
|
"print(list(b))"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"#### Преобразование строки в набор байтов"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 4,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"b'hello'\n",
|
||||||
|
"68656c6c6f\n",
|
||||||
|
"hello\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"ex_str = 'hello'\n",
|
||||||
|
"b_str = ex_str.encode('utf-8')\n",
|
||||||
|
"\n",
|
||||||
|
"print(b_str)\n",
|
||||||
|
"print(b_str.hex())\n",
|
||||||
|
"print(b_str.decode())"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 9,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"Буква: a\n",
|
||||||
|
"\tВ шестнадцатеричном виде: 61\n",
|
||||||
|
" \tВ десятичном виде: 97\n",
|
||||||
|
" \tВ двоичном виде: 1100001\n",
|
||||||
|
"\n",
|
||||||
|
"Буква: b\n",
|
||||||
|
"\tВ шестнадцатеричном виде: 62\n",
|
||||||
|
" \tВ десятичном виде: 98\n",
|
||||||
|
" \tВ двоичном виде: 1100010\n",
|
||||||
|
"\n",
|
||||||
|
"Буква: c\n",
|
||||||
|
"\tВ шестнадцатеричном виде: 63\n",
|
||||||
|
" \tВ десятичном виде: 99\n",
|
||||||
|
" \tВ двоичном виде: 1100011\n",
|
||||||
|
"\n",
|
||||||
|
"Буква: d\n",
|
||||||
|
"\tВ шестнадцатеричном виде: 64\n",
|
||||||
|
" \tВ десятичном виде: 100\n",
|
||||||
|
" \tВ двоичном виде: 1100100\n",
|
||||||
|
"\n",
|
||||||
|
"Буква: а\n",
|
||||||
|
"\tВ шестнадцатеричном виде: d0b0\n",
|
||||||
|
" \tВ десятичном виде: 53424\n",
|
||||||
|
" \tВ двоичном виде: 1101000010110000\n",
|
||||||
|
"\n",
|
||||||
|
"Буква: б\n",
|
||||||
|
"\tВ шестнадцатеричном виде: d0b1\n",
|
||||||
|
" \tВ десятичном виде: 53425\n",
|
||||||
|
" \tВ двоичном виде: 1101000010110001\n",
|
||||||
|
"\n",
|
||||||
|
"Буква: в\n",
|
||||||
|
"\tВ шестнадцатеричном виде: d0b2\n",
|
||||||
|
" \tВ десятичном виде: 53426\n",
|
||||||
|
" \tВ двоичном виде: 1101000010110010\n",
|
||||||
|
"\n",
|
||||||
|
"Буква: г\n",
|
||||||
|
"\tВ шестнадцатеричном виде: d0b3\n",
|
||||||
|
" \tВ десятичном виде: 53427\n",
|
||||||
|
" \tВ двоичном виде: 1101000010110011\n",
|
||||||
|
"\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"letter = ['a', 'b', 'c', 'd', 'а', 'б', 'в', 'г']\n",
|
||||||
|
"for l in letter: \n",
|
||||||
|
" bb_s = l.encode('utf-8')\n",
|
||||||
|
" print(f'''Буква: {l}\\n\\tВ шестнадцатеричном виде: {bb_s.hex()}\n",
|
||||||
|
" \\tВ десятичном виде: {int(bb_s.hex(), base=16)}\n",
|
||||||
|
" \\tВ двоичном виде: {bin(int(bb_s.hex(), base=16)).lstrip('0b')}\\n''')"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"#### Модуль *pickle*"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 7,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"{'Верхний ящик': ['Ручка', 'Тетрадь'], 'Нижний ящик': 'Кошка'}\n",
|
||||||
|
"<class 'dict'>\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"import pickle\n",
|
||||||
|
"ex_data = {'Верхний ящик':['Ручка', 'Тетрадь'], 'Нижний ящик': 'Кошка'}\n",
|
||||||
|
"f = open('text.txt', 'wb')\n",
|
||||||
|
"pickle.dump(ex_data, f)\n",
|
||||||
|
"f.close()\n",
|
||||||
|
"\n",
|
||||||
|
"f = open('text.txt', 'rb')\n",
|
||||||
|
"el_data = pickle.load(f)\n",
|
||||||
|
"f.close()\n",
|
||||||
|
"print(el_data)\n",
|
||||||
|
"\n",
|
||||||
|
"print(type(el_data))"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"#### Задача 4 \n",
|
||||||
|
"\n",
|
||||||
|
"Прочитайте данные из файла с именем ‘Task_4.liga’. Выведите прочтенные данные. "
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 5,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"Ты прочитал файл!\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"f = open('Task_4.liga', 'r')\n",
|
||||||
|
"el_d = f.read()\n",
|
||||||
|
"f.close()\n",
|
||||||
|
"print(el_d)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"#### Задача 5"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 8,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"{'Молодец': 'Да', 'Кто': 'Ты:)'}\n",
|
||||||
|
"<class 'dict'>\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"ex_data = {'Молодец':'Да', 'Кто': 'Ты:)'}\n",
|
||||||
|
"f = open('Task_5.liga', 'wb')\n",
|
||||||
|
"pickle.dump(ex_data, f)\n",
|
||||||
|
"f.close()\n",
|
||||||
|
"\n",
|
||||||
|
"f = open('Task_5.liga', 'rb')\n",
|
||||||
|
"el_data = pickle.load(f)\n",
|
||||||
|
"f.close()\n",
|
||||||
|
"print(el_data)\n",
|
||||||
|
"print(type(el_data))"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 1,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"b'\\x80\\x03}q\\x00(X\\x0e\\x00\\x00\\x00\\xd0\\x9c\\xd0\\xbe\\xd0\\xbb\\xd0\\xbe\\xd0\\xb4\\xd0\\xb5\\xd1\\x86q\\x01X\\x04\\x00\\x00\\x00\\xd0\\x94\\xd0\\xb0q\\x02X\\x06\\x00\\x00\\x00\\xd0\\x9a\\xd1\\x82\\xd0\\xbeq\\x03X\\x06\\x00\\x00\\x00\\xd0\\xa2\\xd1\\x8b:)q\\x04u.'\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"f = open('Task_5.liga', 'rb')\n",
|
||||||
|
"el_d = f.read()\n",
|
||||||
|
"f.close()\n",
|
||||||
|
"print(el_d)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 2,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"{'Молодец': 'Да', 'Кто': 'Ты:)'}\n",
|
||||||
|
"<class 'dict'>\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"import pickle\n",
|
||||||
|
"f = open('Task_5.liga', 'rb')\n",
|
||||||
|
"el_data = pickle.load(f)\n",
|
||||||
|
"f.close()\n",
|
||||||
|
"print(el_data)\n",
|
||||||
|
"print(type(el_data))"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"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.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nbformat": 4,
|
||||||
|
"nbformat_minor": 4
|
||||||
|
}
|
408
Lesson_14.ipynb
Normal file
408
Lesson_14.ipynb
Normal file
@ -0,0 +1,408 @@
|
|||||||
|
{
|
||||||
|
"cells": [
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"# Занятие 14"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"### Сохранение данных в файл. Обработка исключений"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"Модуль ***time***."
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"import time\n",
|
||||||
|
"\n",
|
||||||
|
"for i in range(10):\n",
|
||||||
|
" print('\\r', i + 1, end='')\n",
|
||||||
|
" time.sleep(1)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"Вызов подскази модулей."
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"help(time)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"**Задача 1**\n",
|
||||||
|
"\n",
|
||||||
|
"Напишите программу, которая будет выводить загрузочную строку в виде “#”. Таких символов в строке может быть 10. Пример вывода показан на слайде."
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"Пример первой программы с ошибкой. "
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"import time\n",
|
||||||
|
"\n",
|
||||||
|
"for i in range(10):\n",
|
||||||
|
" print('\\r', i + 1, end='')\n",
|
||||||
|
" taime.sleep(1)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"### Обработка ошибки"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"import time\n",
|
||||||
|
"\n",
|
||||||
|
"for i in range(10):\n",
|
||||||
|
" print('\\r', i + 1, end='')\n",
|
||||||
|
" try:\n",
|
||||||
|
" taime.sleep(1)\n",
|
||||||
|
" except NameError: \n",
|
||||||
|
" print(f'Кажется вы ошиблись при написании кода:)')\n",
|
||||||
|
" time.sleep(1)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"**Задача 2**\n",
|
||||||
|
"\n",
|
||||||
|
"Напишите функцию, которая будет складывать значения с одинаковыми индексами из двух списков одинаковой длины. Списки заранее прописаны в дневнике."
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"### Чтение и запись данных"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"#### Запись и создание"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"f = open('text.txt', 'w')\n",
|
||||||
|
"for index in range(10):\n",
|
||||||
|
" f.write(str(index) + '\\n')\n",
|
||||||
|
"f.close()"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"#### Чтение"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"f = open('text.txt', 'r')\n",
|
||||||
|
"a = f.read()\n",
|
||||||
|
"f.close()\n",
|
||||||
|
"\n",
|
||||||
|
"print(a)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"**Задача 3**\n",
|
||||||
|
"\n",
|
||||||
|
"Сгенерируйте список из 10 четных чисел и сохраните его в файл. После записи прочитайте список и выведите его на экран. "
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"#### Преобразование из десятичной системы счисления в двоичную: "
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"numbers = [i for i in range(16)]\n",
|
||||||
|
"\n",
|
||||||
|
"print(f'Список 16 чисел от 0 до 15: {numbers}\\n')\n",
|
||||||
|
"for number in numbers:\n",
|
||||||
|
" b_n = bin(number)\n",
|
||||||
|
" print(f'В десятичной системе счисления: {number};\\nЭто же число в двоичной системе: {b_n}\\n')"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"***bytes()*** и ***bytearray()***"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"print(bytes(numbers))\n",
|
||||||
|
"print(bytearray(numbers))\n",
|
||||||
|
"print('\\n')\n",
|
||||||
|
"print(bytes(numbers).hex())\n",
|
||||||
|
"print(bytearray(numbers).hex())\n",
|
||||||
|
"print('\\n')\n",
|
||||||
|
"print(bin(int(bytes(numbers).hex(), base=16)))\n",
|
||||||
|
"print(bin(int(bytearray(numbers).hex(), base=16)))"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"#### Сохраним список файл и прочитаем его"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"f = open('text.txt', 'wb')\n",
|
||||||
|
"a = f.write(bytes(numbers))\n",
|
||||||
|
"f.close()\n",
|
||||||
|
"\n",
|
||||||
|
"f = open('text.txt', 'rb')\n",
|
||||||
|
"b = f.read()\n",
|
||||||
|
"f.close()\n",
|
||||||
|
"print(list(b))"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"#### Преобразование строки в набор байтов"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"ex_str = 'hello'\n",
|
||||||
|
"b_str = ex_str.encode('utf-8')\n",
|
||||||
|
"\n",
|
||||||
|
"print(b_str)\n",
|
||||||
|
"print(b_str.hex())\n",
|
||||||
|
"print(b_str.decode())"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"letter = ['a', 'b', 'c', 'd', 'а', 'б', 'в', 'г']\n",
|
||||||
|
"for l in letter: \n",
|
||||||
|
" bb_s = l.encode('utf-8')\n",
|
||||||
|
" print(f'''Буква: {l}\\n\\tВ шестнадцатеричном виде: {bb_s.hex()}\n",
|
||||||
|
" \\tВ десятичном виде: {int(bb_s.hex(), base=16)}\n",
|
||||||
|
" \\tВ двоичном виде: {bin(int(bb_s.hex(), base=16)).lstrip('0b')}\\n''')"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"#### Модуль *pickle*\n",
|
||||||
|
"\n",
|
||||||
|
"Пример использования модуля. "
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"import pickle\n",
|
||||||
|
"ex_data = {'Верхний ящик':['Ручка', 'Тетрадь'], 'Нижний ящик': 'Кошка'}\n",
|
||||||
|
"f = open('text.txt', 'wb')\n",
|
||||||
|
"pickle.dump(ex_data, f)\n",
|
||||||
|
"f.close()\n",
|
||||||
|
"\n",
|
||||||
|
"f = open('text.txt', 'rb')\n",
|
||||||
|
"el_data = pickle.load(f)\n",
|
||||||
|
"f.close()\n",
|
||||||
|
"print(el_data)\n",
|
||||||
|
"\n",
|
||||||
|
"print(type(el_data))"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"#### Задача 4 \n",
|
||||||
|
"\n",
|
||||||
|
"Прочитайте данные из файла с именем ‘Task_4.liga’. Выведите прочтенные данные. "
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"#### Задача 5\n",
|
||||||
|
"\n",
|
||||||
|
"Прочитайте данные из файла с именем ‘Task_5.liga’ в двоичном режиме. Выведите прочтенные данные. "
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"#### Задача 6\n",
|
||||||
|
"\n",
|
||||||
|
"Чем необходимо воспользоваться, чтобы декодировать прочтенную строку байтов из предыдущей задачи? "
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"#### Задача 7\n",
|
||||||
|
"\n",
|
||||||
|
"Напишите мини-игру, в которой пользователь будет угадывать загаданное программой слово. Программа может загадать либо “да”, либо “нет”. Время отгадывание должно быть ограничено 5 секундами. Счет игрока должен сохраняться в файл. "
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"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.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nbformat": 4,
|
||||||
|
"nbformat_minor": 4
|
||||||
|
}
|
1
Task_4.liga
Normal file
1
Task_4.liga
Normal file
@ -0,0 +1 @@
|
|||||||
|
Ты прочитал файл!
|
BIN
Task_5.liga
Normal file
BIN
Task_5.liga
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user