1_semester_python_liga/.ipynb_checkpoints/Lesson_14-checkpoint.ipynb
2020-05-10 23:48:23 +05:00

638 lines
16 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"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
}