{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Vizsgaminta 1." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1. feladat [6p]\n", "\n", "Készítsünk programot, amely bekér a felhasználótól két sztringet, majd kiírja a bennük található leghosszabb közös részsztringet! Példa futási eredmény:\n", "```\n", "1. sztring: András\n", "2. sztring: Bandi\n", "A leghosszabb közös rész: nd\n", "```" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "4\n", "alma\n" ] } ], "source": [ "a = \"Andrásalmaka\"\n", "b = \"Balmaandika\"\n", "max_len = 0\n", "maxtext = \"\"\n", "\n", "for ia in range(len(a)):\n", " for ib in range(len(b)):\n", " if a[ia] == b[ib]:\n", " counter = 0\n", " for iii in range(min(len(a) - ia, len(b) - ib)):\n", " if b[ib + iii] != a[ia + iii]:\n", " break\n", " counter += 1\n", " if max_len < counter:\n", " max_len = counter\n", " maxtext = a[ia:ia + max_len]\n", "\n", "print(max_len)\n", "print(maxtext)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2. feladat [6p]\n", "\n", "A `birthdays` lista kitalált személyek nevét és születési dátumát tartalmazza. Készítsünk programot, amely megkeresi, hogy kik állnak életkorban egymáshoz a legközelebb, és hány nap köztük a különbség! A program ne csak a megadott `birthdays` listára működjön, hanem tetszőleges, ugyanilyen formátumú bemenetre is! Feltehetjük, hogy minden név különböző, és legalább két név meg van adva." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "birthdays = [\n", " ('Kovács Andor', '1999-10-29'),\n", " ('Kiss Martina', '2000-02-13'),\n", " ('Horváth Barna', '1999-12-05'),\n", " ('Győri Eszter', '2000-10-29'),\n", " ('Nagy Tivadar', '1999-08-16'),\n", " ('Tóth Tamara', '2000-01-30'),\n", " ('Szakács Sándor', '1999-09-02')\n", "]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Elvárt futási eredmény:\n", "```\n", "Életkorban legközelebb állók: Kiss Martina, Tóth Tamara\n", "14 nap köztük a különbség\n", "```" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Életkorban legközelebb állók: Kiss Martina, Tóth Tamara 14 nap köztük a különbség\n" ] } ], "source": [ "from datetime import date\n", "\n", "def todate(s):\n", " year = int(s[0:4])\n", " month = int(s[5:7])\n", " day = int(s[8:10])\n", " return date(year, month, day)\n", "\n", "min = abs(todate(birthdays[0][1]) - todate(birthdays[1][1]))\n", "for i in range(len(birthdays)):\n", " a = todate(birthdays[i][1])\n", " for ii in range(i+1, len(birthdays)):\n", " b = todate(birthdays[ii][1])\n", " if min > abs(a-b):\n", " min = abs(a-b)\n", " dat1 = birthdays[i]\n", " dat2 = birthdays[ii]\n", "\n", "print(f\"Életkorban legközelebb állók: {dat1[0]}, {dat2[0]} {min.days} nap köztük a különbség\")\n", "\n", " \n", "\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3. feladat [8p]\n", "\n", "Az [investments.txt](investments.txt) szövegfájl amerikai cégekbe történő befektetésekről tartalmaz adatokat (a TechCrunch hírportál alapján). Készítsünk programot, amely kiszámítja és kiírja az alábbi statisztikákat:\n", "- Hány befektetés történt összesen?\n", "- Melyik cég(ek)be fektették be a legtöbbször és hányszor?\n", "- Cégkategóriánként hány dollárt fektettek be összesen?" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 LifeLock\n", "1 LifeLock\n", "2 LifeLock\n", "3 MyCityFaces\n", "4 Flypaper\n", "Name: company, dtype: object\n", "The head: company numEmps category city state fundedDate raisedAmt \\\n", "0 LifeLock NaN web Tempe AZ 1-May-07 6850000 \n", "1 LifeLock NaN web Tempe AZ 1-Oct-06 6000000 \n", "2 LifeLock NaN web Tempe AZ 1-Jan-08 25000000 \n", "3 MyCityFaces 7.0 web Scottsdale AZ 1-Jan-08 50000 \n", "4 Flypaper NaN web Phoenix AZ 1-Feb-08 3000000 \n", "\n", " raisedCurrency round \n", "0 USD b \n", "1 USD a \n", "2 USD c \n", "3 USD seed \n", "4 USD a \n", "1434\n" ] } ], "source": [ "import pandas as pd\n", "\n", "frame = pd.read_csv(\"investments.txt\", sep=\"|\")\n", "\n", "print(frame[\"company\"].iloc[:5])\n", "\n", "print(\"The head:\", frame.head())\n", "\n", "framecount = frame[\"company\"].count()\n", "print(framecount)\n", "\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "company\n", "Facebook 7\n", "Juice Wireless 5\n", "Viv’simo 5\n", "Glam Media 5\n", "Brightcove 5\n", " ..\n", "AdReady 1\n", "AdMob 1\n", "Acquia 1\n", "x+1 1\n", "vbs tv 1\n", "Name: category, Length: 891, dtype: int64\n" ] } ], "source": [ "grouped = frame.groupby(\"company\").count()\n", "\n", "grouped = frame[\"company\"].value_counts()\n", "\n", "grouped = frame.groupby(\"company\")[\"category\"].count().sort_values(ascending=False)\n", "\n", "\n", "print(grouped)" ] }, { "cell_type": "code", "execution_count": 97, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "category\n", "web 11753474750\n", "software 1017942000\n", "hardware 824500000\n", "mobile 323020000\n", "cleantech 258900000\n", "other 119850000\n", "biotech 77250000\n", "consulting 32135000\n", "Name: raisedAmt, dtype: int64\n" ] } ], "source": [ "categ = frame.groupby(\"category\")[\"raisedAmt\"].sum().sort_values(ascending=False)\n", "\n", "print(categ)" ] }, { "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.13.0" } }, "nbformat": 4, "nbformat_minor": 1 }