Tarea 2, falta la parte de la tarea 1

parent f3897807
......@@ -308,11 +308,29 @@
},
{
"cell_type": "code",
"execution_count": 67,
"execution_count": 74,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[True, False, True, False, True, False, True, False, True, False]\n"
]
}
],
"source": [
"a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]"
"a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\n",
"'''Operador Ternanio\n",
"par=[True if num%2==0 else False for num in a]\n",
"par'''\n",
"\n",
"def parLogico(l1):\n",
" par=[True if num%2==0 else False for num in l1]\n",
" return par\n",
"\n",
"pars=parLogico(a)\n",
"print(pars)\n"
]
},
{
......@@ -325,11 +343,29 @@
},
{
"cell_type": "code",
"execution_count": 69,
"execution_count": 70,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[(0, 'apple'), (1, 'banana'), (2, 'grapes'), (3, 'pear')]\n"
]
}
],
"source": [
"my_list = ['apple', 'banana', 'grapes', 'pear']\n"
"my_list = ['apple', 'banana', 'grapes', 'pear']\n",
" \n",
"'''indice=[(my_list.index(i),i) for i in my_list]\n",
"indice'''\n",
"\n",
"def listaTuplasComprension(l1):\n",
" indice=[(l1.index(i),i) for i in l1]\n",
" return indice\n",
"\n",
"ltupla=listaTuplasComprension(my_list)\n",
"print(ltupla)"
]
},
{
......@@ -342,12 +378,31 @@
},
{
"cell_type": "code",
"execution_count": 72,
"execution_count": 64,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[(0, 'a'), (0, 'b'), (0, 'c'), (0, 'd'), (0, 'e'), (0, 'f'), (1, 'a'), (1, 'b'), (1, 'c'), (1, 'd'), (1, 'e'), (1, 'f'), (2, 'a'), (2, 'b'), (2, 'c'), (2, 'd'), (2, 'e'), (2, 'f'), (3, 'a'), (3, 'b'), (3, 'c'), (3, 'd'), (3, 'e'), (3, 'f'), (4, 'a'), (4, 'b'), (4, 'c'), (4, 'd'), (4, 'e'), (4, 'f'), (5, 'a'), (5, 'b'), (5, 'c'), (5, 'd'), (5, 'e'), (5, 'f'), (6, 'a'), (6, 'b'), (6, 'c'), (6, 'd'), (6, 'e'), (6, 'f')]\n"
]
}
],
"source": [
"a = [0,1,2,3,4,5,6]\n",
"b = [\"a\",\"b\",\"c\",\"d\",\"e\",\"f\"]"
"b = [\"a\",\"b\",\"c\",\"d\",\"e\",\"f\"]\n",
"\n",
"'''\n",
"posibles=[(num,letr) for num in a for letr in b]\n",
"posibles\n",
"'''\n",
"def posibildad(l1,l2):\n",
" posibles=[(num,letr) for num in l1 for letr in l2]\n",
" return posibles\n",
"\n",
"l3=posibildad(a,b)\n",
"print(l3)"
]
},
{
......@@ -360,11 +415,24 @@
},
{
"cell_type": "code",
"execution_count": 74,
"execution_count": 64,
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"[True, True, False, True, False, False, True, True, True, True]"
]
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a=[5, 7, 22, 97, 54, 62, 77, 23, 73, 61]"
"a=[5, 7, 22, 97, 54, 62, 77, 23, 73, 61]\n",
"impar=list(map(lambda x:x%2==1,a))\n",
"impar"
]
},
{
......@@ -377,11 +445,51 @@
},
{
"cell_type": "code",
"execution_count": 76,
"execution_count": 54,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"193\n",
"193\n",
"\n",
"Como funciona la funcion reduce:\n"
]
},
{
"data": {
"image/png": "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9RvHeAfijRs3MnHiRLp27cq5554bVUbb7eijBb+UiBWccDjM559/zptvvkm/fv1o0aJFsY2hdAM/dGLrd+rUqezZs4f+/fsTCAS02MchsfZYu3Yt48ePp1+/fpxxxhk6Zn8c0IJfisQKuvvYsWNH+vbty9VXX60b+RHg1u8777zD3Llzeemll3R9xjmufQoKCnj00UcZNGgQdevW1QP0cUJvnlaKeBuvu9DHMAw++OADvv32W0aNGsX69euLbQSlx9yD491n5euvv46IvV5QFX/E3o1qz549DBs2jMsvv5x69eppsT+OaA//KONt2N999x2vvPIK5557LjfddFOx45rieD34GTNmsHHjRu6//37t2cc5brs2TZPbbruNAQMGcO655+r2fpzRgn8UKSnEEwqF+M9//kNWVhajRo0iEAho8doP3vr797//zebNm5kwYcJ+y2iOP96J9XA4zL333ssdd9zBOeecoyfW4wAd0jmKxE7QGoZBcnIygwcPplOnTlx//fUsXbq02H7fegyOFvIXXniBChUqMGHCBKSz2tlFC0d8opRi1KhRdOjQIUrsQdvseKI9/GNIrIeTn5/PmDFjqFSpEn369CEjI0N7QQ7u73/hhRcoKChg4MCBgBaLeMbbZh988EGaNWtGjx49dJuOI7SHfwzxNnqlFKmpqQwbNowLLriAnj17snz58oTuGLGTfUOGDCEQCDBo0CAgejsFTfzgDUkKIejVqxdXXHEFPXr0iCqTiG063tAe/nEi1uuRUnLddddx++23c+mll5KWlpZQncRbHwAvvvgiBQUFDBo0SHuIcY5XQqZMmUKtWrW49tprtb3iEC34cYDbMYQQvPTSS+zYsYOLLrqINm3aJJTYub/x2Wefxefz0b9//4T6/WURr3f/xBNPUK1aNe68886oeSltt/hBC/5xpiRB2759O+PGjePMM8+ke/fuCZHF4/7+YcOGUa9ePe64446E+N1llVghv/fee2nXrh1XX311VDltu/hCC34c4o1hV6lShT59+lCjRo0oASwPnpP3N0gpeeaZZ8jNzeWJJ57Qnn0ZwLvyefv27dx1113aXnGOFvw4I7bDfPXVV8yaNYuWLVvSpUuXqDLloXN5wzgVK1akV69eSCn1Cto4JbbtTZs2jQ0bNvDII48QDAbLTbssr2jBj1O83nx+fj4TJkxgw4YN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\n",
"text/plain": [
"<PIL.PngImagePlugin.PngImageFile image mode=RGBA size=380x206 at 0x7F446313D278>"
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a = [5, 8, 10, 20, 50, 100] "
"from functools import reduce\n",
"from PIL import Image \n",
"ima = \"reduce.png\"\n",
"\n",
"a = [5, 8, 10, 20, 50, 100]\n",
"\n",
"suma=reduce((lambda x,y: x+y),a)\n",
"print(suma)\n",
"\n",
"def sumaReduceLambda(l1):\n",
" suma=reduce((lambda x,y: x+y),l1)\n",
" return suma\n",
"\n",
"sumred=sumaReduceLambda(a)\n",
"print(sumred)\n",
"\n",
"print(\"\\nComo funciona la funcion reduce:\")\n",
"Image.open(ima)\n",
"\n"
]
},
{
......@@ -394,13 +502,28 @@
},
{
"cell_type": "code",
"execution_count": 78,
"execution_count": 46,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[35, 45, 55, 65]\n"
]
}
],
"source": [
"a = [5, 10, 15, 20]\n",
" \n",
"b = [30, 35, 40, 45]"
"b = [30, 35, 40, 45]\n",
"\n",
"def mapLambdaSuma(l1,l2):\n",
" suma=list(map(lambda x,y: x+y, l1,l2))\n",
" return suma\n",
" \n",
"sumi=mapLambdaSuma(a,b)\n",
"print(sumi)\n"
]
},
{
......@@ -413,6 +536,55 @@
"[Wikipedia](https://es.wikipedia.org/wiki/Terna_pitag%C3%B3rica): Una terna pitagórica es un conjunto ordenado de tres números enteros positivos a, b, c, y son solución de la ecuación diofantina cuadrática $a^{2}+b^{2}=c^{2}$.\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[(4, 3, 5)]\n"
]
},
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def tripletaPita(valor):\n",
" for i in range(4, valor + 1):\n",
" if i % 2:\n",
" #Impar\n",
" valores = i**2 // 2\n",
" yield i, valores, valores + 1\n",
" else:\n",
" #par\n",
" valores = (i // 2)**2\n",
" yield i, valores - 1, valores + 1\n",
"\n",
"\n",
"print (list(tripletaPita(4)))\n",
"\n",
"#a,b,c\n",
"#4,-7,9\n",
"(4**2)//2\n",
"\n",
"#a,b,c\n",
"#4,3,5\n",
"(5//2)**2\n",
"\n",
"bool(1%2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
......@@ -423,11 +595,38 @@
},
{
"cell_type": "code",
"execution_count": 80,
"execution_count": 115,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0\n",
"1\n",
"2\n",
"3\n",
"4\n",
"5\n"
]
}
],
"source": [
"a = [\"a\", \"b\", \"c\"]"
"def recursive_generator(some_list):\n",
" #some_list.reverse()\n",
" if len(some_list)>1:\n",
" for i in recursive_generator(some_list[1:]):\n",
" yield i\n",
" else:\n",
" yield some_list[0]\n",
" else:\n",
" yield some_list[0]\n",
"\n",
"some_list = [6,3,9,1]\n",
"lista=[0,1,2,3,4,5]\n",
"lista.reverse()\n",
"for k in recursive_generator(lista):\n",
" print(k)"
]
},
{
......@@ -447,7 +646,7 @@
},
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 13,
"metadata": {},
"outputs": [
{
......@@ -463,18 +662,9 @@
"helloWorld.hello()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2.6 Documentacion (docstring)\n",
"\n",
"Python **Docstring** es el texto de documentación que puede aprecer en la definición de una clase, módulo, función o método, y se escribe como la primera declaración. Se puede acceder a las cadenas de documenacion desde el atributo doc para cualquiera de los objetos de Python y también con la función incorporada **help()**."
]
},
{
"cell_type": "code",
"execution_count": 89,
"execution_count": 5,
"metadata": {},
"outputs": [
{
......@@ -545,6 +735,15 @@
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2.6 Documentacion (docstring)\n",
"\n",
"Python **Docstring** es el texto de documentación que puede aprecer en la definición de una clase, módulo, función o método, y se escribe como la primera declaración. Se puede acceder a las cadenas de documenacion desde el atributo doc para cualquiera de los objetos de Python y también con la función incorporada **help()**."
]
},
{
"cell_type": "markdown",
"metadata": {},
......@@ -555,9 +754,17 @@
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 66,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"no Python documentation found for 'helloWorld.py'\n"
]
}
],
"source": [
"%%bash\n",
"cd miModulo\n",
......@@ -566,7 +773,7 @@
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": 26,
"metadata": {},
"outputs": [
{
......@@ -604,7 +811,7 @@
"<IPython.core.display.HTML object>"
]
},
"execution_count": 6,
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
......@@ -625,7 +832,7 @@
},
{
"cell_type": "code",
"execution_count": 10,
"execution_count": 7,
"metadata": {},
"outputs": [
{
......@@ -642,11 +849,12 @@
"Expecting:\n",
" 'aaa'\n",
"ok\n",
"1 items had no tests:\n",
"2 items had no tests:\n",
" __main__\n",
" __main__.tripletaPita\n",
"1 items passed all tests:\n",
" 2 tests in __main__.multiply\n",
"2 tests in 2 items.\n",
"2 tests in 3 items.\n",
"2 passed and 0 failed.\n",
"Test passed.\n"
]
......@@ -657,7 +865,7 @@
"TestResults(failed=0, attempted=2)"
]
},
"execution_count": 10,
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
......@@ -683,6 +891,77 @@
"## 2.8 Ejercicios\n",
"Escribe la documentacion y los casos de prueba para todos los ejercicios de la semana 1 y 2."
]
},
{
"cell_type": "code",
"execution_count": 80,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"wrote tarea2.html\n"
]
}
],
"source": [
"%%bash\n",
"cd miModulo\n",
"pydoc -w tarea2"
]
},
{
"cell_type": "code",
"execution_count": 81,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n",
"<html><head><title>Python: module tarea2</title>\n",
"<meta charset=\"utf-8\">\n",
"</head><body bgcolor=\"#f0f0f8\">\n",
"\n",
"<table width=\"100%\" cellspacing=0 cellpadding=2 border=0 summary=\"heading\">\n",
"<tr bgcolor=\"#7799ee\">\n",
"<td valign=bottom>&nbsp;<br>\n",
"<font color=\"#ffffff\" face=\"helvetica, arial\">&nbsp;<br><big><big><strong>tarea2</strong></big></big></font></td\n",
"><td align=right valign=bottom\n",
"><font color=\"#ffffff\" face=\"helvetica, arial\"><a href=\".\">index</a><br><a href=\"file:/home/carlosgarcia8/repos/tap1012/miModulo/tarea2.py\">/home/carlosgarcia8/repos/tap1012/miModulo/tarea2.py</a></font></td></tr></table>\n",
" <p><tt>Documentación&nbsp;para&nbsp;la&nbsp;segunda&nbsp;tarea&nbsp;de&nbsp;la&nbsp;materia&nbsp;de&nbsp;Tópicos&nbsp;Avanzados&nbsp;de&nbsp;Programación.<br>\n",
"Maestría&nbsp;GeoInteligencia&nbsp;Computacional&nbsp;a&nbsp;27&nbsp;de&nbsp;Enero&nbsp;del&nbsp;2019.</tt></p>\n",
"<p>\n",
"<table width=\"100%\" cellspacing=0 cellpadding=2 border=0 summary=\"section\">\n",
"<tr bgcolor=\"#eeaa77\">\n",
"<td colspan=3 valign=bottom>&nbsp;<br>\n",
"<font color=\"#ffffff\" face=\"helvetica, arial\"><big><strong>Functions</strong></big></font></td></tr>\n",
" \n",
"<tr><td bgcolor=\"#eeaa77\"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>\n",
"<td width=\"100%\"><dl><dt><a name=\"-listaTuplasComprension\"><strong>listaTuplasComprension</strong></a>(l1)</dt><dd><tt>Función&nbsp;que&nbsp;devuelve&nbsp;el&nbsp;indice&nbsp;y&nbsp;el&nbsp;valor&nbsp;en&nbsp;una&nbsp;tupla&nbsp;con&nbsp;la&nbsp;estructura&nbsp;de&nbsp;una&nbsp;lista.</tt></dd></dl>\n",
" <dl><dt><a name=\"-mapLambdaSuma\"><strong>mapLambdaSuma</strong></a>(l1, l2)</dt><dd><tt>Función&nbsp;para&nbsp;la&nbsp;suma,&nbsp;elemento&nbsp;a&nbsp;elemento&nbsp;de&nbsp;dos&nbsp;listas&nbsp;(vectores).</tt></dd></dl>\n",
" <dl><dt><a name=\"-parLogico\"><strong>parLogico</strong></a>(l1)</dt><dd><tt>Función&nbsp;que&nbsp;devuelve&nbsp;True&nbsp;o&nbsp;False&nbsp;para&nbsp;cada&nbsp;elemento&nbsp;de&nbsp;una&nbsp;lista,&nbsp;si&nbsp;el&nbsp;valor&nbsp;del&nbsp;elemento&nbsp;es&nbsp;par.</tt></dd></dl>\n",
" <dl><dt><a name=\"-posibildad\"><strong>posibildad</strong></a>(l1, l2)</dt><dd><tt>Función&nbsp;que&nbsp;devuelve&nbsp;todas&nbsp;las&nbsp;combinaciones&nbsp;posibilidades&nbsp;entre&nbsp;dos&nbsp;listas.</tt></dd></dl>\n",
" <dl><dt><a name=\"-sumaReduceLambda\"><strong>sumaReduceLambda</strong></a>(l1)</dt><dd><tt>Función&nbsp;que&nbsp;suma,&nbsp;elemento&nbsp;a&nbsp;elemento,&nbsp;una&nbsp;sola&nbsp;lista&nbsp;con&nbsp;ayuda&nbsp;de&nbsp;la&nbsp;función&nbsp;reduce&nbsp;(importada&nbsp;de&nbsp;functools).</tt></dd></dl>\n",
" <dl><dt><a name=\"-tripletaPita\"><strong>tripletaPita</strong></a>(valor)</dt><dd><tt>Función&nbsp;que&nbsp;genera&nbsp;la&nbsp;tripleta&nbsp;de&nbsp;Pitágoras&nbsp;lo&nbsp;cual&nbsp;es&nbsp;la&nbsp;suma&nbsp;de&nbsp;dos&nbsp;números&nbsp;elevados&nbsp;al&nbsp;cuadrado&nbsp;que&nbsp;resulten&nbsp;en&nbsp;un&nbsp;tercero&nbsp;elevado&nbsp;al&nbsp;cuadrado</tt></dd></dl>\n",
"</td></tr></table>\n",
"</body></html>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"execution_count": 81,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from IPython.display import HTML\n",
"HTML(filename=\"miModulo/tarea2.html\")"
]
}
],
"metadata": {
......
......@@ -9,7 +9,7 @@
<td valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong>helloWorld</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/mchc/git/tap1012/miModulo/helloWorld.py">/home/mchc/git/tap1012/miModulo/helloWorld.py</a></font></td></tr></table>
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/carlosgarcia8/repos/tap1012/miModulo/helloWorld.py">/home/carlosgarcia8/repos/tap1012/miModulo/helloWorld.py</a></font></td></tr></table>
<p><tt>This&nbsp;example&nbsp;module&nbsp;shows&nbsp;various&nbsp;types&nbsp;of&nbsp;documentation&nbsp;available&nbsp;for&nbsp;use<br>
with&nbsp;pydoc.&nbsp;&nbsp;To&nbsp;generate&nbsp;HTML&nbsp;documentation&nbsp;for&nbsp;this&nbsp;module&nbsp;issue&nbsp;the<br>
command:<br>
......
No preview for this file type
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Python: module tarea2</title>
<meta charset="utf-8">
</head><body bgcolor="#f0f0f8">
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
<tr bgcolor="#7799ee">
<td valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong>tarea2</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/carlosgarcia8/repos/tap1012/miModulo/tarea2.py">/home/carlosgarcia8/repos/tap1012/miModulo/tarea2.py</a></font></td></tr></table>
<p><tt>Documentación&nbsp;para&nbsp;la&nbsp;segunda&nbsp;tarea&nbsp;de&nbsp;la&nbsp;materia&nbsp;de&nbsp;Tópicos&nbsp;Avanzados&nbsp;de&nbsp;Programación.<br>
Maestría&nbsp;GeoInteligencia&nbsp;Computacional&nbsp;a&nbsp;27&nbsp;de&nbsp;Enero&nbsp;del&nbsp;2019.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#eeaa77">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl><dt><a name="-listaTuplasComprension"><strong>listaTuplasComprension</strong></a>(l1)</dt><dd><tt>Función&nbsp;que&nbsp;devuelve&nbsp;el&nbsp;indice&nbsp;y&nbsp;el&nbsp;valor&nbsp;en&nbsp;una&nbsp;tupla&nbsp;con&nbsp;la&nbsp;estructura&nbsp;de&nbsp;una&nbsp;lista.</tt></dd></dl>
<dl><dt><a name="-mapLambdaSuma"><strong>mapLambdaSuma</strong></a>(l1, l2)</dt><dd><tt>Función&nbsp;para&nbsp;la&nbsp;suma,&nbsp;elemento&nbsp;a&nbsp;elemento&nbsp;de&nbsp;dos&nbsp;listas&nbsp;(vectores).</tt></dd></dl>
<dl><dt><a name="-parLogico"><strong>parLogico</strong></a>(l1)</dt><dd><tt>Función&nbsp;que&nbsp;devuelve&nbsp;True&nbsp;o&nbsp;False&nbsp;para&nbsp;cada&nbsp;elemento&nbsp;de&nbsp;una&nbsp;lista,&nbsp;si&nbsp;el&nbsp;valor&nbsp;del&nbsp;elemento&nbsp;es&nbsp;par.</tt></dd></dl>
<dl><dt><a name="-posibildad"><strong>posibildad</strong></a>(l1, l2)</dt><dd><tt>Función&nbsp;que&nbsp;devuelve&nbsp;todas&nbsp;las&nbsp;combinaciones&nbsp;posibilidades&nbsp;entre&nbsp;dos&nbsp;listas.</tt></dd></dl>
<dl><dt><a name="-sumaReduceLambda"><strong>sumaReduceLambda</strong></a>(l1)</dt><dd><tt>Función&nbsp;que&nbsp;suma,&nbsp;elemento&nbsp;a&nbsp;elemento,&nbsp;una&nbsp;sola&nbsp;lista&nbsp;con&nbsp;ayuda&nbsp;de&nbsp;la&nbsp;función&nbsp;reduce&nbsp;(importada&nbsp;de&nbsp;functools).</tt></dd></dl>
<dl><dt><a name="-tripletaPita"><strong>tripletaPita</strong></a>(valor)</dt><dd><tt>Función&nbsp;que&nbsp;genera&nbsp;la&nbsp;tripleta&nbsp;de&nbsp;Pitágoras&nbsp;lo&nbsp;cual&nbsp;es&nbsp;la&nbsp;suma&nbsp;de&nbsp;dos&nbsp;números&nbsp;elevados&nbsp;al&nbsp;cuadrado&nbsp;que&nbsp;resulten&nbsp;en&nbsp;un&nbsp;tercero&nbsp;elevado&nbsp;al&nbsp;cuadrado</tt></dd></dl>
</td></tr></table>
</body></html>
\ No newline at end of file
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
Documentación para la segunda tarea de la materia de Tópicos Avanzados de Programación.
Maestría GeoInteligencia Computacional a 27 de Enero del 2019.
"""
def mapLambdaSuma(l1,l2):
'''
Función para la suma, elemento a elemento de dos listas (vectores).
'''
suma=list(map(lambda x,y: x+y, l1,l2))
return suma
def tripletaPita(valor):
'''
Función que genera la tripleta de Pitágoras lo cual es la suma de dos números elevados al cuadrado que resulten en un tercero elevado al cuadrado
'''
for i in range(4, valor + 1):
if i % 2:
#Impar
valores = i**2 // 2
yield i, valores, valores + 1
else:
#par
valores = (i // 2)**2
yield i, valores - 1, valores + 1
def sumaReduceLambda(l1):
'''
Función que suma, elemento a elemento, una sola lista con ayuda de la función reduce (importada de functools).
'''
suma=reduce((lambda x,y: x+y),l1)
return suma
def posibildad(l1,l2):
'''
Función que devuelve todas las combinaciones posibilidades entre dos listas.
'''
posibles=[(num,letr) for num in l1 for letr in l2]
return posibles
def listaTuplasComprension(l1):
'''
Función que devuelve el indice y el valor en una tupla con la estructura de una lista.
'''
indice=[(l1.index(i),i) for i in l1]
return indice
def parLogico(l1):
'''
Función que devuelve True o False para cada elemento de una lista, si el valor del elemento es par.
'''
par=[True if num%2==0 else False for num in l1]
return par
reduce.png

21.5 KB

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