Commit 8fb3a731 authored by geobumac's avatar geobumac

ejercicio 3

parent 8eb93479
......@@ -249,7 +249,7 @@
},
{
"cell_type": "code",
"execution_count": 16,
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
......@@ -345,7 +345,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
......@@ -357,19 +357,30 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 5,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Max a muerto\n",
"Canis Lopus\n",
"Max\n",
"[]\n"
]
}
],
"source": [
"Max = Malinois(\"Max\")\n",
"print(max.get_kind())\n",
"print(max.name)\n",
"print(max.tricks)"
"print(Max.get_kind())\n",
"print(Max.name)\n",
"print(Max.tricks)"
]
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
......@@ -388,9 +399,21 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 7,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Canis Lopus\n",
"Keeper\n",
"['Fetch']\n",
"Keeper es un Canis Lopus de raza Malinois\n",
"Keeper a muerto\n"
]
}
],
"source": [
"keeper = Malinois(\"Keeper\")\n",
"print(keeper.get_kind())\n",
......@@ -402,7 +425,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
......@@ -420,10 +443,10 @@
" __breed = \"Malinois\"\n",
" origin = \"Bélgica\"\n",
" def __init__(self, name):\n",
" #Dog.__init__(self, name) # No usar en herencia multiple\n",
" #super(__Dog__,self).__init__(name)\n",
" #Police.__init__(self,\"K9\")\n",
" Police.__init__(self,\"K9\")\n",
" #super(__Police__,self).__init__(\"K9\")\n",
" Dog.__init__(self, name) # No usar en herencia multiple\n",
" #super(__Dog__,self).__init__(name)\n",
" self.tricks = [\"fetch\"] # Variable de instancia\n",
" def fetch(self):\n",
" print(\"fetch\")\n",
......@@ -436,9 +459,20 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 23,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'_Dog__age': 0, 'name': 'Frida', 'section': 'K9', 'tricks': ['fetch']}\n",
"K9\n",
"Frida es un Canis Lopus Policia de raza Malinois con uniforme Azul\n",
"Frida a muerto\n"
]
}
],
"source": [
"frida = Malinois(\"Frida\")\n",
"print(frida.__dict__)\n",
......@@ -462,7 +496,7 @@
"\n",
"\n",
"## 3.5 Polimorfismo\n",
"Polimorfismo se refiere a la caracteristica de que la misma clase de objeto pueda adquirir varias formas. A diferencia de otros lenguajes como C++ en donde para lograr polimorfismo se requiren de considereciones especiales en la herencia y la sintaxis. En Python el polimorfismo es consecuencia de el tipado dinamico sin tener que tener considerecciones especiales."
"Polimorfismo se refiere a la caracteristica de que la misma clase de objeto pueda adquirir varias formas. A diferencia de otros lenguajes como C++ en donde para lograr polimorfismo se requiren de considereciones especiales en la herencia y la sintaxis, en Python el polimorfismo es consecuencia de el tipado dinamico sin tener que tener considerecciones especiales."
]
},
{
......@@ -517,27 +551,74 @@
"\n",
"### 3.6.1 La Clase Nota\n",
"La clase Nota debe abstraer el concepto de una nota periodística; una noticia que aparece en alguna fuente informativa. Algunas características principales de las Notas es que debe pertenecer a alguna categoría como \"deportes\" o \"cultura\", deben tener un título, un autor, una fecha de publicación, entre otros atributos.\n",
"### 3.6.2 La Clase Fuente\n",
"### 3.6.2 La Clase Fuente informativa\n",
"La clase Fuente debe abstraer el concepto de una fuente informativa como por ejemplo \"La Jornada\" o \"noticias MVS\". Una característica principal de las Fuentes es que generan Notas (ver ejercicio 1). \n",
"### 3.6.3 La Clase Editor\n",
"La clase Editor debe abstraer el concepto de una persona (o robot) que se encarga de recopilar las Notas de diversas Fuentes para un determinado tema (sección). Por ejemplo un Editor de la sección \"cultura\" debe ser capaz de identificar las notas que corresponden a este tema. También debe ser capaz de consultar las Fuentes y autores que proporcionan las mejores Notas para la sección que le corresponde, es decir, es experto en uno de los temas. \n",
"### 3.6.4 La Clase Editorial\n",
"### 3.6.4 La Clase Consejo Editorial\n",
"La clase Editorial debe abstraer el concepto del consejo editorial de un periódico. Es una clase muy importante para el proyecto ya que la Editorial decide cuáles notas deben aparecer en el día y determina el grado de relevancia de las notas del día para cada sección.Para ello, debe interactuar con los Reporteros para decidir las notas que deben incluirse, considerando los temas de interés y las valoraciones de los Reporteros."
]
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 40,
"metadata": {},
"outputs": [],
"source": []
"source": [
"from datetime import datetime\n",
"class Note:\n",
" def __init__(self, text, section, title, author, date=datetime.today(), source=None):\n",
" self.text = text\n",
" self.section = section\n",
" self.title = title\n",
" self.author = author\n",
" self.date = date\n",
" self.source = source\n",
" def __str__(self):\n",
" out = \"\"\n",
" out += self.title + \"\\t\" + self.date.strftime(\"%d - %B - %Y\") + \"\\n\"\n",
" out += \"Author: \" + self.author + \"\\n\"\n",
" out += \"Sección: \" + self.section + \"\\n\"\n",
" if self.source is not None:\n",
" out += self.source.name + \"\\n\"\n",
" out += self.text + \"\\n\"\n",
" return out\n",
" \n",
"class Publisher:\n",
" def __init__(self, name, url):\n",
" self.name = name\n",
" self.url = url\n",
" def __str__(self):\n",
" return str(self.name)\n",
" \n",
"class Editor:\n",
" def __init__(self, topic)"
]
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 41,
"metadata": {},
"outputs": [],
"source": []
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Titulo\t05 - February - 2019\n",
"Author: Gaspar\n",
"Sección: Política\n",
"La jornada\n",
"Contenido de la nota\n",
"\n"
]
}
],
"source": [
"miNota = Note(\"Contenido de la nota\", \"Política\", \"Titulo\", \"Gaspar\")\n",
"editorial = Publisher(\"La jornada\", \"http:///lajornada.com.mx\")\n",
"miNota.source = editorial\n",
"print(miNota)"
]
},
{
"cell_type": "code",
......@@ -563,7 +644,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.3"
"version": "3.6.7"
}
},
"nbformat": 4,
......
......@@ -1790,7 +1790,7 @@
},
{
"cell_type": "code",
"execution_count": 70,
"execution_count": 1,
"metadata": {},
"outputs": [
{
......@@ -1808,107 +1808,13 @@
" ['par', 'impar', 'par', 'impar', 'par', 'impar', 'par', 'impar', 'par', 'impar']\n",
"\n",
" \n",
"Trying:\n",
" print([i for i in example_generator(4)])\n",
"Expecting:\n",
" [0, 1, 2, 3]\n",
"ok\n",
"Trying:\n",
" print([i for i in fibonacci(6)])\n",
"Expecting:\n",
" [0, 1, 1, 2, 3, 5]\n",
"ok\n",
"Trying:\n",
" intersectab()\n",
"Expecting:\n",
" [1, 2, 3, 5, 8, 13]\n",
"ok\n",
"Trying:\n",
" multiplicaletra()\n",
"Expecting:\n",
" 1\n",
" 22\n",
" 333\n",
" 4444\n",
" 55555\n",
" 666666\n",
" 7777777\n",
" 88888888\n",
" 999999999\n",
"ok\n",
"Trying:\n",
" panagrama(\"zbcdefghijkl onpqrstuvwxya\")\n",
"Expecting:\n",
" False\n",
"ok\n",
"Trying:\n",
" panagrama(\"abcdefghijkl onpqrstuvwxyz\")\n",
"Expecting:\n",
" False\n",
"ok\n",
"Trying:\n",
" panagrama(\"abcdefghijklmnopqrstuvwxyz\")\n",
"Expecting:\n",
" True\n",
"ok\n",
"Finding tests in NoName\n",
"Trying:\n",
" parorimpar()\n",
"Expecting:\n",
" ['par', 'impar', 'par', 'impar', 'par', 'impar', 'par', 'impar', 'par', 'impar']\n",
"ok\n",
"Trying:\n",
" perfect(28)\n",
"Expecting:\n",
" True\n",
"ok\n",
"Trying:\n",
" perfect(288)\n",
"Expecting:\n",
" False\n",
"ok\n",
"Trying:\n",
" printmayotto10()\n",
"Expecting:\n",
" [13, 21, 34, 55, 89]\n",
"ok\n",
"Trying:\n",
" rang1to20()\n",
"Expecting:\n",
" [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20]\n",
"ok\n",
"Trying:\n",
" sumList([8, 2, 3, 0, 7])\n",
"Expecting:\n",
" 20\n",
"ok\n",
"2 items had no tests:\n",
" __main__\n",
" __main__.fib\n",
"10 items passed all tests:\n",
" 1 tests in __main__.example_generator\n",
" 1 tests in __main__.fibonacci\n",
" 1 tests in __main__.intersectab\n",
" 1 tests in __main__.multiplicaletra\n",
" 3 tests in __main__.panagrama\n",
" 1 tests in __main__.parorimpar\n",
" 2 tests in __main__.perfect\n",
" 1 tests in __main__.printmayotto10\n",
" 1 tests in __main__.rang1to20\n",
" 1 tests in __main__.sumList\n",
"13 tests in 12 items.\n",
"13 passed and 0 failed.\n",
"Test passed.\n"
"ok\n"
]
},
{
"data": {
"text/plain": [
"TestResults(failed=0, attempted=13)"
]
},
"execution_count": 70,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
......@@ -1930,7 +1836,8 @@
"print(parorimpar.__doc__)\n",
"import doctest\n",
"\n",
"doctest.testmod(verbose=True)"
"#doctest.testmod(verbose=True)\n",
"doctest.run_docstring_examples(parorimpar, globals(), verbose=True)"
]
},
{
......
......@@ -249,7 +249,7 @@
},
{
"cell_type": "code",
"execution_count": 16,
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
......@@ -345,7 +345,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
......@@ -357,19 +357,30 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 5,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Max a muerto\n",
"Canis Lopus\n",
"Max\n",
"[]\n"
]
}
],
"source": [
"Max = Malinois(\"Max\")\n",
"print(max.get_kind())\n",
"print(max.name)\n",
"print(max.tricks)"
"print(Max.get_kind())\n",
"print(Max.name)\n",
"print(Max.tricks)"
]
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
......@@ -388,9 +399,21 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 7,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Canis Lopus\n",
"Keeper\n",
"['Fetch']\n",
"Keeper es un Canis Lopus de raza Malinois\n",
"Keeper a muerto\n"
]
}
],
"source": [
"keeper = Malinois(\"Keeper\")\n",
"print(keeper.get_kind())\n",
......@@ -528,27 +551,74 @@
"\n",
"### 3.6.1 La Clase Nota\n",
"La clase Nota debe abstraer el concepto de una nota periodística; una noticia que aparece en alguna fuente informativa. Algunas características principales de las Notas es que debe pertenecer a alguna categoría como \"deportes\" o \"cultura\", deben tener un título, un autor, una fecha de publicación, entre otros atributos.\n",
"### 3.6.2 La Clase Fuente\n",
"### 3.6.2 La Clase Fuente informativa\n",
"La clase Fuente debe abstraer el concepto de una fuente informativa como por ejemplo \"La Jornada\" o \"noticias MVS\". Una característica principal de las Fuentes es que generan Notas (ver ejercicio 1). \n",
"### 3.6.3 La Clase Editor\n",
"La clase Editor debe abstraer el concepto de una persona (o robot) que se encarga de recopilar las Notas de diversas Fuentes para un determinado tema (sección). Por ejemplo un Editor de la sección \"cultura\" debe ser capaz de identificar las notas que corresponden a este tema. También debe ser capaz de consultar las Fuentes y autores que proporcionan las mejores Notas para la sección que le corresponde, es decir, es experto en uno de los temas. \n",
"### 3.6.4 La Clase Editorial\n",
"### 3.6.4 La Clase Consejo Editorial\n",
"La clase Editorial debe abstraer el concepto del consejo editorial de un periódico. Es una clase muy importante para el proyecto ya que la Editorial decide cuáles notas deben aparecer en el día y determina el grado de relevancia de las notas del día para cada sección.Para ello, debe interactuar con los Reporteros para decidir las notas que deben incluirse, considerando los temas de interés y las valoraciones de los Reporteros."
]
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 40,
"metadata": {},
"outputs": [],
"source": []
"source": [
"from datetime import datetime\n",
"class Note:\n",
" def __init__(self, text, section, title, author, date=datetime.today(), source=None):\n",
" self.text = text\n",
" self.section = section\n",
" self.title = title\n",
" self.author = author\n",
" self.date = date\n",
" self.source = source\n",
" def __str__(self):\n",
" out = \"\"\n",
" out += self.title + \"\\t\" + self.date.strftime(\"%d - %B - %Y\") + \"\\n\"\n",
" out += \"Author: \" + self.author + \"\\n\"\n",
" out += \"Sección: \" + self.section + \"\\n\"\n",
" if self.source is not None:\n",
" out += self.source.name + \"\\n\"\n",
" out += self.text + \"\\n\"\n",
" return out\n",
" \n",
"class Publisher:\n",
" def __init__(self, name, url):\n",
" self.name = name\n",
" self.url = url\n",
" def __str__(self):\n",
" return str(self.name)\n",
" \n",
"class Editor:\n",
" def __init__(self, topic)"
]
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 41,
"metadata": {},
"outputs": [],
"source": []
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Titulo\t05 - February - 2019\n",
"Author: Gaspar\n",
"Sección: Política\n",
"La jornada\n",
"Contenido de la nota\n",
"\n"
]
}
],
"source": [
"miNota = Note(\"Contenido de la nota\", \"Política\", \"Titulo\", \"Gaspar\")\n",
"editorial = Publisher(\"La jornada\", \"http:///lajornada.com.mx\")\n",
"miNota.source = editorial\n",
"print(miNota)"
]
},
{
"cell_type": "code",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment