-
Notifications
You must be signed in to change notification settings - Fork 0
/
Harp_150_Lab 6pynb
1 lines (1 loc) · 15.7 KB
/
Harp_150_Lab 6pynb
1
{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"provenance":[],"authorship_tag":"ABX9TyM6ocjq3M8Oir+XCQntduRF"},"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"}},"cells":[{"cell_type":"markdown","source":["A function is a reusable piece of code.\n","We only define it once.\n","Functions are defined using the def syntax then given a name (def stands for “define”).\n","Example: def count_to_ten ( ):\n","You can name your function anything, but use best practices: it should start with a lowercase letter & be descriptive\n","A function can be as many lines of code as you need.\n","All you have to do is call your function to use it!\n","Take a look at our example on the right, what is this function doing?\n"],"metadata":{"id":"kSAT2gxUc3WW"}},{"cell_type":"code","execution_count":2,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"toUcz1T3bhLj","executionInfo":{"status":"ok","timestamp":1709000789759,"user_tz":300,"elapsed":299,"user":{"displayName":"Joshua Cheuk","userId":"09800220979386665615"}},"outputId":"a7f27ee1-561f-430e-abe7-c2469a6f1074"},"outputs":[{"output_type":"stream","name":"stdout","text":["1\n","2\n","3\n","4\n","5\n","6\n","7\n","8\n","9\n","10\n"]}],"source":["def count_to_ten():\n"," counter = 1\n","\n"," while counter < 11:\n"," print(counter)\n"," counter += 1\n","\n","\n","count_to_ten()"]},{"cell_type":"code","source":["count_to_ten"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":104},"id":"2mpetAUucaEO","executionInfo":{"status":"ok","timestamp":1708632704379,"user_tz":300,"elapsed":255,"user":{"displayName":"Joshua Cheuk","userId":"09800220979386665615"}},"outputId":"f0ce6cf6-f69a-42c3-861d-b2c370bd1105"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["<function __main__.count_to_ten()>"],"text/html":["<div style=\"max-width:800px; border: 1px solid var(--colab-border-color);\"><style>\n"," pre.function-repr-contents {\n"," overflow-x: auto;\n"," padding: 8px 12px;\n"," max-height: 500px;\n"," }\n","\n"," pre.function-repr-contents.function-repr-contents-collapsed {\n"," cursor: pointer;\n"," max-height: 100px;\n"," }\n"," </style>\n"," <pre style=\"white-space: initial; background:\n"," var(--colab-secondary-surface-color); padding: 8px 12px;\n"," border-bottom: 1px solid var(--colab-border-color);\"><b>count_to_ten</b><br/>def count_to_ten()</pre><pre class=\"function-repr-contents function-repr-contents-collapsed\" style=\"\"><a class=\"filepath\" style=\"display:none\" href=\"#\">/content/<ipython-input-5-84191ff0b2b2></a><no docstring></pre></div>"]},"metadata":{},"execution_count":6}]},{"cell_type":"markdown","source":["Functions are a block of code by typing the function name\n","\n","\n","You define the function that can be used multiple times.\n","\n"],"metadata":{"id":"vL90tvzIbnT7"}},{"cell_type":"markdown","source":["\n","\n","* We have a program here that takes two numbers from a user & determined the smaller number – let’s make that into a function.\n","Note on lines 6 & 8 we use return instead of a print function\n","* A function typically “returns” something, using the return keyword you determine what that is\n","* Functions stop running as soon as a return statement is executed\n","return is different to print()\n","* You can then use the result of the return statement elsewhere in your code by storing it \n","\n","* List item\n","\n","\n","\n","```\n","# **# This is formatted as code**\n","```\n","\n"],"metadata":{"id":"sGc8zcbcclE7"}},{"cell_type":"markdown","source":["* We have a program here that takes two numbers from a user & determined the smaller number – let’s make that into a function.\n","* Note on lines 6 & 8 we use return instead of a print function\n","* A function typically “returns” something, using the return keyword you determine what that is\n","* Functions stop running as soon as a return statement is executed\n","return is different to print()\n","* You can then use the result of the return statement elsewhere in your code by storing it \n"],"metadata":{"id":"NRFof-Lvdtf6"}},{"cell_type":"code","source":["def addition():\n"," num1 = int(input(\"give me another number: \"))\n"],"metadata":{"id":"S7M7uWgggsiq"},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":[],"metadata":{"id":"NVD_qzzIdxvv"}},{"cell_type":"code","source":["def lower_number():\n"," num1 = input(\"give me a number:\")\n"," num2 = input(\"Give me another number: \")\n","\n"," if num1 < num2:\n"," return num1\n"," elif num2 > num1:\n"," return num2\n"," else:\n"," print(num1 + \" and \" + num2 + \" are equal\")\n","\n","lower_number()\n","\n","# answer = lower_number()\n","\n","# print(35 + answer)\n","# the return function makes the answer/output the definition to the function, then you can use that\n","#function for other programs, in this case you would add the lower number by stating the function\n","# and then you would add it to the answer"],"metadata":{"id":"OmVONzsueSJv","executionInfo":{"status":"ok","timestamp":1709001772717,"user_tz":300,"elapsed":7710,"user":{"displayName":"Joshua Cheuk","userId":"09800220979386665615"}},"outputId":"e11de6c5-45d6-4d4f-a71a-d5087a773000","colab":{"base_uri":"https://localhost:8080/","height":70}},"execution_count":11,"outputs":[{"name":"stdout","output_type":"stream","text":["give me a number:1\n","Give me another number: 2\n"]},{"output_type":"execute_result","data":{"text/plain":["'1'"],"application/vnd.google.colaboratory.intrinsic+json":{"type":"string"}},"metadata":{},"execution_count":11}]},{"cell_type":"code","source":["#Create a function that takes a number as an input from the user, multiples it by 5,\n","#and returns the total to the user.\n","\n","\n","def exercise_1():\n"," number = int(input(\"pick a number\"))\n"," result = number * 5\n"," return result\n","\n","exercise_1()\n","\n","# now this function is defined as 60."],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"0B9cF4PShqlu","executionInfo":{"status":"ok","timestamp":1708634154064,"user_tz":300,"elapsed":3007,"user":{"displayName":"Joshua Cheuk","userId":"09800220979386665615"}},"outputId":"312a554e-52fe-42bc-8970-eeb3756fa1f8"},"execution_count":null,"outputs":[{"name":"stdout","output_type":"stream","text":["pick a number12\n"]},{"output_type":"execute_result","data":{"text/plain":["60"]},"metadata":{},"execution_count":15}]},{"cell_type":"code","source":["#parameters and arguments\n","# parameters"],"metadata":{"id":"mLQFsAnehNSG"},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":["**parameters and arguemnts**\n","\n","\n","\n","* Parameters make our code even more reusable\n","* Parameter is what we call the information between the parentheses – it is essentially a variable that will be used in the body of your function\n","* Let’s take the practice example we just completed, instead of relying on a user input, we can include a parameter that lets us run any number we want\n","* Note on line 4, when we call our function, we input an argument of 34\n","* That is the technical name for what is happening on line 4\n","\n","* List item\n","\n"],"metadata":{"id":"yYR0eA0xiPdl"}},{"cell_type":"code","source":["def by_five(num):\n"," return num*5\n","\n","by_five(34)\n","\n","#"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"ws4uLkcwiXt4","executionInfo":{"status":"ok","timestamp":1708634264510,"user_tz":300,"elapsed":273,"user":{"displayName":"Joshua Cheuk","userId":"09800220979386665615"}},"outputId":"fbbdc4a0-88c0-4ec6-b7c8-619a61a5d5b3"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["170"]},"metadata":{},"execution_count":16}]},{"cell_type":"markdown","source":["\n","\n","* Exercise 2\n","* Create a function that takes someone’s name as a parameter, counts the length of the characters, and returns that output.\n","* it tells the code what to specifically work on\n","\n","\n"],"metadata":{"id":"G4LXtnBTi7Ti"}},{"cell_type":"code","source":["def name_len(name):\n"," length = len(name)\n"," return length\n","\n","name_len(\"josh\")"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"bsmSfssyi-8U","executionInfo":{"status":"ok","timestamp":1708634459753,"user_tz":300,"elapsed":196,"user":{"displayName":"Joshua Cheuk","userId":"09800220979386665615"}},"outputId":"8b9eacca-63a4-4701-9c9f-f72e91328845"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["4"]},"metadata":{},"execution_count":21}]},{"cell_type":"code","source":[],"metadata":{"id":"rZ8Q2jF3jNvQ"},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":["**Mandatory parameters**\n","\n","\n","\n","\n","* We can rewrite our program from slide 8 to take two parameters\n","* These are technically called “mandatory parameters” because the function cannot run if you do not provide two arguments\n","* Notice on line 7 that our arguments are by default positional, that means the first number will always be assigned to “a” and the second to “b”\n","\n","\n"],"metadata":{"id":"1iLgg9uajTcK"}},{"cell_type":"code","source":["def addition(a,b):\n"," if a > 0 and b >0:\n"," return a+b\n"," else:\n"," pass\n","\n","addition(4,6)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"CmYU5P0HjuYj","executionInfo":{"status":"ok","timestamp":1708634629402,"user_tz":300,"elapsed":50,"user":{"displayName":"Joshua Cheuk","userId":"09800220979386665615"}},"outputId":"247d4fb7-fc85-4461-d2e0-1917a83191e6"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["10"]},"metadata":{},"execution_count":22}]},{"cell_type":"markdown","source":["**optional parameters**\n","\n","\n","\n","* We can also use what’s known as optional parameters, which can remain blank and the function will still run\n","* Let’s walk through this line-by-line & explain what’s happening\n","* Try calling the function on line 12 without the “addition” string\n","\n","\n","\n"],"metadata":{"id":"WtP4V294jlI6"}},{"cell_type":"code","source":["def math(a,b,operation = \"\"):\n"," if a > 0 and b >0:\n"," if operation == \"addition\":\n"," return a+b\n"," elif operation == \"subtraction\":\n"," return a-b\n"," elif operation == \"multiplication\":\n"," return a*b\n"," else:\n"," return a,b\n","math(4,6,\"multiplication\")"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"6FmXhdIYjc_m","executionInfo":{"status":"ok","timestamp":1708634729232,"user_tz":300,"elapsed":38,"user":{"displayName":"Joshua Cheuk","userId":"09800220979386665615"}},"outputId":"1bcbb7e1-af25-4a6c-ac8d-1466489a12d0"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["24"]},"metadata":{},"execution_count":23}]},{"cell_type":"markdown","source":["* We’ve used lots of numbers in our examples so far, but your parameter can be any data type\n","* Here’s an example using strings – I want to create a username for an email - at Binghamton, it’s always the first initial of your first name & the first six letters of your last name\n","* Lines 2 & 3 I slice the strings\n","* Line 5 I put them together with an f string\n"],"metadata":{"id":"FfirgEAxkpKV"}},{"cell_type":"code","source":["def email(first,last):\n"," # this is telling the email to use two variables: first, last\n"," first = first[0].lower()\n"," last = last[:6].lower()\n","\n"," user_name=f\"{first}{last}@binghamton.edu\"\n"," return user_name\n","\n","email(\"joshua\",\"cheuk\")"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":35},"id":"R12ienMTktEK","executionInfo":{"status":"ok","timestamp":1708634961087,"user_tz":300,"elapsed":190,"user":{"displayName":"Joshua Cheuk","userId":"09800220979386665615"}},"outputId":"1e7d8f96-a349-4c93-8d9f-00091043fe50"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["'jcheuk@binghamton.edu'"],"application/vnd.google.colaboratory.intrinsic+json":{"type":"string"}},"metadata":{},"execution_count":24}]},{"cell_type":"code","source":["#this also works too\n","first = \"joshua\"\n","last = \"cheuk\"\n","\n","def email(first,last):\n"," # this is telling the email to use two variables: first, last\n"," first = first[0].lower()\n"," last = last[:6].lower()\n","\n"," user_name=f\"{first}{last}@binghamton.edu\"\n"," return user_name\n","\n","email(first,last)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":35},"id":"ZYEV86G7lKeY","executionInfo":{"status":"ok","timestamp":1708635028578,"user_tz":300,"elapsed":11,"user":{"displayName":"Joshua Cheuk","userId":"09800220979386665615"}},"outputId":"6d59d852-6c66-462c-ebdb-31ea3bf8c525"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["'jcheuk@binghamton.edu'"],"application/vnd.google.colaboratory.intrinsic+json":{"type":"string"}},"metadata":{},"execution_count":27}]},{"cell_type":"markdown","source":["*Exercise #3*\n","\n","\n","* Let’s pretend we are celebrity gossip columnists and we want a program that will smash two celebrities’ names together\n","* Like Brad + Jennifer = Bennifer\n","* Create a function that takes two names and prints off a few different options\n","* First letter of the first name + the second name\n","* First three letters of the first name + second name\n","* Come up with one more option on your own\n"],"metadata":{"id":"r_QyZAGulZm2"}},{"cell_type":"code","source":["#brackets are used for lists\n","# squiggly brackets are used for dictionaries\n","\n","# name1 = Brad\n","# name2 = Jennifer\n","\n","## THIS IS WRONG I NEED TO FIX THIS\n","def name_smash(name1,name2):\n"," name1 = name1[0]\n"," name2 = name2[1:].lower() # this gets the rest of the letters of name 2 MINUS THE FIRST LETTER\n"," name1_option1 = name1[0:1]\n"," name2_option1 = name2[0:3].lower()\n"," name2_option2 = name2[:4]\n"," name1_option2 = name1[0:1].lower()\n","\n"," smashedname = f\"{name1}{name2} + {name1_option1}{name2_option1} + {name2_option2}{name1_option2}\"\n"," return(smashedname)\n","\n","name_smash(\"Brad\",\"Jennifer\")\n"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":35},"id":"EmE9loDpkae5","executionInfo":{"status":"ok","timestamp":1708636054793,"user_tz":300,"elapsed":28,"user":{"displayName":"Joshua Cheuk","userId":"09800220979386665615"}},"outputId":"6702286d-c3cd-4c03-8589-124bfc6ab70e"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["'Bennifer + Benn + ennib'"],"application/vnd.google.colaboratory.intrinsic+json":{"type":"string"}},"metadata":{},"execution_count":47}]},{"cell_type":"code","source":["# Exercise #4\n","# Create a function that will loop through a list of numbers and create a new\n","# list with any number that is greater than 10\n","# Have your function return that new list once it’s complete\n","# Use the docstrings to explain your function (description, parameters, returns)\n","#and call the documentation\n","# Tip: You will have to initialize your list of numbers outside the function\n","\n","\n","list1 = [1,2,3,4,5,24,21,124,112]\n","list2 =[]\n","\n","def loop():\n"," for numbers in list1:\n"," if numbers > 10:\n"," list2.append(numbers)\n"," else:\n"," pass\n"," return list2\n","loop()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"IzHCzI5apd5D","executionInfo":{"status":"ok","timestamp":1708636418637,"user_tz":300,"elapsed":217,"user":{"displayName":"Joshua Cheuk","userId":"09800220979386665615"}},"outputId":"50f9669d-723a-4265-84e3-7f2aa8be6846"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["[24, 21, 124, 112]"]},"metadata":{},"execution_count":55}]}]}