290 lines
7.8 KiB
Plaintext
290 lines
7.8 KiB
Plaintext
{
|
||
"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
|
||
}
|