{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Python: podstawy, cz. 3 (ostatnia)\n", "\n", " \n", "## 9 lutego 2019" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Kilka uwag do zadania domowego:" ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [], "source": [ "def even_elements(list):\n", " output = []\n", " for element in range(len(list)):\n", " if element % 2 == 0:\n", " output.append(list[element])\n", " return output" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [], "source": [ "def even_elements(elems):\n", " output = []\n", " for element in range(len(elems)):\n", " if element % 2 == 0:\n", " output.append(elems[element])\n", " return output" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [], "source": [ "def leet_speak(text):\n", " text2 = \"\"\n", " i = 0\n", " suma = 0\n", " for e in text:\n", " if text[i] == \"e\":\n", " text2 = text2 + \"3\"\n", " i = i + 1\n", " else:\n", " if text[i] == \"l\":\n", " text2 = text2 + \"1\"\n", " i = i + 1\n", " else:\n", " if text[i] == \"o\":\n", " text2 = text2 + \"0\"\n", " i = i + 1\n", " else:\n", " if text[i] == \"t\":\n", " text2 = text2 + \"7\"\n", " i = i + 1\n", " else:\n", " text2 = text2 + text[i]\n", " i = i + 1\n", " return (text2)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [], "source": [ "def leet_speak(text):\n", " text2 = \"\"\n", " i = 0\n", " suma = 0\n", " for e in text:\n", " if text[i] == \"e\":\n", " text2 = text2 + \"3\"\n", " elif text[i] == \"l\":\n", " text2 = text2 + \"1\"\n", " elif text[i] == \"o\":\n", " text2 = text2 + \"0\"\n", " elif text[i] == \"t\":\n", " text2 = text2 + \"7\"\n", " else:\n", " text2 = text2 + text[i]\n", " i = i + 1\n", " return (text2)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Do tej pory:\n", " * podstawowe typy danych\n", " * pętla `for` i wyrażenie warunkowe `if`\n", " * listy, słowniki\n", " * funkcje" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Wbudowane funkcje w Pythona" ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1 18 36\n" ] } ], "source": [ "elems = [1, 5, 10, 18, 2]\n", "print(min(elems), max(elems), sum(elems))" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Index: 0 wartość: 1\n", "Index: 1 wartość: 5\n", "Index: 2 wartość: 10\n", "Index: 3 wartość: 18\n", "Index: 4 wartość: 2\n", "Index: 0 wartość: 1\n", "Index: 1 wartość: 5\n", "Index: 2 wartość: 10\n", "Index: 3 wartość: 18\n", "Index: 4 wartość: 2\n" ] } ], "source": [ "elems = [1, 5, 10, 18, 2]\n", "for idx, elem in enumerate(elems):\n", " print(\"Index:\", idx, \"wartość:\", elem)\n", "\n", "for idx in range(len(elems)):\n", " elem = elems[idx]\n", " print(\"Index:\", idx, \"wartość:\", elem)" ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Alicja lat 1 .\n", "Beata lat 5 .\n", "Cecylia lat 10 .\n", "Danuta lat 18 .\n", "Eryka lat 2 .\n" ] } ], "source": [ "ages = [1, 5, 10, 18, 2, 1]\n", "names = [\"Alicja\", \"Beata\", \"Cecylia\", \"Danuta\", \"Eryka\"]\n", "for age, name in zip(ages, names):\n", " print(name, \"lat\", age, \".\")" ] }, { "cell_type": "code", "execution_count": 58, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[18.84, 25.12, 31.400000000000002, 37.68]\n" ] } ], "source": [ "def circle_length(radius):\n", " return 2 * 3.14 * radius\n", "radii = [3, 4, 5, 6]\n", "\n", "results = []\n", "for r in radii:\n", " results.append(circle_length(r))\n", "\n", "results = list(map(circle_length, radii))\n", "print(results)" ] }, { "cell_type": "code", "execution_count": 60, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "12.56\n", "[18.84, 25.12, 31.400000000000002, 37.68]\n" ] } ], "source": [ "radii = [3, 4, 5, 6]\n", "\n", "f = lambda radius: 2 * 3.14 * radius\n", "print(f(2))\n", "results = map(f, radii)\n", "print(list(results))" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Funkcje lambda\n", "\n", " * składnia: `lambda nazwa_zmiennej: zwracana_wartość`" ] }, { "cell_type": "code", "execution_count": 61, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Co mam zrobić?\n", "print(\"ala ma kota.\")\n", "ala ma kota.\n" ] } ], "source": [ "code = input(\"Co mam zrobić?\\n\")\n", "eval(code)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Listy składane" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[2, 2, 2, 2, 3, 5]\n" ] } ], "source": [ "elems = [10, 50, 40, 30, 100, 19990]\n", "lens = []\n", "for elem in elems:\n", " lens.append(len(str(elem)))\n", "print(lens)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[2, 2, 2, 2, 3, 5]\n" ] } ], "source": [ "elems = [10, 50, 40, 30, 100, 19990]\n", "lens = [len(str(elem)) for elem in elems]\n", "print(lens)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[2, 3, 5]\n" ] } ], "source": [ "elems = [10, 50, 40, 30, 100, 19990]\n", "lens = [len(str(elem)) for elem in elems \n", " if str(elem)[0] == '1']\n", "print(lens)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[2, 0, 0, 0, 3, 5]\n" ] } ], "source": [ "elems = [10, 50, 40, 30, 100, 19990]\n", "lens = [len(str(elem)) \n", " if str(elem)[0] == '1' else 0\n", " for elem in elems]\n", "print(lens)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[10, 14, [16, 18.0]] 2\n" ] } ], "source": [ "def times(elem, n=2):\n", " if isinstance(elem, list):\n", " return [times(item, n) for item in elem]\n", " elif isinstance(elem, float) or isinstance(elem, int):\n", " return elem * n\n", " else:\n", " raise ValueError(\"błąd\")\n", "\n", "print(times([5, 7, [8, 9.0]]), 2)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Formatowanie napisów\n", "\n", " * procentowe formatowanie z Pythona 2\n", " * metoda format\n", " * f-stringi (Python 3.6)" ] }, { "cell_type": "code", "execution_count": 62, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Jan Kowalski, lat 34\n" ] } ], "source": [ "imie = \"Jan\"\n", "nazwisko = \"Kowalski\"\n", "wiek = 34\n", "\n", "full_name = imie + \" \" + nazwisko + \", lat \" + str(wiek)\n", "full_name = \"%s %s, lat %d\" % (imie, nazwisko, wiek)\n", "print(full_name)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Jan Kowalski, lat 34\n", "Jan Kowalski, lat 34\n" ] } ], "source": [ "imie = \"Jan\"\n", "nazwisko = \"Kowalski\"\n", "wiek = 34\n", "\n", "full_name = \"{0} {0}, lat {2}\".format(imie, nazwisko, wiek)\n", "print(full_name)\n", "full_name = f\"{imie} {nazwisko}, lat {wiek}\"\n", "print(full_name)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## OOP: Programowanie obiektowe" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [], "source": [ "class Sentence:\n", " pass\n", "sentence = Sentence()" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [], "source": [ "class Sentence:\n", " def __init__(self, text):\n", " self.text = text\n", "sentence = Sentence(\"This is a little test.\")" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "False\n", "text: This is a little test.\n" ] } ], "source": [ "sent_1 = Sentence(\"This is a little test.\")\n", "sent_2 = Sentence(\"This is a little test.\")\n", "print(sent_1 == sent_2)\n", "print(\"text: {}\".format(sent_1.text))" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Liczba słów: 4\n" ] } ], "source": [ "class Sentence:\n", " def __init__(self, text):\n", " self.text = text\n", " def word_number(self):\n", " return len(self.text.split(' '))\n", " \n", " def is_question(self):\n", " return self.text[-1] == \"?\"\n", " \n", "sent = Sentence(\"To jest test .\")\n", "print(\"Liczba słów: {}\".format(sent.word_number()))" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "6500\n" ] } ], "source": [ "class Employee:\n", " def __init__(self, name, salary):\n", " self.name = name\n", " self.salary = salary\n", " def raise_salary(self, amount):\n", " self.salary += amount\n", " \n", "employee = Employee(\"Franek\", 6000)\n", "employee.raise_salary(500)\n", "print(employee.salary)" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [], "source": [ "class Manager(Employee):\n", " def __init__(self, name, salary, team):\n", " super().__init__(name, salary)\n", " self.team = team\n", "\n", "man = Manager(\"Joanna\", 6000, \"super-team\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "celltoolbar": "Slideshow", "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.2" } }, "nbformat": 4, "nbformat_minor": 2 }