From dd5ef9f0f9af0c753dc360532c9347d9d4005d21 Mon Sep 17 00:00:00 2001 From: David Venegas Date: Sun, 3 Oct 2021 16:34:17 -0500 Subject: [PATCH 1/3] ejercicios 1-5 --- .../1.-Snail-and-Well/snail-and-well.ipynb | 166 ++++++++++++++++-- .../duel-of-sorcerers.ipynb | 145 ++++++++++++--- 1.-Python/3.-Bus/bus.ipynb | 98 +++++++++-- 1.-Python/4.-Robin-Hood/robin-hood.ipynb | 77 ++++++-- .../temperature.ipynb | 165 ++++++++++++++--- 5 files changed, 562 insertions(+), 89 deletions(-) diff --git a/1.-Python/1.-Snail-and-Well/snail-and-well.ipynb b/1.-Python/1.-Snail-and-Well/snail-and-well.ipynb index 34021448a..2334a5a4b 100644 --- a/1.-Python/1.-Snail-and-Well/snail-and-well.ipynb +++ b/1.-Python/1.-Snail-and-Well/snail-and-well.ipynb @@ -30,10 +30,15 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "well_height= 125\n", + "daily_distance=30\n", + "nightly_distance=20\n", + "snail_position=0" + ] }, { "cell_type": "markdown", @@ -44,10 +49,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "days=0" + ] }, { "cell_type": "markdown", @@ -58,10 +65,14 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "while snail_position < well_height:\n", + " snail_position = snail_position + (daily_distance - nightly_distance)\n", + " days = days+1" + ] }, { "cell_type": "markdown", @@ -72,10 +83,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6\n" + ] + } + ], + "source": [ + "print(days)" + ] }, { "cell_type": "markdown", @@ -96,10 +117,30 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6\n" + ] + } + ], + "source": [ + "advance_cm = [30, 21, 33, 77, 44, 45, 23, 45, 12, 34, 55]\n", + "well_height= 125\n", + "nightly_distance=20\n", + "snail_position=0\n", + "days=0\n", + "\n", + "while snail_position < well_height:\n", + " snail_position = snail_position + advance_cm[days] - nightly_distance\n", + " days = days + 1\n", + "\n", + "print(days)" + ] }, { "cell_type": "markdown", @@ -111,10 +152,34 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "57\n", + "1\n" + ] + } + ], + "source": [ + "advance_cm = [30, 21, 33, 77, 44, 45, 23, 45, 12, 34, 55]\n", + "well_height= 125\n", + "nightly_distance=20\n", + "snail_position=0\n", + "days=0\n", + "distance_per_day = []\n", + "\n", + "while snail_position < well_height:\n", + " snail_position = snail_position + advance_cm[days] - nightly_distance\n", + " distance_per_day.append(advance_cm[days] - nightly_distance)\n", + " days = days + 1\n", + "\n", + "print(max(distance_per_day))\n", + "print(min(distance_per_day))" + ] }, { "cell_type": "markdown", @@ -125,10 +190,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "21.666666666666668\n" + ] + } + ], + "source": [ + "advance_cm = [30, 21, 33, 77, 44, 45, 23, 45, 12, 34, 55]\n", + "well_height= 125\n", + "nightly_distance=20\n", + "snail_position=0\n", + "days=0\n", + "distance_per_day = []\n", + "\n", + "while snail_position < well_height:\n", + " snail_position = snail_position + advance_cm[days] - nightly_distance\n", + " distance_per_day.append(advance_cm[days] - nightly_distance)\n", + " days = days + 1\n", + "\n", + "print(sum(distance_per_day)/len(distance_per_day))" + ] }, { "cell_type": "markdown", @@ -137,6 +224,47 @@ "#### 4. What is the standard deviation of its displacement? Take into account the snail slides at night." ] }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "17.81073334319006\n" + ] + } + ], + "source": [ + "advance_cm = [30, 21, 33, 77, 44, 45, 23, 45, 12, 34, 55]\n", + "well_height= 125\n", + "nightly_distance=20\n", + "snail_position=0\n", + "days=0\n", + "distance_per_day = []\n", + "deviation = 0.0\n", + "\n", + "while snail_position < well_height:\n", + " snail_position = snail_position + advance_cm[days] - nightly_distance\n", + " distance_per_day.append(advance_cm[days] - nightly_distance)\n", + " days = days + 1\n", + " \n", + "#Starting process of standard deviation#\n", + "for i in distance_per_day:\n", + " deviation =deviation + (i - sum(distance_per_day)/len(distance_per_day))**2\n", + "\n", + "print((deviation/len(distance_per_day))**0.5)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": null, @@ -161,7 +289,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.2" + "version": "3.8.8" } }, "nbformat": 4, diff --git a/1.-Python/2.-Duel-of-Sorcerers/duel-of-sorcerers.ipynb b/1.-Python/2.-Duel-of-Sorcerers/duel-of-sorcerers.ipynb index b4a5f6d7e..459e93b89 100644 --- a/1.-Python/2.-Duel-of-Sorcerers/duel-of-sorcerers.ipynb +++ b/1.-Python/2.-Duel-of-Sorcerers/duel-of-sorcerers.ipynb @@ -49,10 +49,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "spells=0" + ] }, { "cell_type": "markdown", @@ -64,10 +66,13 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "gandalf_wins=0\n", + "saruman_wins=0" + ] }, { "cell_type": "markdown", @@ -78,10 +83,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "gandalf = [10, 11, 13, 30, 22, 11, 10, 33, 22, 22]\n", + "saruman = [23, 66, 12, 43, 12, 10, 44, 23, 12, 17]\n", + "spells=0\n", + "gandalf_wins=0\n", + "saruman_wins=0\n", + "\n", + "for i in range(0,len(gandalf)):\n", + "\tif gandalf[i] < saruman[i]:\n", + "\t\tsaruman_wins=saruman_wins+1\n", + "\telse:\n", + "\t\tgandalf_wins=gandalf_wins+1" + ] }, { "cell_type": "markdown", @@ -93,10 +110,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Gandalf wins\n" + ] + } + ], + "source": [ + "if gandalf_wins < saruman_wins:\n", + "\tprint(\"Saruman wins\")\n", + "elif gandalf_wins == saruman_wins:\n", + "\tprint(\"Tie\")\n", + "else:\n", + "\tprint(\"Gandalf wins\")" + ] }, { "cell_type": "markdown", @@ -128,10 +160,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "POWER = {\n", + " 'Fireball': 50, \n", + " 'Lightning bolt': 40, \n", + " 'Magic arrow': 10, \n", + " 'Black Tentacles': 25, \n", + " 'Contagion': 45\n", + "}\n", + "gandalf = ['Fireball', 'Lightning bolt', 'Lightning bolt', 'Magic arrow', 'Fireball', \n", + " 'Magic arrow', 'Lightning bolt', 'Fireball', 'Fireball', 'Fireball']\n", + "saruman = ['Contagion', 'Contagion', 'Black Tentacles', 'Fireball', 'Black Tentacles', \n", + " 'Lightning bolt', 'Magic arrow', 'Contagion', 'Magic arrow', 'Magic arrow']\n", + "spells = 0\n" + ] }, { "cell_type": "markdown", @@ -142,10 +187,13 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "gandalf_wins=0\n", + "saruman_wins=0" + ] }, { "cell_type": "markdown", @@ -156,10 +204,13 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "gandalf_power=[\"\"]\n", + "saruman_power=[\"\"]" + ] }, { "cell_type": "markdown", @@ -171,10 +222,36 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Tie\n" + ] + } + ], + "source": [ + "for i in range(0,len(gandalf)):\n", + "\tif (len(gandalf_power)<3 & len(saruman_power)<3):\n", + "\t\tif POWER(gandalf[i]) < POWER(saruman[i]):\n", + "\t\t\tsaruman_wins=saruman_wins+1\n", + "\t\t\tsaruman_power.append(saruman(i))\n", + "\t\t\tgandalf_power.clear()\n", + "\t\telif POWER(gandalf[i]) > POWER(saruman[i]):\n", + "\t\t\tgandalf_wins=gandalf_wins+1\n", + "\t\t\tgandalf_power.append(gandalf(i))\n", + "\t\t\tsaruman_power.clear()\n", + "\n", + "if saruman_wins == 3:\n", + "\tprint (\"Saruman wins\")\n", + "elif gandalf_wins == 3:\n", + "\tprint (\"Gandalf wins\")\n", + "else:\n", + " print(\"Tie\")" + ] }, { "cell_type": "markdown", @@ -185,10 +262,34 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "ename": "TypeError", + "evalue": "'dict' object is not callable", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 10\u001b[0m \u001b[0msaruman_power\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mclear\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 11\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 12\u001b[1;33m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msum\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mPOWER\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msaruman\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;31mTypeError\u001b[0m: 'dict' object is not callable" + ] + } + ], + "source": [ + "for i in range(0,len(gandalf)):\n", + "\tif (len(gandalf_power)<3 & len(saruman_power)<3):\n", + "\t\tif POWER(gandalf[i]) < POWER(saruman[i]):\n", + "\t\t\tsaruman_wins=saruman_wins+1\n", + "\t\t\tsaruman_power.append(saruman(i))\n", + "\t\t\tgandalf_power.clear()\n", + "\t\telif POWER(gandalf[i]) > POWER(saruman[i]):\n", + "\t\t\tgandalf_wins=gandalf_wins+1\n", + "\t\t\tgandalf_power.append(gandalf(i))\n", + "\t\t\tsaruman_power.clear()\n", + "\n" + ] }, { "cell_type": "markdown", @@ -221,7 +322,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.2" + "version": "3.8.8" } }, "nbformat": 4, diff --git a/1.-Python/3.-Bus/bus.ipynb b/1.-Python/3.-Bus/bus.ipynb index 31f09b8fd..f41d1087f 100644 --- a/1.-Python/3.-Bus/bus.ipynb +++ b/1.-Python/3.-Bus/bus.ipynb @@ -35,7 +35,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": {}, "outputs": [], "source": [ @@ -52,10 +52,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "9\n" + ] + } + ], + "source": [ + "print(len(stops))" + ] }, { "cell_type": "markdown", @@ -67,10 +77,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10\n", + "13\n", + "11\n", + "10\n", + "14\n", + "10\n", + "7\n", + "5\n", + "4\n", + "4\n" + ] + } + ], + "source": [ + "\n", + "for passengers in stops:\n", + " passenger_total = passenger_total + passengers[0] - passengers[1]\n", + "print(passenger_total)\n" + ] }, { "cell_type": "markdown", @@ -81,10 +113,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "14\n" + ] + } + ], + "source": [ + "list_passenger = []\n", + "for passengers in stops:\n", + " passenger_total = passenger_total + passengers[0] - passengers[1]\n", + " list_passenger.append(passenger_total)\n", + "\n", + "print(max(list_passenger)) " + ] }, { "cell_type": "markdown", @@ -93,6 +140,33 @@ "#### 4. Calculate the average occupation. And the standard deviation." ] }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "average: 9.333333333333334\n", + "standard deviation: 3.197221015541813\n" + ] + } + ], + "source": [ + "import numpy\n", + "passenger_total = 0\n", + "list_passenger = []\n", + "for passengers in stops:\n", + " passenger_total = passenger_total + passengers[0] - passengers[1]\n", + " list_passenger.append(passenger_total)\n", + "\n", + "print(\"average:\" , sum(list_passenger)/len(list_passenger))\n", + "print( \"standard deviation:\" , numpy.std(list_passenger))\n", + " " + ] + }, { "cell_type": "code", "execution_count": null, @@ -117,9 +191,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.2" + "version": "3.8.8" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/1.-Python/4.-Robin-Hood/robin-hood.ipynb b/1.-Python/4.-Robin-Hood/robin-hood.ipynb index 01de29d3b..28e9df61b 100644 --- a/1.-Python/4.-Robin-Hood/robin-hood.ipynb +++ b/1.-Python/4.-Robin-Hood/robin-hood.ipynb @@ -38,7 +38,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -55,10 +55,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "coordinates where arrow hits another arrow: {(-3, 2), (4, 5), (5, 7), (2, 2)}\n" + ] + } + ], + "source": [ + "counter = 0;\n", + "set_arrows = []\n", + "for point in points:\n", + " if points.count(point) >= 2:\n", + " set_arrows.append(point)\n", + "\n", + "print( \"coordinates where arrow hits another arrow: \", set(set_arrows))\n" + ] }, { "cell_type": "markdown", @@ -70,10 +86,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Count of arrow that have fallen in a cuadrant: 2\n" + ] + } + ], + "source": [ + "counter = 0;\n", + "set_arrows = []\n", + "for point in points:\n", + " if point[0] == 0 or point[1] == 0:\n", + " set_arrows.append(point)\n", + "\n", + "print( \" Count of arrow that have fallen in a cuadrant: \", len(set_arrows))" + ] }, { "cell_type": "markdown", @@ -88,10 +120,31 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "minimum distance: 2.0\n" + ] + } + ], + "source": [ + "import math\n", + "\n", + "def calc_distance(p1, p2):\n", + " return sqrt((p1[0]-p2[0])**2+(p1[1]-p2[1])**2) \n", + "\n", + "minimum_distance = -1\n", + "for point in points:\n", + " if minimum_distance == -1 or minimum_distance > calc_distance(point,[0,0]):\n", + " minimum_distance = calc_distance(point,[0,0])\n", + "\n", + "print(\"minimum distance: \",minimum_distance) \n", + "\n" + ] }, { "cell_type": "markdown", @@ -125,9 +178,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.2" + "version": "3.8.8" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/1.-Python/5.-Temperature-Processor/temperature.ipynb b/1.-Python/5.-Temperature-Processor/temperature.ipynb index 4b597aa20..ee4fcdb10 100644 --- a/1.-Python/5.-Temperature-Processor/temperature.ipynb +++ b/1.-Python/5.-Temperature-Processor/temperature.ipynb @@ -28,7 +28,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": {}, "outputs": [], "source": [ @@ -53,10 +53,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n" + ] + } + ], + "source": [ + "minimum_temp = min(temperatures_C)\n", + "\n", + "print(minimum_temp)" + ] }, { "cell_type": "markdown", @@ -67,10 +79,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "90\n" + ] + } + ], + "source": [ + "maximum_temp = max(temperatures_C)\n", + "print(maximum_temp)" + ] }, { "cell_type": "markdown", @@ -81,10 +104,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[90, 83, 81, 80, 80, 79, 76, 70, 66, 65, 64, 62, 61, 60, 59, 53, 53, 50, 49, 48, 45, 39, 33, 0]\n", + "8\n", + "[90, 83, 81, 80, 80, 79, 76, 70]\n" + ] + } + ], + "source": [ + "high_temp = temperatures_C.copy()\n", + "high_temp.sort()\n", + "high_temp.reverse()\n", + "ind = 0\n", + "\n", + "while high_temp[ind] >= 70:\n", + " ind = ind +1\n", + " \n", + "del high_temp[ind:]\n", + "\n", + "print(high_temp)\n" + ] }, { "cell_type": "markdown", @@ -95,10 +140,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "60.25\n" + ] + } + ], + "source": [ + "avg_temp = sum(temperatures_C)/len(temperatures_C)\n", + "print(avg_temp)" + ] }, { "cell_type": "markdown", @@ -109,10 +165,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[33, 66, 65, 62, 59, 60, 62, 64, 70, 76, 80, 81, 80, 83, 90, 79, 61, 53, 50, 49, 53, 48, 45, 39]\n" + ] + } + ], + "source": [ + "#doing some forcast formula like exponential smoothing or linear regretion (will use just a average between the closest values of 3 am)\n", + "\n", + "temperatures_C[3] = int((temperatures_C[2] + temperatures_C[4])/2)\n", + "\n", + "print(temperatures_C)\n", + "\n" + ] }, { "cell_type": "markdown", @@ -128,10 +199,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[91, 150, 149, 143, 138, 140, 143, 147, 158, 168, 176, 177, 176, 181, 194, 174, 141, 127, 122, 120, 127, 118, 113, 102]\n" + ] + } + ], + "source": [ + "temperatures_F = []\n", + "for temp in temperatures_C:\n", + " temperatures_F.append(int(1.8 * temp + 32))\n", + "\n", + "temperatures_C = temperatures_F\n", + "print(temperatures_C)\n" + ] }, { "cell_type": "markdown", @@ -150,10 +236,41 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 30, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Cooling system need to be changed\n" + ] + } + ], + "source": [ + "high_temp = temperatures_C.copy()\n", + "high_temp.sort()\n", + "high_temp.reverse()\n", + "medium_temp = 0\n", + "evaluated = 0\n", + "\n", + "for value in high_temp:\n", + " if value >= 80:\n", + " print (\"Cooling system need to be changed\")\n", + " evaluated = 1\n", + " break\n", + " if value < 80 and value >= 70:\n", + " medium_temp = medium_temp + 1\n", + " if medium_temp == 4:\n", + " evaluated = 1\n", + " print (\"Cooling system need to be changed\")\n", + " break\n", + "if evaluated == 0:\n", + " if sum(temperatures_C)/len(temperatures_C) > 65:\n", + " print(\"Cooling system need to be changed\")\n", + " else:\n", + " print(\"Cooling system do not need to be changed\")\n" + ] }, { "cell_type": "markdown", @@ -254,9 +371,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.2" + "version": "3.8.8" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } From aded9b3e4fc6f462be06457f6e2f8dc9d2689bb4 Mon Sep 17 00:00:00 2001 From: David Venegas Date: Sun, 3 Oct 2021 16:38:36 -0500 Subject: [PATCH 2/3] 6to ejercicio --- .../rock-paper-scissors.ipynb" | 245 ++++++++++++++++-- 1 file changed, 220 insertions(+), 25 deletions(-) diff --git "a/1.-Python/6.-Rock\342\200\223Paper\342\200\223Scissors/rock-paper-scissors.ipynb" "b/1.-Python/6.-Rock\342\200\223Paper\342\200\223Scissors/rock-paper-scissors.ipynb" index 9e551dfd4..a52a7ad68 100644 --- "a/1.-Python/6.-Rock\342\200\223Paper\342\200\223Scissors/rock-paper-scissors.ipynb" +++ "b/1.-Python/6.-Rock\342\200\223Paper\342\200\223Scissors/rock-paper-scissors.ipynb" @@ -32,10 +32,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "import random" + ] }, { "cell_type": "markdown", @@ -46,10 +48,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "gestures = [\"paper\",\"rock\",\"scissors\"]" + ] }, { "cell_type": "markdown", @@ -61,10 +65,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "n_rounds = 7" + ] }, { "cell_type": "markdown", @@ -79,7 +85,9 @@ "execution_count": null, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "rounds_to_win = 4" + ] }, { "cell_type": "markdown", @@ -90,10 +98,13 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 35, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "cpu_score = 0\n", + "player_score = 0" + ] }, { "cell_type": "markdown", @@ -105,10 +116,13 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "def random_play (p_gestures):\n", + " return random.choice(p_gestures)\n" + ] }, { "cell_type": "markdown", @@ -120,10 +134,16 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "def users_gesture():\n", + " user_gest = \"\"\n", + " while gestures.count(user_gest) == 0:\n", + " user_gest = input(\"escribe que eliges entre rock, scissors, paper:\" )\n", + " return user_gest\n" + ] }, { "cell_type": "markdown", @@ -135,10 +155,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "def winner(p_program, p_user):\n", + " win = -1\n", + " if p_program == p_user:\n", + " win = 0\n", + " elif (p_program == \"rock\" and p_user ==\"scissors\") or (p_program == \"scissors\" and p_user ==\"paper\") or (p_program == \"paper\" and p_user ==\"rock\"):\n", + " win = 1\n", + " else:\n", + " win = 2\n", + " return win; " + ] }, { "cell_type": "markdown", @@ -150,10 +180,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 29, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "def print_winner(winner):\n", + " if winner == 1:\n", + " print(\"computadora gano\");\n", + " elif winner == 2:\n", + " print(\"usuario gano\");\n", + " else:\n", + " print(\"empate\");" + ] }, { "cell_type": "markdown", @@ -168,10 +206,149 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 45, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "------------------------------ 1 round ------------------------------\n" + ] + }, + { + "name": "stdin", + "output_type": "stream", + "text": [ + "escribe que eliges entre rock, scissors, paper: rock\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Computadora eligió: paper\n", + "computadora gano\n", + "------------------------------ 2 round ------------------------------\n" + ] + }, + { + "name": "stdin", + "output_type": "stream", + "text": [ + "escribe que eliges entre rock, scissors, paper: rock\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Computadora eligió: paper\n", + "computadora gano\n", + "------------------------------ 3 round ------------------------------\n" + ] + }, + { + "name": "stdin", + "output_type": "stream", + "text": [ + "escribe que eliges entre rock, scissors, paper: rock\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Computadora eligió: scissors\n", + "usuario gano\n", + "------------------------------ 4 round ------------------------------\n" + ] + }, + { + "name": "stdin", + "output_type": "stream", + "text": [ + "escribe que eliges entre rock, scissors, paper: rock\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Computadora eligió: scissors\n", + "usuario gano\n", + "------------------------------ 5 round ------------------------------\n" + ] + }, + { + "name": "stdin", + "output_type": "stream", + "text": [ + "escribe que eliges entre rock, scissors, paper: rock\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Computadora eligió: paper\n", + "computadora gano\n", + "------------------------------ 6 round ------------------------------\n" + ] + }, + { + "name": "stdin", + "output_type": "stream", + "text": [ + "escribe que eliges entre rock, scissors, paper: rock\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Computadora eligió: rock\n", + "empate\n", + "------------------------------ 7 round ------------------------------\n" + ] + }, + { + "name": "stdin", + "output_type": "stream", + "text": [ + "escribe que eliges entre rock, scissors, paper: rock\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Computadora eligió: paper\n", + "computadora gano\n" + ] + } + ], + "source": [ + "random_value = \"\"\n", + "win = \"\"\n", + "cpu_score = 0\n", + "player_score = 0\n", + "\n", + "for i in range(0,n_rounds):\n", + " print(\"-\"*30,\" \",i+1,\"round \",\"-\"*30)\n", + " random_value = random_play(gestures)\n", + " win = winner( random_value , users_gesture() )\n", + " print(\"Computadora eligió: \", random_value)\n", + " if win == 1:\n", + " cpu_score = cpu_score + 1\n", + " print_winner(1)\n", + " elif win == 2:\n", + " player_score = player_score + 1\n", + " print_winner(2)\n", + " else:\n", + " print_winner(0)\n", + " \n" + ] }, { "cell_type": "markdown", @@ -183,10 +360,28 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 46, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "computadora gano\n" + ] + } + ], + "source": [ + "if cpu_score == 4:\n", + " print_winner(1)\n", + "elif player_score == 4:\n", + " print_winner(2)\n", + "else:\n", + " print_winner(3)\n", + "\n", + "cpu_score = 0\n", + "player_score = 0" + ] }, { "cell_type": "markdown", @@ -226,9 +421,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.2" + "version": "3.8.8" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } From 936ba47e19f89abc2789be600a145fbfe891f9aa Mon Sep 17 00:00:00 2001 From: David Venegas Date: Sun, 10 Oct 2021 16:20:46 -0500 Subject: [PATCH 3/3] Pruebas de examenes de statistics coursera --- 2.-Statistics/week1-1.PNG | Bin 0 -> 25010 bytes 2.-Statistics/week1-2.PNG | Bin 0 -> 29611 bytes 2.-Statistics/week1-3.PNG | Bin 0 -> 28733 bytes 2.-Statistics/week1-4.PNG | Bin 0 -> 36125 bytes 2.-Statistics/week2-1.PNG | Bin 0 -> 23221 bytes 2.-Statistics/week2-2.PNG | Bin 0 -> 27564 bytes 2.-Statistics/week2-3.PNG | Bin 0 -> 30132 bytes 2.-Statistics/week3-1.PNG | Bin 0 -> 25427 bytes 2.-Statistics/week3-2.PNG | Bin 0 -> 26211 bytes 2.-Statistics/week3-3.PNG | Bin 0 -> 30654 bytes 2.-Statistics/week4-1.PNG | Bin 0 -> 25207 bytes 2.-Statistics/week4-2.PNG | Bin 0 -> 24502 bytes 2.-Statistics/week4-3.PNG | Bin 0 -> 28015 bytes 2.-Statistics/week4-4.PNG | Bin 0 -> 29675 bytes 14 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 2.-Statistics/week1-1.PNG create mode 100644 2.-Statistics/week1-2.PNG create mode 100644 2.-Statistics/week1-3.PNG create mode 100644 2.-Statistics/week1-4.PNG create mode 100644 2.-Statistics/week2-1.PNG create mode 100644 2.-Statistics/week2-2.PNG create mode 100644 2.-Statistics/week2-3.PNG create mode 100644 2.-Statistics/week3-1.PNG create mode 100644 2.-Statistics/week3-2.PNG create mode 100644 2.-Statistics/week3-3.PNG create mode 100644 2.-Statistics/week4-1.PNG create mode 100644 2.-Statistics/week4-2.PNG create mode 100644 2.-Statistics/week4-3.PNG create mode 100644 2.-Statistics/week4-4.PNG diff --git a/2.-Statistics/week1-1.PNG b/2.-Statistics/week1-1.PNG new file mode 100644 index 0000000000000000000000000000000000000000..3ed2818a18e6e3b959baf8a58ce0b31ecae5a8c0 GIT binary patch literal 25010 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 literal 0 HcmV?d00001 diff --git a/2.-Statistics/week1-2.PNG b/2.-Statistics/week1-2.PNG new file mode 100644 index 0000000000000000000000000000000000000000..bf957f15b55fa2051e9219e95e6953b43f6842fd GIT binary patch literal 29611 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