From f8ae1abeebc73cc98d64057a9e48a74cf7384469 Mon Sep 17 00:00:00 2001 From: Juanposo Date: Tue, 2 Dec 2025 14:04:34 -0300 Subject: [PATCH] Chato de esta caga de ramo --- .DS_Store | Bin 10244 -> 10244 bytes LabSO/.DS_Store | Bin 10244 -> 10244 bytes LabSO/HTML/.DS_Store | Bin 8196 -> 8196 bytes LabSO/HTML/TareaHTML JP Parra.zip | Bin 1162630 -> 1162630 bytes LabSO/HTML/TareaHTML JP Parra/otros.html | 1 + .../TareaHTML JP Parra/recomendaciones.html | 4 +- Programación/Jupyter/Clase 191125.ipynb | 51 +++++- Programación/Jupyter/Tarea2.ipynb | 163 ++++++++++++++++++ Programación/elpepe/sopenkeanding.py | 24 +++ 9 files changed, 237 insertions(+), 6 deletions(-) create mode 100644 Programación/Jupyter/Tarea2.ipynb create mode 100644 Programación/elpepe/sopenkeanding.py diff --git a/.DS_Store b/.DS_Store index 90ec23f30e0cdf75cfb0eea2477034c1377e147e..5c9ae660c35d1ba22cec2c44185e37df2a12bb99 100644 GIT binary patch delta 105 zcmZn(XbIThE5NKhRb+C2fCQ_o-v@;glXC^6p{!m387A`ylOGC5Z$2i#&p5eARA};Z z!31u}>S|*nV;uz}1LMhoLNb%N#Z)#=6#CD|to^NX@??>CCOw1AUqpnsH?u4JV%a3h G%nSe*RUxea delta 107 zcmZn(XbIThE5IxstuQ%2K!Wvbu-}ullXC^6p{!m3878HG$qxmjHy;z=XJp(l`I=xM zmqc~7sj;b!f~DEy527-RU6b>L>N=Y-RG;H>h+R3_^O~H^I!v+DkL7B;A H1wexU(cC0` delta 154 zcmZn(XbIS0F3z}X@;>209;xbTQ!`5)1zi&Zi^*0ZGK@WwFN(`E_HO5Cboctu97{}^b+1onFlLe%t*q}@UDQPC537dVTcCv0}S1@45 QYlCnvvcZ|jWd%t&00(U>H2?qr diff --git a/LabSO/HTML/.DS_Store b/LabSO/HTML/.DS_Store index db6dd255f41ad0674d6020408aa6902162473537..2141a2fd54124b32b9dc100e88251d2a8a8518be 100644 GIT binary patch delta 19 acmZp1XmQvuU4)GxiGhK^Z}VJ{bZ!7Uu?27d delta 19 acmZp1XmQvuU4)I%n}LC$ck^74bZ!7VPz9L) diff --git a/LabSO/HTML/TareaHTML JP Parra.zip b/LabSO/HTML/TareaHTML JP Parra.zip index 15d0b8fb08dcaa77958310feae97855665bf5e96..7581eca85d1f937feb0f63b20e7b3eba668b5012 100644 GIT binary patch delta 3133 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 Qt*Ae6teeVRCwdM1Kg=oG9RL6T delta 3133 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

Mis discos favoritos de esta decada

    2025

    +
  • Cabin in The Sky - De La Soul - Hip-Hop
  • Lux - Rosalía - Art-Pop/Classical
  • Starburst - Danny Brown - Expermiental Hip-Hop
  • Getting Killed - Geese - Indie Rock
  • diff --git a/LabSO/HTML/TareaHTML JP Parra/recomendaciones.html b/LabSO/HTML/TareaHTML JP Parra/recomendaciones.html index 5478447..ec81462 100644 --- a/LabSO/HTML/TareaHTML JP Parra/recomendaciones.html +++ b/LabSO/HTML/TareaHTML JP Parra/recomendaciones.html @@ -56,7 +56,7 @@
    - +

    Discovery

    @@ -67,7 +67,7 @@
    - +

    El Jardín de Los Presentes

    diff --git a/Programación/Jupyter/Clase 191125.ipynb b/Programación/Jupyter/Clase 191125.ipynb index f748792..7436b45 100644 --- a/Programación/Jupyter/Clase 191125.ipynb +++ b/Programación/Jupyter/Clase 191125.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 22, + "execution_count": 4, "id": "4b54e443", "metadata": {}, "outputs": [ @@ -10,7 +10,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "0 palabras; 1 vocal 'a'; 0 vocales 'e'; 1 vocal 'i'; 1 vocal 'o'; 1 vocal 'u'; " + "7 palabras; 0 vocales 'a'; 4 vocales 'e'; 3 vocales 'i'; 5 vocales 'o'; 1 vocal 'u'; " ] } ], @@ -78,11 +78,54 @@ "else:\n", " print(vocal_u, \"vocal 'u'\", end=\"; \")" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "205ac42d", + "metadata": {}, + "outputs": [ + { + "ename": "TabError", + "evalue": "inconsistent use of tabs and spaces in indentation (28991641.py, line 15)", + "output_type": "error", + "traceback": [ + "\u001b[0;36m Cell \u001b[0;32mIn[2], line 15\u001b[0;36m\u001b[0m\n\u001b[0;31m for r in range(0, 5):\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mTabError\u001b[0m\u001b[0;31m:\u001b[0m inconsistent use of tabs and spaces in indentation\n" + ] + } + ], + "source": [ + "# Wea que hizo el Benja y no le salió que imbécil\n", + "v=[\"a\", \"e\", \"i\", \"o\", \"u\"]\n", + "\n", + "def f(x):\n", + " lenngth = len(x)\n", + " npp=0\n", + " na=0\n", + " ne=0\n", + " ni=0\n", + " noo=0\n", + " nu=0\n", + " xx = x.lower()\n", + " nv = [na, ne, ni, noo, nu]\n", + " for i in xx:\n", + " print(\"ss\")\n", + "\t for r in range(0, 5):\n", + "\t\t if v[r] == i:\n", + "\t\t\t nv[3]+=1\n", + " out = f\"palabras: {npp} vocA: {na} vocE: {ne} vocI: {ni} vocO: {noo} vocU: {nu}\"\n", + " return out\n", + "\n", + "print(f(\"hola sfslkajdf\"))\n", + "\n", + "#if(x[i] == \" \" and i != lenngth):\n", + "#npp +=1\n" + ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -96,7 +139,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.14.0" + "version": "3.9.6" } }, "nbformat": 4, diff --git a/Programación/Jupyter/Tarea2.ipynb b/Programación/Jupyter/Tarea2.ipynb new file mode 100644 index 0000000..747b3f8 --- /dev/null +++ b/Programación/Jupyter/Tarea2.ipynb @@ -0,0 +1,163 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "73850839", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "=== SISTEMA DE FACTURACIÓN KEWA-WEI ===\n", + "\n", + "Ingrese las llamadas separadas por comas (ej: 56897456 01:35, 98657458 10:20, ...)\n", + "Termine con: 99999999 00:00\n", + "\n", + "RESULTADO:\n", + "Número más frecuente: 98657458\n", + "Cantidad de llamadas: 5\n", + "Total a pagar: $60\n" + ] + } + ], + "source": [ + "# Separa llamadas y entrega valores de minutos y segundos.\n", + "def leer_llamadas():\n", + " entrada = input().strip()\n", + " llamadas_str = [llamada.strip() for llamada in entrada.split(',')]\n", + " llamadas = []\n", + "\n", + " for llamada_str in llamadas_str:\n", + " if not llamada_str:\n", + " continue\n", + " partes = llamada_str.split()\n", + "\n", + " if len(partes) != 2:\n", + " print(f\"Formato incorrecto en: {llamada_str}. Se omitirá.\")\n", + " continue\n", + "\n", + " numero = partes[0]\n", + " tiempo = partes[1]\n", + " if ':' not in tiempo:\n", + " print(f\"Formato de tiempo incorrecto en: {llamada_str}. Se omitirá.\")\n", + " continue\n", + " minutos_str, segundos_str = tiempo.split(':')\n", + " \n", + " # Verificar que minutos_str y segundos_str sean números\n", + " if not minutos_str.isdigit() or not segundos_str.isdigit():\n", + " continue\n", + " \n", + " minutos = int(minutos_str)\n", + " segundos = int(segundos_str)\n", + " \n", + " # Verificar si es la marca de fin\n", + " if numero == \"99999999\" and minutos == 0 and segundos == 0:\n", + " break\n", + " \n", + " # Validar rangos de tiempo (segundos entre 0 y 59)\n", + " if minutos < 0 or segundos < 0 or segundos >= 60:\n", + " continue\n", + " \n", + " llamadas.append((numero, minutos, segundos))\n", + " \n", + " return llamadas\n", + "\n", + "# Encuentra el número que más se repite en la lista de llamadas.\n", + "def numero_frecuente(llamadas):\n", + " if len(llamadas) == 0:\n", + " return \"\"\n", + " \n", + " conteo_numeros = {}\n", + " \n", + " # Recorrer cada llamada en la lista y conteo de números\n", + " for llamada in llamadas:\n", + " numero_actual = llamada[0]\n", + " if numero_actual in conteo_numeros:\n", + " conteo_numeros[numero_actual] = conteo_numeros[numero_actual] + 1\n", + " else:\n", + " conteo_numeros[numero_actual] = 1\n", + " \n", + " maximo_repeticiones = 0\n", + " numero_mas_llamado = \"\"\n", + " \n", + " # Revisar todos los números y sus conteos\n", + " for numero, cantidad in conteo_numeros.items():\n", + " if cantidad > maximo_repeticiones:\n", + " maximo_repeticiones = cantidad\n", + " numero_mas_llamado = numero\n", + " \n", + " return numero_mas_llamado\n", + "\n", + "# Calcula el total a pagar según las reglas de facturación.\n", + "def calcular_factura(llamadas, numero_frecuente):\n", + " if not llamadas:\n", + " return 0\n", + " \n", + " # Cobro por establecimiento de llamada\n", + " cantidad_llamadas = len(llamadas)\n", + " costo_llamadas = cantidad_llamadas * 3\n", + " \n", + " # Calcular minutos y segundos (sin contar el número frecuente)\n", + " minutos_totales = 0\n", + " segundos_totales = 0\n", + " \n", + " for numero, minutos, segundos in llamadas:\n", + " if numero != numero_frecuente:\n", + " minutos_totales += minutos\n", + " segundos_totales += segundos\n", + " \n", + " minutos_extra = segundos_totales // 60\n", + "\n", + " if segundos_totales % 60 != 0:\n", + " minutos_extra += 1\n", + "\n", + " minutos_a_cobrar = minutos_totales + minutos_extra\n", + " costo_minutos = minutos_a_cobrar * 5\n", + " total = costo_llamadas + costo_minutos\n", + " return total\n", + "\n", + "# Programazo\n", + "print(\"=== SISTEMA DE FACTURACIÓN KEWA-WEI ===\\n\")\n", + "print(\"Ingrese las llamadas separadas por comas (ej: 56897456 01:35, 98657458 10:20, ...)\")\n", + "print(\"Termine con: 99999999 00:00\")\n", + " \n", + "\n", + "llamadas = leer_llamadas()\n", + "\n", + "if not llamadas:\n", + " print(\"No hay llamadas válidas para facturar.\")\n", + "else:\n", + " numero_frec = numero_frecuente(llamadas)\n", + " total = calcular_factura(llamadas, numero_frec)\n", + " \n", + " print(f\"\\nRESULTADO:\")\n", + " print(f\"Número frecuente: {numero_frec}\")\n", + " print(f\"Cantidad de llamadas: {len(llamadas)}\")\n", + " print(f\"Total a pagar: ${total}\")" + ] + } + ], + "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.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Programación/elpepe/sopenkeanding.py b/Programación/elpepe/sopenkeanding.py new file mode 100644 index 0000000..464a12f --- /dev/null +++ b/Programación/elpepe/sopenkeanding.py @@ -0,0 +1,24 @@ +v=["a", "e", "i", "o", "u"] + +def f(x): + lenngth = len(x) + npp=0 + na=0 + ne=0 + ni=0 + noo=0 + nu=0 + xx = x.lower() + nv = [na, ne, ni, noo, nu] + for i in xx: + print("ss") + for r in range(0, 5): + if v[r] == i: + nv[3]+=1 + out = f"palabras: {npp} vocA: {na} vocE: {ne} vocI: {ni} vocO: {noo} vocU: {nu}" + return out + +print(f("hola sfslkajdf")) + +#if(x[i] == " " and i != lenngth): +#npp +=1