diff --git a/lab-python-error-handling.ipynb b/lab-python-error-handling.ipynb index 3e50ef8..da23fbf 100644 --- a/lab-python-error-handling.ipynb +++ b/lab-python-error-handling.ipynb @@ -41,18 +41,148 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "id": "cc2c441d-9dcf-4817-b097-cf6cbe440846", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Enter a valid value\n", + "0.6\n", + "5.2\n", + "Can not divide by zero\n" + ] + } + ], "source": [ - "# your code goes here" + "# your code goes here\n", + "\n", + "def addition(a: float, b:float) -> float:\n", + " return round(a+b, 1)\n", + "\n", + "def subtraction(a: float, b:float) -> float:\n", + " return round(a-b, 1)\n", + "\n", + "def multiplication(a: float, b:float) -> float:\n", + " return round(a*b, 1)\n", + "\n", + "def division(a: float, b:float) -> float:\n", + " return round(a/b, 1)\n", + "\n", + "def calculate(a: float, b: float, operand: str) -> float:\n", + " try:\n", + " while True:\n", + " if operand == \"+\":\n", + " result = addition(a, b)\n", + " return result\n", + " elif operand == \"-\":\n", + " result = subtraction(a, b)\n", + " return result\n", + " elif operand == \"*\":\n", + " result = multiplication(a, b)\n", + " return result\n", + " elif operand == \"/\":\n", + " if b == 0:\n", + " raise ZeroDivisionError\n", + " else:\n", + " result = division(a, b)\n", + " return result\n", + " else:\n", + " print(\"Enter a valid operator\") \n", + " except ZeroDivisionError:\n", + " return(\"Can not divide by zero\")\n", + " except:\n", + " return(\"Enter a valid value\")\n", + "\n", + "print(calculate(2.6,\"a\",\"+\"))\n", + "print(calculate(2.6,2,\"-\"))\n", + "print(calculate(2.6,2,\"*\"))\n", + "print(calculate(2.6,0,\"/\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "19ecaea2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "16.6\n", + "-11.4\n", + "Enter a valid value\n", + "Division by zero is not possible\n", + "Enter a valid operator\n" + ] + } + ], + "source": [ + "# your code goes here\n", + "\n", + "def addition(*args) -> float:\n", + " try:\n", + " result = args[0]\n", + " for num in args[1:]:\n", + " result += num\n", + " return round(result,1)\n", + " except TypeError:\n", + " return \"Enter a valid value\"\n", + "\n", + "def subtraction(*args) -> float:\n", + " try:\n", + " result = args[0]\n", + " for num in args[1:]:\n", + " result-=num\n", + " return round(result,1)\n", + " except TypeError:\n", + " return \"Enter a valid value\"\n", + "\n", + "def multiplication(*args) -> float:\n", + " try:\n", + " result = args[0]\n", + " for num in args[1:]:\n", + " result*=num\n", + " return round(result,1)\n", + " except TypeError:\n", + " return \"Enter a valid value\"\n", + "\n", + "def division(*args) -> float:\n", + " try:\n", + " result = args[0]\n", + " for num in args[1:]:\n", + " result/=num\n", + " return round(result,3)\n", + " except ZeroDivisionError:\n", + " return \"Division by zero is not possible\"\n", + "\n", + "def calculate(*args) -> float:\n", + " if args[-1] == \"+\":\n", + " return addition(*args[:-1])\n", + " elif args[-1] == \"-\":\n", + " return subtraction(*args[:-1])\n", + " elif args[-1] == \"*\":\n", + " return multiplication(*args[:-1])\n", + " elif args[-1] == \"/\":\n", + " return division(*args[:-1])\n", + " else:\n", + " return \"Enter a valid operator\"\n", + " \n", + "\n", + "print(calculate(2.6,2,3,4,5,\"+\"))\n", + "print(calculate(2.6,2,3,4,5,\"-\"))\n", + "print(calculate(2.6,2,\"3\",4,5,\"*\"))\n", + "print(calculate(2.6,2,0,4,5,\"/\"))\n", + "print(calculate(2.6,2,3,4,5,\"9\"))\n" ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -66,7 +196,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.13" + "version": "3.13.2" } }, "nbformat": 4,