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