From 2d98c447349a66f7a01f1e817c55d9d195910815 Mon Sep 17 00:00:00 2001 From: nikitakost <162489848+nikitakost@users.noreply.github.com> Date: Mon, 3 Mar 2025 21:39:19 +0200 Subject: [PATCH 1/2] Add files via upload --- python_practice_3.ipynb | 537 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 537 insertions(+) create mode 100644 python_practice_3.ipynb diff --git a/python_practice_3.ipynb b/python_practice_3.ipynb new file mode 100644 index 0000000..426be61 --- /dev/null +++ b/python_practice_3.ipynb @@ -0,0 +1,537 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "qDEi2Pi-4yUC" + }, + "source": [ + "# I. Оператори порівняння та логічні оператори. Умови." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "3v8D4Dkm43Ua" + }, + "source": [ + "1. (5б) Створіть цілочисленну змінну зі своїм щасливим або улюбленим числом. Напишіть код, який би автоматизовував наступну задачу.\n", + "\n", + "Якщо число парне, помножте його на 2 та виведіть результат на екран.\n", + "\n", + "Але якщо число непарне, помножте його на 3 та додайте 1 і виведіть на екран." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "id": "dlVjc-Nu4bmb" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10\n" + ] + } + ], + "source": [ + "my_fav_number = 3\n", + "if my_fav_number % 2 == 0:\n", + " print(my_fav_number * 2)\n", + "else:\n", + " print(my_fav_number * 3 + 1)\n", + "\n", + " \n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "H669P0QK5BI_" + }, + "source": [ + "2. (9б) Створіть змінну, що посилається на список. Якщо список пустий, додайте будь-який елемент у кінець списку. Якщо ж ні, то нічого не робіть." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "id": "ecWlfra45f6E" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1]\n" + ] + } + ], + "source": [ + "list = []\n", + "if len(list) == 0:\n", + " list.append(1)\n", + " print(list)\n", + "else:\n", + " None\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "h9Y3cMUd5h85" + }, + "source": [ + "3. (13б) Створіть рядок зі своїм імʼям латинкою. Напишіть код, який би автоматизовував наступну задачу.\n", + "\n", + "Якщо в імені є літера \"а\"\n", + " або \"i\", Виведіть на екран повідомлення \"A or I is in the name\".\n", + "\n", + "\n", + "\n", + "Якщо в імені є літери \"o\" та \"n\", Виведіть на екран повідомлення \"O and N is in the name\".\n", + "\n", + "Також якщо в імені немає літери \"о\", але є \"n\", Виведіть на екран повідомлення \"Only N is in the name\".\n", + "\n", + "В решті випадків виведіть на екран повідомлення \"There is no N in the name, but there might be O\".\n", + "\n", + "Зверніть увагу, що, наприклад, для імені \"Antonina\" буде виведено два повідомлення." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "bUH4LUx35u52" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A or I is in the name\n" + ] + } + ], + "source": [ + "my_name_str = \"nikita\"\n", + "if 'a' in my_name_str or 'i' in my_name_str:\n", + " print(\"A or I is in the name\")\n", + "elif 'o' in my_name_str and 'n' in my_name_str:\n", + " print(\"O and N are in the name\")\n", + "elif 'n' in my_name_str:\n", + " print(\"Only N is in the name\")\n", + "else:\n", + " print(\"There is no N in the name, but there might be O\")\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "wPCXJv4354cU" + }, + "source": [ + "# II. Comprehensions." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "jULLW5jN55Pw" + }, + "source": [ + "4. (5б) Створіть список, використовуючи if (не if-else), range та comprehension." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "mlZalnVC6W3F" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[2, 4, 6, 8, 10]\n" + ] + } + ], + "source": [ + "even_numbers = [x for x in range(1, 11) if x % 2 == 0]\n", + "print(even_numbers)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "LqhEQ4JW6XcC" + }, + "source": [ + "5. (9б) Створіть словник, використовуючи dict comprehension, що містить if else. Коли слід використовувати comprehensions, а коли їх слід уникати?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "1yVaFbOs6hta" + }, + "outputs": [], + "source": [ + "numbers = {x: ('big' if x > 5 else 'small') for x in range(1, 11)}\n", + "print(numbers)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "wbkzNhKq6hzz" + }, + "source": [ + "*місце для відповіді" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ZlqB8G3G6lHP" + }, + "source": [ + "6. (9б) Створіть список з рядками та запишіть його у змінну. Створіть ще один список на основі попереднього, де кожен рядок буде містити тільки три перших заглавних символи. Наприклад: ['hello', 'i', 'dont', 'care'] -> ['HEL', 'I', 'DON', 'CAR']. Використання comprehensions обовʼязкове." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "id": "nw6rz0bR60VC" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['HEL', 'I', 'DON', 'CAR']\n" + ] + } + ], + "source": [ + "list_string = [\"hello\", \"i\", \"dont\", \"care\"]\n", + "result = [word[:3].upper() for word in list_string]\n", + "print(result)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Tj573IAH64Fz" + }, + "source": [ + "# III. Цикли." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "tN_33xdE65H5" + }, + "source": [ + "7. (5б) Продемонструйте роботу циклу while. Не можна використовувати True для запуску циклу, щоб уникнути безкінечного циклу!" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "id": "Kd9FO6yG63P5" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "9\n", + "8\n", + "7\n", + "6\n", + "5\n", + "4\n", + "3\n", + "2\n", + "1\n", + "0\n" + ] + } + ], + "source": [ + "counter = 10\n", + "while counter > 0:\n", + " counter -= 1\n", + " print(counter)\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "x2CmfZO-7pW0" + }, + "source": [ + "8. (5б) Напишіть програму, яка виведе на екран непарні числа в діапазоні від 0 до 20 включно." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "id": "aCSRYA6s7tkF" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "19\n", + "17\n", + "15\n", + "13\n", + "11\n", + "9\n", + "7\n", + "5\n", + "3\n", + "1\n" + ] + } + ], + "source": [ + "ne_parni = 20\n", + "while ne_parni > 0:\n", + " if ne_parni % 2 != 0:\n", + " print(ne_parni)\n", + " ne_parni -= 1\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "MDWNocZD7t_B" + }, + "source": [ + "9. (13б) Створіть список з елементами булевого типу або None. Використовуючи цикли, отримайте в результаті список з кортежами, де перший елемент кортежу - індекс(ціле число), а другий елемент - відповідне значення з першого списку.\n", + "\n", + "Наприклад, [True, True, None, False] -> [(0, True), (1, True), (2, None), (3, False)]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "0EUyjMdp7yfh" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[(0, True), (1, False), (2, None), (3, True), (4, False)]\n" + ] + } + ], + "source": [ + "values = [True, False, None, True, False]\n", + "\n", + "result = []\n", + "\n", + "for index in range(len(values)):\n", + " result.append((index, values[index]))\n", + "\n", + "print(result)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-6XUqlcG7zKs" + }, + "source": [ + "10. (9б) Створіть словник, де ключі - назви книжок, а значення - їхня кількість у наявності в Вашій міні-бібліотеці. Бібліотека має містити щонайменше 6 книжок (6 пар значень у словнику) і щонайбільше 10 (пар значень). Використовуючи цикли, оновіть словник (не створюйте новий) так, щоби кількість книг у наявності збільшилося на 5 кожної книги. Наприклад,\n", + "{'It': 3, 'Fault stars': 10, 'Bible': 17, 'Psychological romance': 4, 'Harry Potter': 13} -> {'It': 8, 'Fault stars': 15, 'Bible': 22, 'Psychological romance': 9, 'Harry Potter': 18}" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "id": "Ceoj9wwb791q" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'It': 8, 'Fault stars': 15, 'Bible': 22, 'Psychological romance': 9, 'Harry Potter': 18, 'Sherlock Holmes': 12}\n" + ] + } + ], + "source": [ + "library = {'It': 3,'Fault stars': 10,'Bible': 17,'Psychological romance': 4,'Harry Potter': 13,'Sherlock Holmes': 7}\n", + "\n", + "for book in library:\n", + " library[book] += 5\n", + "\n", + "print(library)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QLzyJM288AC7" + }, + "source": [ + "11. (5б) Визначте цілочислену змінну n, що належить проміжку від 4 до 10 включно. Використовуючи цикли, виведіть в консоль наступний патерн.\n", + "\n", + "#\n", + "##\n", + "###\n", + "####\n", + "\n", + "... #*n\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "id": "KOpng87s8Duz" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "#\n", + "##\n", + "###\n", + "####\n", + "#####\n", + "######\n", + "#######\n" + ] + } + ], + "source": [ + "n = 7\n", + "\n", + "for i in range(1, n + 1):\n", + " print('#' * i)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_bd-bqAT8EHn" + }, + "source": [ + "12. (13б) Гра \"Нумо вгадай\".\n", + "Розробіть просту гру, де користувач має вгадати випадкове число від 1 до 100. Для генерації випадкового числа використовуйте функцію random.randint(a, b) (тут a та b включно). Для отримання числа з консолі використовуйте функцію input(), результат якої обовʼязково явно приведіть до типу int.\n", + "\n", + "Підказка: використовуйте цикл while та умови if-else, щоб повідомити користувачу піказки (напр. \"Більше\", \"Менше\") поки користувач не вгадає. По завершенню виведіть кількість спроб, які знадобилися для вгадування." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "id": "IK9nnxFK8Hkl" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Вгадай число від 1 до 100!\n" + ] + }, + { + "ename": "KeyboardInterrupt", + "evalue": "Interrupted by user", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[18], line 9\u001b[0m\n\u001b[0;32m 6\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mВгадай число від 1 до 100!\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 8\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m \u001b[38;5;28;01mTrue\u001b[39;00m:\n\u001b[1;32m----> 9\u001b[0m guess \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mint\u001b[39m(\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mВведи своє число: \u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m)\n\u001b[0;32m 10\u001b[0m attempts \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1\u001b[39m\n\u001b[0;32m 12\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m guess \u001b[38;5;241m<\u001b[39m number:\n", + "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python313\\site-packages\\ipykernel\\kernelbase.py:1282\u001b[0m, in \u001b[0;36mKernel.raw_input\u001b[1;34m(self, prompt)\u001b[0m\n\u001b[0;32m 1280\u001b[0m msg \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mraw_input was called, but this frontend does not support input requests.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 1281\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m StdinNotImplementedError(msg)\n\u001b[1;32m-> 1282\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_input_request\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 1283\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mstr\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mprompt\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1284\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_parent_ident\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mshell\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1285\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_parent\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mshell\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1286\u001b[0m \u001b[43m \u001b[49m\u001b[43mpassword\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[0;32m 1287\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python313\\site-packages\\ipykernel\\kernelbase.py:1325\u001b[0m, in \u001b[0;36mKernel._input_request\u001b[1;34m(self, prompt, ident, parent, password)\u001b[0m\n\u001b[0;32m 1322\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyboardInterrupt\u001b[39;00m:\n\u001b[0;32m 1323\u001b[0m \u001b[38;5;66;03m# re-raise KeyboardInterrupt, to truncate traceback\u001b[39;00m\n\u001b[0;32m 1324\u001b[0m msg \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mInterrupted by user\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m-> 1325\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyboardInterrupt\u001b[39;00m(msg) \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m 1326\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m:\n\u001b[0;32m 1327\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mlog\u001b[38;5;241m.\u001b[39mwarning(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mInvalid Message:\u001b[39m\u001b[38;5;124m\"\u001b[39m, exc_info\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n", + "\u001b[1;31mKeyboardInterrupt\u001b[0m: Interrupted by user" + ] + } + ], + "source": [ + "number = random.randint(1, 100)\n", + "attempts = 0\n", + "\n", + "print(\"Вгадай число від 1 до 100!\")\n", + "\n", + "while True:\n", + " guess = int(input(\"Введи своє число: \"))\n", + " attempts += 1\n", + "\n", + " if guess < number:\n", + " print(\"Більше!\")\n", + " elif guess > number:\n", + " print(\"Менше!\")\n", + " else:\n", + " print(f\"Вітаю! Ти вгадав число {number} за {attempts} спроб(у/и).\")\n", + " break\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "PXoXWb7Z8IGi" + }, + "source": [ + "# Вітаю! Ви велика(ий) молодець, що впоралась(вся). Похваліть себе та побалуйте чимось приємним. Я Вами пишаюся." + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "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.13.2" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} From ab530f4bccb8759a4ff301942f836b7c6f571b6d Mon Sep 17 00:00:00 2001 From: nikitakost <162489848+nikitakost@users.noreply.github.com> Date: Mon, 3 Mar 2025 21:41:42 +0200 Subject: [PATCH 2/2] Update README.md with the 3 pr --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index ad3e9c1..3f6b8b1 100644 --- a/README.md +++ b/README.md @@ -9,3 +9,7 @@ I'm a **2-nd-year Computer Science student** at **Kiyv-Mohyla Academy** ## Second Practice **Second Practice** - [Branch2](https://github.com/nikitakost/PythonBigData_Practics/tree/Practice_2) + +## Third Practice +**Third Practice** - [Branch3](https://github.com/nikitakost/PythonBigData_Practics/blob/Practice_3/python_practice_3.ipynb) +