mirror of
https://github.com/nicholasChieftain/1_semester_python_liga.git
synced 2024-11-26 06:30:51 +03:00
409 lines
9.5 KiB
Plaintext
409 lines
9.5 KiB
Plaintext
|
{
|
|||
|
"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
|
|||
|
}
|