Skip to content

Instantly share code, notes, and snippets.

@priyankas0525
Created September 26, 2020 23:03
Show Gist options
  • Save priyankas0525/20fd559d563514b2962ae98352e3e901 to your computer and use it in GitHub Desktop.
Save priyankas0525/20fd559d563514b2962ae98352e3e901 to your computer and use it in GitHub Desktop.
Created on Skills Network Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<center>\n",
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/Logos/organization_logo/organization_logo.png\" width=\"300\" alt=\"cognitiveclass.ai logo\" />\n",
"</center>\n",
"\n",
"# Loops in Python\n",
"\n",
"Estimated time needed: **20** minutes\n",
"\n",
"## Objectives\n",
"\n",
"After completing this lab you will be able to:\n",
"\n",
"- work with the loop statements in Python, including for-loop and while-loop.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Loops in Python</h1>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p><strong>Welcome!</strong> This notebook will teach you about the loops in the Python Programming Language. By the end of this lab, you'll know how to use the loop statements in Python, including for loop, and while loop.</p>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Table of Contents</h2>\n",
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
" <ul>\n",
" <li>\n",
" <a href=\"#loop\">Loops</a>\n",
" <ul>\n",
" <li><a href=\"range\">Range</a></li>\n",
" <li><a href=\"for\">What is <code>for</code> loop?</a></li>\n",
" <li><a href=\"while\">What is <code>while</code> loop?</a></li>\n",
" </ul>\n",
" </li>\n",
" <li>\n",
" <a href=\"#quiz\">Quiz on Loops</a>\n",
" </li>\n",
" </ul>\n",
" <p>\n",
" Estimated time needed: <strong>20 min</strong>\n",
" </p>\n",
"</div>\n",
"\n",
"<hr>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"loop\">Loops</h2>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3 id=\"range\">Range</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Sometimes, you might want to repeat a given operation many times. Repeated executions like this are performed by <b>loops</b>. We will look at two types of loops, <code>for</code> loops and <code>while</code> loops.\n",
"\n",
"Before we discuss loops lets discuss the <code>range</code> object. It is helpful to think of the range object as an ordered list. For now, let's look at the simplest case. If we would like to generate a sequence that contains three elements ordered from 0 to 2 we simply use the following command:\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Use the range\n",
"\n",
"range(3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/PY0101EN/Chapter%203/Images/LoopsRange.png\" width=\"300\" />\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3 id=\"for\">What is <code>for</code> loop?</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The <code>for</code> loop enables you to execute a code block multiple times. For example, you would use this if you would like to print out every element in a list. \n",
"Let's try to use a <code>for</code> loop to print all the years presented in the list <code>dates</code>:\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This can be done as follows:\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# For loop example\n",
"\n",
"dates = [1982,1980,1973]\n",
"N = len(dates)\n",
"\n",
"for i in range(N):\n",
" print(dates[i]) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The code in the indent is executed <code>N</code> times, each time the value of <code>i</code> is increased by 1 for every execution. The statement executed is to <code>print</code> out the value in the list at index <code>i</code> as shown here:\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/PY0101EN/Chapter%203/Images/LoopsForRange.gif\" width=\"800\" />\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this example we can print out a sequence of numbers from 0 to 7:\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Example of for loop\n",
"\n",
"for i in range(0, 8):\n",
" print(i)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In Python we can directly access the elements in the list as follows: \n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Exmaple of for loop, loop through list\n",
"\n",
"for year in dates: \n",
" print(year) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For each iteration, the value of the variable <code>years</code> behaves like the value of <code>dates[i]</code> in the first example:\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/PY0101EN/Chapter%203/Images/LoopsForList.gif\" width=\"800\">\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can change the elements in a list:\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Use for loop to change the elements in list\n",
"\n",
"squares = ['red', 'yellow', 'green', 'purple', 'blue']\n",
"\n",
"for i in range(0, 5):\n",
" print(\"Before square \", i, 'is', squares[i])\n",
" squares[i] = 'weight'\n",
" print(\"After square \", i, 'is', squares[i])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We can access the index and the elements of a list as follows: \n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Loop through the list and iterate on both index and element value\n",
"\n",
"squares=['red', 'yellow', 'green', 'purple', 'blue']\n",
"\n",
"for i, square in enumerate(squares):\n",
" print(i, square)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3 id=\"while\">What is <code>while</code> loop?</h3>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As you can see, the <code>for</code> loop is used for a controlled flow of repetition. However, what if we don't know when we want to stop the loop? What if we want to keep executing a code block until a certain condition is met? The <code>while</code> loop exists as a tool for repeated execution based on a condition. The code block will keep being executed until the given logical condition returns a **False** boolean value.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let’s say we would like to iterate through list <code>dates</code> and stop at the year 1973, then print out the number of iterations. This can be done with the following block of code:\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# While Loop Example\n",
"\n",
"dates = [1982, 1980, 1973, 2000]\n",
"\n",
"i = 0\n",
"year = 0\n",
"\n",
"while(year != 1973):\n",
" year = dates[i]\n",
" i = i + 1\n",
" print(year)\n",
"\n",
"print(\"It took \", i ,\"repetitions to get out of loop.\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A while loop iterates merely until the condition in the argument is not met, as shown in the following figure:\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/PY0101EN/Chapter%203/Images/LoopsWhile.gif\" width=\"650\" />\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<hr>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"quiz\">Quiz on Loops</h2>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Write a <code>for</code> loop the prints out all the element between <b>-5</b> and <b>5</b> using the range function.\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-5\n",
"-4\n",
"-3\n",
"-2\n",
"-1\n",
"0\n",
"1\n",
"2\n",
"3\n",
"4\n",
"5\n"
]
}
],
"source": [
"for i in range(-5, 6):\n",
" print(i)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click **here** for the solution.\n",
"\n",
"<!-- \n",
"for i in range(-5, 6):\n",
" print(i)\n",
"-->\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Print the elements of the following list:\n",
"<code>Genres=[ 'rock', 'R&B', 'Soundtrack', 'R&B', 'soul', 'pop']</code>\n",
"Make sure you follow Python conventions.\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"rock\n",
"R&B\n",
"Soundtrack\n",
"R&B\n",
"soul\n",
"pop\n"
]
}
],
"source": [
"Genres = ['rock', 'R&B', 'Soundtrack', 'R&B', 'soul', 'pop']\n",
"for Genre in Genres:\n",
" print(Genre)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click **here** for the solution.\n",
"\n",
"<!-- \n",
"Genres = ['rock', 'R&B', 'Soundtrack', 'R&B', 'soul', 'pop']\n",
"for Genre in Genres:\n",
" print(Genre)\n",
"-->\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<hr>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Write a for loop that prints out the following list: <code>squares=['red', 'yellow', 'green', 'purple', 'blue']</code>\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"red\n",
"yellow\n",
"green\n",
"purple\n",
"bluse\n"
]
}
],
"source": [
"squares=['red', 'yellow', 'green', 'purple', 'bluse']\n",
"for square in squares:\n",
" print(square)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click **here** for the solution.\n",
"\n",
"<!-- \n",
"squares=['red', 'yellow', 'green', 'purple', 'blue']\n",
"for square in squares:\n",
" print(square)\n",
" -->\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<hr>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Write a while loop to display the values of the Rating of an album playlist stored in the list <code>PlayListRatings</code>. If the score is less than 6, exit the loop. The list <code>PlayListRatings</code> is given by: <code>PlayListRatings = [10, 9.5, 10, 8, 7.5, 5, 10, 10]</code>\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"10\n",
"9.5\n",
"10\n",
"8\n",
"7.5\n"
]
}
],
"source": [
"PlayListRatings = [10, 9.5, 10, 8, 7.5, 5, 10, 10]\n",
"i = 1\n",
"Rating = PlayListRatings [0]\n",
"while(Rating >= 6):\n",
" print(Rating)\n",
" Rating = PlayListRatings[i]\n",
" i = i + 1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click **here** for the solution.\n",
"\n",
"<!-- \n",
"PlayListRatings = [10, 9.5, 10, 8, 7.5, 5, 10, 10]\n",
"i = 1\n",
"Rating = PlayListRatings[0]\n",
"while(Rating >= 6):\n",
" print(Rating)\n",
" Rating = PlayListRatings[i]\n",
" i = i + 1\n",
" -->\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<hr>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Write a while loop to copy the strings <code>'orange'</code> of the list <code>squares</code> to the list <code>new_squares</code>. Stop and exit the loop if the value on the list is not <code>'orange'</code>:\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['orange', 'orange']\n"
]
}
],
"source": [
"squares = ['orange', 'orange', 'purple', 'blue', 'orange']\n",
"new_squares = []\n",
"i = 0\n",
"while(squares[i] == 'orange'):\n",
" new_squares.append(squares[i])\n",
" i = i + 1\n",
"print (new_squares)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click **here** for the solution.\n",
"\n",
"<!-- \n",
"squares = ['orange', 'orange', 'purple', 'blue ', 'orange']\n",
"new_squares = []\n",
"i = 0\n",
"while(squares[i] == 'orange'):\n",
" new_squares.append(squares[i])\n",
" i = i + 1\n",
"print (new_squares)\n",
" -->\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<hr>\n",
"<h2>The last exercise!</h2>\n",
"<p>Congratulations, you have completed your first lesson and hands-on lab in Python. However, there is one more thing you need to do. The Data Science community encourages sharing work. The best way to share and showcase your work is to share it on GitHub. By sharing your notebook on GitHub you are not only building your reputation with fellow data scientists, but you can also show it off when applying for a job. Even though this was your first piece of work, it is never too early to start building good habits. So, please read and follow <a href=\"https://cognitiveclass.ai/blog/data-scientists-stand-out-by-sharing-your-notebooks/\" target=\"_blank\">this article</a> to learn how to share your work.\n",
"<hr>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Author\n",
"\n",
"<a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>\n",
"\n",
"## Other contributors\n",
"\n",
"<a href=\"www.linkedin.com/in/jiahui-mavis-zhou-a4537814a\">Mavis Zhou</a>\n",
"\n",
"## Change Log\n",
"\n",
"| Date (YYYY-MM-DD) | Version | Changed By | Change Description |\n",
"| ----------------- | ------- | ---------- | ---------------------------------- |\n",
"| 2020-08-26 | 2.0 | Lavanya | Moved lab to course repo in GitLab |\n",
"| | | | |\n",
"| | | | |\n",
"\n",
"<hr/>\n",
"\n",
"## <h3 align=\"center\"> © IBM Corporation 2020. All rights reserved. <h3/>\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python",
"language": "python",
"name": "conda-env-python-py"
},
"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.6.11"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment