Transcript for:
Introduction to Python Programming Basics

in this python tutorial you're going to learn everything you need to know to start programming in python if you want to learn python programming for data science machine learning or web development this python tutorial is the perfect place to learn python you don't need any prior knowledge in python or programming in general i'm going to teach you everything from scratch i'm mosh hamadani and i've taught millions of people how to code through this channel if you're new here make sure to subscribe as i upload new videos every week now let's jump in and get started all right before we get started let me give you some ideas about what you can do with python that's a very common question python is a multi-purpose programming language so you can use it for a variety of different tasks you can use python for machine learning and ai in fact python is the number one language for machine learning and data science projects python is also very popular in web development using python and a framework called django you can build amazing websites here are five websites powered with python and django youtube instagram spotify dropbox and pinterest you can also use python in automation with python you can save your time and increase your productivity by automating repetitive tasks so why are you learning python are you learning it for automation for data science or web development let me know in the comment section below all right the first thing i want you to do is to head over to python.org to download the latest version of python so you go to downloads and select the latest version of python here in your downloads folder you should see this package simply double click it you're going to see this python installer if you're on windows you will see this checkbox over here add python to path make sure to check it it's really important otherwise you're not going to be able to follow this tutorial simply click on continue again one more time i agree with the terms and install the latest version of python now here you need to enter the username password of your computer so let's do that real quick next you need to install a code editor we use a code editor to write our code and execute it the most popular code editor for python is pycharm you can get it from jetbrains.com pycharm so on this page click on download you should see two different editions one is the professional edition which is commercial and we also have this community edition which is free and open source so we're going to download the community edition now in your downloads folder you should have this package let's double click it if you're on windows you're going to see an installation wizard so simply click on the next button until you install pycharm if you're on a mac you need to drag this pycharm and drop it onto the applications folder now let's open it the first time you open pycharm you have to configure a few settings we don't want to spend time on this so over here we're going to click on skip remaining and set defaults now let's create a new project over here we can specify the location and the name of our python project so let's append hello world to this path this is where our python project is going to be saved so let's click on create in this window you can see the content of our project so here's our hello world project currently we have only one folder inside this project that is vn which is short for virtual environment we'll talk about virtual environments in the future so currently we don't have any python files inside this project a real application can consist of tens or hundreds or even thousands of python files so let's right click on the project name and go to new python file we're going to call this file up now we can collapse this project window by clicking on this icon so now we have more space let's write our first python code we're going to write print all in lowercase then add parentheses then add quotes either single quotes or double quotes and inside this code we're going to write hello world so this is what we call a string a string means a string or sequence of characters in simple words that means textual data so in python and in many other programming languages whenever we're dealing with textual data we should always surround our text with quotes in python we can use single or double quotes now this print you see here is a function built into python and we can use it to print a message on our application window so let me show you how to run this code on the top we go to the run menu and then select run note that there is a shortcut associated with this command i always use shortcuts because they increase my productivity so let's click on this now select app and over here you can see this little window this is what we call the terminal window and it shows the output of our program so here's the hello world message printed in the terminal window now as you learn more python you will learn how to build applications that have a graphical user interface that's an advanced topic so for now let's not worry about it alright now let's talk about variables we use variables to temporarily store data in a computer's memory for example we can store the price of a product or someone's name their email their age and so on let me show you so to declare a variable we start by typing a name for that variable let's say age then we add an equal sign and then we type a value let's say 20. so with this we're storing the number 20 somewhere in our computer's memory and we're attaching this age as a label for that memory location so now we can read the value at this memory location and print it on the terminal so instead of printing hello world we want to print the value of the age variable so i'm going to delete what we have inside parenthesis and type age note that i'm not adding quotes because if i run this program we'll see the text h on the terminal we don't want that we want the value of the age variable so let's remove the quote and print the value of the age variable now here on the toolbar you can click on this play icon to run your program or you can use the shortcut that i showed you in the last video so the shortcut is over here on a mac that's ctrl shift and r so there you go now you can see the value of the age variable now we can also change the value of a variable for example on line 2 we can set 8 to 30. now when we run our program we see 30. so as you can see our program gets executed from top to bottom so this is how we can declare and use a variable now let's look at a few more examples so i'm going to declare another variable called price and set it to 19.95 so in python we can use numbers with a decimal point or whole numbers we can also declare a variable and assign it a string value so let's say first underline name so if you want to use multiple words in the name of a variable we should separate them using an underscore this makes our code more readable see what would happen if i didn't use this underline this is not easily readable so we always separate multiple words by an underscore now we set this to a string so we can use single quotes or double quotes let's say march we also have a special type of value called a boolean value which can be true or false that is like yes or no in english let me show you so i'm going to declare another variable called is online and set it to true we could also set it to false what we have here is called a boolean value now note that python is a case sensitive language so it's sensitive to lowercase and uppercase letters in this case if i use a lowercase f we can see an error over here because this is not recognized in python so false with a capital f is a special keyword in python that represents the boolean false value so this is how we can declare and use variables in python all right now here's a little exercise for you imagine we want to write a program for a hospital so we're going to check in a patient named john smith he's 20 years old and is a new patient i want you to declare a few variables to store these values use the comment box below to share your code with others in this tutorial i'm going to show you how to receive input from the user so in python we have another built-in function called input we use this to read a value from the terminal window let me show you so we add parenthesis then we type in a string here we can type a message like what is your name we had a question mark followed by a space you will see why we need this space in a second so let's run this program we get this message now we have to enter a value so we click over here now you can see that the carrot is separated from the question mark this is because of the white space that we added over here so now we have to type a value let's say john when we press enter this function will return the value that we entered in the terminal window so we can get that value and store it in a variable so let's declare a variable called name and set it to the return value of the input function now we can print a greeting message for this user so we use the print function we say hello we had a space now after the string we want to add the value of the name variable so we use a plus sign and then type name what we are doing here is called string concatenation so we're combining this string with another string now let's run our program and see what happens so what is your name mosh now we get this message hello mosh so this is how we can use the input function in python you'll learn about the three types of data in python we have numbers strings and booleans now there are times you want to convert the value of a variable from one type to another let me show you so we're going to use our input function to read the user's birth year so enter your birth here now this input function is going to return a value so we can store it in a variable called birth underline year okay now let's write code to calculate the age of this user so we write an expression like this currently we are in the year 2020 so 2020 minus birth year this expression or piece of code is going to produce a value so once again we can store that value in a variable let's call that variable age now let's print age on the terminal let's run our program and see what happens so my birth year is 1982. enter oops our program crashed so whenever you see this red message that indicates an error so this error occurred in this file that is our app.pi on line two right below that you can see the piece of code that generated this error so that is this expression 2020 minus birth year now below that you can see the type of error so here we have unsupported types for subtraction we have int and stir what are these well this end is short for integer and that represents a whole number in programming so 2020 is an example of an integer now birth year is an example of a string because whenever we call the input function this function would return a value as a string even if we enter a number in other words when i entered 1982 this input function returned a string with these characters 1982 so this string is different from the number 1982 they're completely different types so in this case let me delete these lines the reason we got this error is that we try to subtract a string from an integer so our code looks like this 1982 now python doesn't know how to subtract a string from an integer so to solve this problem we need to convert this string to an integer now in python we have a bunch of built-in functions for converting the types of our variables so we have this end function we can pass our burst here to it and this will return the new numeric representation of the birth year so to solve this problem we need to replace the string with the end function so let's see what's going on here on the first line we call the input function this returns a string on the second line we pass the string to our end function the in function will return the numeric representation of the burst year then we subtract it from 2020 we get the age and store it in the age variable now let's run our program so 1982 and there you go i'm 38 years old so this is how the in function works now we also have another built-in function called float that is for converting a value to a floating point number a floating point number in python and other programming languages is a number with a decimal point so 10 is an integer and 10.1 is a float so we have int we have float and we also have bool for converting a value to a boolean and finally we have stir for converting a value to a string so these are the built-in functions for converting the type of our variables now here's a little exercise for you i want you to write a basic calculator program so here we have to enter two numbers we can type a whole number or a number with a decimal point and then our program will print the sum of these two numbers so pause the video spend two minutes on this exercise and then see my solution all right first we're going to call our input function to read the first number we get the result and store it in a variable called first now let's declare another variable called second and read the second number now we calculate the sum so that is first plus second now let's see what happens when we print sum on the terminal so i enter 10 and 20 but instead of 30 we get 10 20. this is because we're combining or concatenating two strings so as i told you before the input function returns a string so this line will be equivalent to first equals 10. we're dealing with a string not an integer similarly second is going to be 20 as a string so when we combine two strings 10 plus 20 will get 10 20 because we're dealing with textual data okay so to solve this problem we need to convert the values we read to their numeric representation so over here we're going to pass first to our int function and here as well now let's run our program so we enter 10 and 20 we get 30. what if we enter a floating point number so 10.1 and 20. we got an error so to solve this problem we need to treat both these values as floats so instead of the in function we're going to use the float function now let's run our program one more time we enter a whole number and a floating point number so the result is correct now let's add a label over here so sum is plus sum let's run our program one more time 10 and 20. once again we got an error the error is saying that python can only concatenate strings not floats to strings so on line four we have a string we're concatenating this with a float because the result of this expression is a floating point number we're adding two floats so the result is a float as well so python doesn't know how to evaluate code like this it doesn't know how to concatenate a float to a string to solve this problem we need to convert sum to your string so this is where we use the stir function now let's run the program again so 10 plus 20.1 and here's the result and one last thing in this example i'm calling the float function at the time we want to calculate the sum of these two numbers but this is not a requirement we can call the float function over here so this input function returns a string we can pass that string to our float function take a look so float parenthesis like this so the value that we're passing to the float function is the value that is returned from the input function similarly we call the float function over here now we can change this expression to first plus second that is another way to write this piece of code so type conversion is important in python and other programming languages there are times you need to convert the type of variable to a different type in this tutorial i'm going to show you a bunch of cool things you can do with strings in python so let's start by declaring a variable called course and set it to python for beginners now this string that we have over here is technically an object an object in python is like an object in the real world as a metaphor think of the remote control of your tv this remote control is an object and it has a bunch of capabilities it has a bunch of buttons for turning your tv on turning it off changing the volume and so on now in this program this course variable is storing a string object this string object has a bunch of capabilities so if we type course dot you can see all the capabilities available in a string object these are basically functions that you can call just like the print or input functions the difference is that the print and input functions are general purpose functions they don't belong to a particular object but the functions you see over here are specific to strings now more accurately we refer to these as methods so when a function is part of an object we refer to that function as a method so let's look at a few examples here we have a function or a method called upper and we use that to convert a string to uppercase so if we print course.upper and run this program they can see our course in uppercase pretty useful now what you need to understand here is that this upper method does not change our original string it will return a new string so right after this if we print course you can see that our course variable is not affected so the upper method returns a new string now similarly we have another method called lower for converting a string to lowercase we have a method called find to see if our string contains a character or a sequence of characters for example here we can pass y and this will return the index of the first occurrence of y in our string so in python the index of the first character in a string is 0. so here we have 0 1 2 3 4 and so on so when we run this program you're going to see one on the terminal because the index of y is 1. take a look first i'm going to delete this line we don't need it anymore also let's do this line let's run the program there you go now as i told you before python is sensitive to lowercase and uppercase letters so if i pass an uppercase y here this find method returns negative 1 because we don't have an uppercase y in this string we can also pass a sequence of characters for example 4. so this will return the index of the word 4. take a look so it's 7. now there are times we want to replace something in a string with something else to do that we use the replace method replace so we can replace 4 with a string containing the number 4. take a look so python for beginners obviously if you look for a character or a sequence of characters that don't exist in our string nothing is going to happen for example if we try to replace x with 4 obviously we don't have x here so nothing is going to happen also just like the upper method the replace method is not going to modify our original string so it's going to return a new string this is because strings in python and many other programming languages are immutable we cannot change them once we create them whenever we want to change your string we'll end up with a new string object in memory now one last thing i want to cover in this tutorial there are times you want to see if your string contains a character or a sequence of characters one way to do that is using the find method that we talked about so let's see if our string contains python now when we run this program that is the index of the first occurrence of the word python in our string now in python we can also use the in operator so we can write an expression like this we type a string python then we type in this is a special keyword in python this is what we call the in operator so after that we type the name of our variable so with this expression we're checking to see if we have python in course as you can see python code is very readable it's like plain english so when we run this program instead of seeing the index of the first occurrence of python we see a boolean value this is more desirable in a lot of cases next we're going to look at arithmetic operations in this tutorial i'm going to show you the arithmetic operators that we have in python these are the same arithmetic operators that we have in math for example we can add numbers we can subtract them multiply them and so on so let's print 10 plus 3. let me run this program we have 13. so this is the addition operator we also have subtraction we have multiplication and division now technically we have two different types of division operators we have a division with one slash and another with two slashes let's look at the differences if you use a single slash we get a floating point number that is a number with a decimal point but if we use double slashes we get an integer a whole number we also have the modulus operator that is indicated by a percent sign and this returns the remainder of the division of ten by three so that is one and finally we have the exponent operator that is indicated by two asterisks so this is 10 to the power of three so when we run this we get a thousand now for all these operators that you saw we have an augmented assignment operator let me explain what it means so let's say we have a variable called x and we set it to 10. now we want to increment the value of x by 3. so we have to write code like this x equals x plus 3. when python executes this code it's going to evaluate this expression or this piece of code the result of this expression is 10 plus 3 which is 13. then it will store 13 in the x now there is another way to achieve the same result using less code we can type x plus equal three what we have on line three is exactly identical to what we have on line two so what we have here is called the augmented assignment operator so we have this assignment operator but we have augmented or enhanced it now here we can also use subtraction to decrease the value of x by 3 we can use multiplication and so on so these are the arithmetic operators in python all right let me ask you a question i'm going to declare a variable called x and set it to 10 plus 3 times 2. what do you think is the result of this expression this is a basic math question that unfortunately a lot of people fail to answer the answer is 16. here's the reason in math we have this concept called operator precedence and that determines the order in which these operators are applied so multiplication and division have a higher order so this part of the expression gets evaluated first so 2 times 3 is 6 and then the result is added to 10. that is why the result of this expression is 16. now in python operator precedence is exactly like math but we can always change it using parenthesis for example in this expression if you want 10 plus 3 to be evaluated first we can wrap it in parenthesis so like this now when we execute this code we're going to see 26 because 10 plus 3 is 13 and that divided by 2 is 26. let's verify this so print x and we get 26. so you learn about the arithmetic operators in python now in python we have another set of operators called comparison operators we use these operators to compare values let me show you so i'm going to declare a variable called x and set it to an expression like this 3 is greater than 2. so what we have here this piece of code this expression is called a boolean expression because it produces a boolean value so in this case because 3 is greater than 2 the result of this expression is the boolean true so if we print x we get true on the terminal so here is the greater than operator we also have greater than or equal to we have less than we have less than or equal to here is the equality operator which is indicated by two equal signs do not confuse this with the assignment operator so here we're comparing three and two for equality so if we run our program we see false because 3 does not equal to 2. so here's the equality operator we also have the not equality operator that is indicated by an exclamation mark followed by an equal sign so let's quickly recap here are the comparison operators we have in python greater than greater than or equal to less than less than or equal to equal and not equal these operators are extremely important in real python programs because quite often we have to compare values to evaluate certain conditions you're going to see that soon in python we have another set of operators called logical operators we use these operators to build complex rules and conditions let me show you so i'm going to declare a variable called price and set it to 25. now let's print a boolean expression like this price is greater than 10. now let's say we want to check to see if the price is between 10 and 30. this is where we use the logical and operator so we type and and right after that we type another boolean expression surprise less than 30. so with this and operator if both these boolean expressions return true the result of this entire expression will be true take a look so in this case we get true because the price is between 10 and 30 dollars we also have the or operator with the or operator if at least one of these boolean expressions returns true then the result of this entire expression will be true to demonstrate this i'm going to change price to 5. let's see how python is going to execute this code so first it's going to look at this boolean expression is price greater than 10 no it's not so it will keep going then it will look at the second boolean expression is price less than 30 it sure is so the result of this entire expression will be true take a look there you go we also have the not operator which basically inverses any values that you give it let me show you so we're going to have one boolean expression price greater than 10. the result of this expression is false now if you apply the not operator this will inverse false to true so when we run the program we get true so let's quickly recap in python we have three logical operators we have logical and which returns true if both expressions return true we have logical or which returns true if at least one expression returns true and we have not which inverses any value that we give it in this tutorial we're going to talk about if statements in python we use if statements to make decisions in our programs for example we can declare a variable called temperature and depending on the value of this variable we can print different messages on the terminal let me show you so here's our temperature variable we set it to 35. now let's say if temperature is greater than 30 we want to print a message saying it's a hot day so we type if then we type a condition and this is where we use our comparison operators so we type temperature greater than 30. then so we add a colon and see what happens when i press enter now the character is indented and this represents a block of code so the code that we write over here will be executed if this condition is true otherwise it's not going to be executed let me show you so we're going to print it's a hot day and by the way note that here i've surrounded the string with double quotes because here we have a single quote as an apostrophe so i couldn't declare a string like this with single quotes if i typed it's a hot day look python gets confused because it thinks this single code represents the end of our string so it doesn't recognize the subsequent characters okay so that's why we use double quotes here so we can have an apostrophe in our string so it's a hot day now if i press enter again the carrot is indented so the code that right here will be part of our if block and it will get executed if this condition is true so here we can print a second message drink plenty of water now to terminate this block we press enter and then press shift and tab the carrot is no longer indented so the code that we write here will always get executed no matter what whether this condition is true or not now in c based programming languages like c plus c sharp java and javascript we present a block of code using curly braces so you start a block of code using a left brace and then end it using a right brace in python we don't have curly braces so we use indentation to represent a block of code okay so in this case these two lines are indented and that means they are part of this block of code now let's run the program and see what happens so we see these two messages because the temperature is greater than 30. now if i change the temperature to 25 and run the program again we don't see anything okay now after this block let's print done because this code is not indented it will always get executed it's not part of our if block okay so take a look here's the down message now let's add a second condition so if temperature is not greater than 30 that means it's less than or equal to 30. so i'm gonna add a second condition so if the temperature is between 20 and 30 i want to print it's a nice day so here we type l if that is short for else if and here we type a second condition so temperature greater than 20. we add a colon press enter now we have a new block so here we can print it's a nice day so if this condition is true that means the temperature is greater than 20 and less than or equal to 30. now what we have here is called a comment that is why it's grayed out it's not real code it's just some note that we add to our program python is not going to execute this so whenever we type a pound sign what we have after is treated as a comment okay so if this condition is true then we're going to see this message on the terminal let's run our program and verify this there you go the temperature is 25 that's why we see this message now we can have as many conditions as we want there are no limitations okay so let's add another condition l if temperature is greater than 10 then we're going to print it's a bit cold now in this case if this condition is true that means the temperature is greater than 10 and less than or equal to 20. now finally if the temperature is less than 10 let's print a message saying it's a cold day so here we type else then we add a colon and now we have a new block so this code will get executed if none of the above conditions are true so here we can print it's called so this is how we use if statements to make decisions in our programs here's a great exercise for you to practice what you have learned so far i want you to write a weight converter program like this so this program is asking me my weight i enter 170. next it's asking me if the weight is in kilograms or pounds so i can type k for kilograms or l for pounds i can type a lowercase l or an uppercase l it doesn't matter so let's go with a lowercase l now it tells me weight in kilogram is 76.5 so go ahead and spend 5 minutes on this exercise you can use the comment box below to share your code with others and then when you're done come back see my solution so first we call our input function to ask the first question wait we get the result and store it in a variable called weight next we call the input function one more time to ask the second question is this in kilogram or pounds we get the result and store it in a variable called unit this is where we're going to use an if statement so we want to check to see if unit equals k then we should convert the weight to pounds and print it on a terminal however with this code if i type a lowercase k this condition is not going to be true because earlier i told you that python is a case sensitive language so we need to convert this string to uppercase earlier we talked about string methods so if we type dot we can see all the functions or methods available in a string object so we use the upper method and this returns a new string in case now if this condition is true first we need to convert the weight to pounds so we declare a new variable called converted get the weight and divide it by 0.45 and then we can print this on a terminal so we say weight in pounds is then we append converted now to terminate this block we press shift and tab else colon so if this condition is not true that means the weight was entered in pounds so we need to convert it to kilograms once again we declare a variable converted and set it to weight times 0.45 and then we print weight in kilograms and here we concatenate this string with converter all right now we need to terminate this block so we press enter then shift and tab good now if we run this program we're going to see an error let me show you so let's run it here i'm going to enter 170 then i type a lowercase l okay here's an error can't multiply sequence by non-end of type float so this is where we got this error when we try to multiply the weight by 0.45 so that is line seven in our code now the reason this is happening is because the wait variable is storing a string object because earlier i told you the input function always returns a string so here we need to convert the weight to a number we can either use the end or the float function let's run the program one more time so 170 in pounds here's the second error can only concatenate string not float to string and that error occurred over here when we try to print the weight in kilograms so look at line seven in this case weight as an integer we are multiplying an integer by a float and the result of this operation is going to be a float now on line eight we are trying to concatenate or combine a string with a float and python doesn't know how to execute this code to solve this problem we need to convert this flow to a string so here we use the built-in stir function let's run the program and see what happens so 170 in pounds and here's my weight in kilograms now let's try entering a weight in kilograms so run it one more time let's say 76 kilos here we get a familiar error can only concatenate string to string not float so this error occurred on line five where we try to concatenate a string to a float so once again we need to convert this to a string object now let's run the program one more time 76 kilos is equal to 168 pounds hey guys i just wanted to let you know that i have an online coding school at codewoodmosh.com where you can find plenty of courses on web and mobile development in fact i have a comprehensive python course that teaches you everything about python from the basics to more advanced concepts so after you watch this tutorial if you want to learn more you may want to look at my python course it comes with a 30 day money back guarantee and a certificate of completion you can add to your resume in case you're interested the link is below this video in this tutorial we're going to talk about while loops in python we use while loops to repeat a block of code multiple times for example let's say we want to print the numbers one to five a poor way of doing this is writing code like this print one then print two print 3 print 4 and print 5. now why is this a bad approach well what if we wanted to print the numbers 1 to 1 million we don't want to write 1 million lines of code each line printing a number this is where we use while loops so we'll start off by declaring a variable like i and set it to our initial number let's say one then we type while and here we type a condition so once again we can use our comparison operators let's say i less than 5 less than or equal to 5. as long as this condition is true then the code that we write inside of the while block will get executed so here we type a colon then press enter now we have a block of code in this block we can print i and then we need to increment i y one so we set i to i plus one if you don't do this i will always be one and this block of code will get executed indefinitely it will never terminate basically our program will continue running until it runs out of memory so in the first iteration i is 1 is less than 5 so python is going to execute this block of code it will print 1 on the terminal and then i becomes 2. then the control moves back over here so python evaluates this condition 2 is less than or equal to 5 so the condition is true and once again python is going to execute this block one more time in the second iteration we're going to see two on the terminal and then i will become three so this will continue until this condition is no longer true let me show you so let's run this program now we see the numbers one to five so this is the beauty of while loops i can easily change five to one thousand and by the way i'm separating these three digits using an underscore this makes my number more readable we don't have to add this but it just makes our code more readable so let's run the program now we see the numbers 1 to 1000. it's much easier than 1000 lines of code each printing a number okay now let me show you something really cool so i'm going to change this to 10. now instead of printing i i want to print an expression so i'm going to multiply i by a string an asterisk now you might be confused here because earlier i told you that in python we cannot concatenate a number to a string but here i'm using the multiplication operator well this is different we can multiply a number by a string and this will repeat that string based on the value of that number so if i is one we're gonna see one asterisk if i is five we're going to see five asterisks let me show you so when we run this program we see this triangle shape because in the first iteration i is one so we see one asterisk in every iteration i is incremented by one so we see one extra asterisk and finally in the last iteration i is 10 and we see 10 asterisks on the terminal so you have learned about three types of data in python we have numbers which can be integers or floats we have booleans and strings these are what we refer to as primitive or basic types in python now in python we have a bunch of complex types as well these complex types are very useful in building real applications in this tutorial we're going to talk about lists we use lists whenever we want to represent a list of objects like a list of numbers or a list of names let me show you so i'm going to declare a variable called names and set it to a list of names so here we add square brackets to represent a list and now we can add one or more objects inside this list in this list we add a bunch of names like john bob marsh sam and mary so we separate this element these items using a comma okay now let's print our list so print names take a look it comes out exactly like how we wrote it now we can also get individual elements in this list for example if we want to get the first element in this list here we type a pair of square brackets and inside the square brackets we type an index the index of the first element in this list is zero so now when we run this program we're going to see john on the terminal there you go now in python we can also use a negative index this is a feature that i personally have not seen in other programming languages so if 0 represents the first element in this list what do you think negative 1 represents it represents the last element in this list let's verify it so let's run the program and here's mary what about negative 2 well that represents the second element from the end of the list so let's run the program and here's some then we can also change an object at a given index for example let's say here we made a mistake and this john should not be spelled with an h so we need to reset it we type names of zero now we treat this like a regular variable so we set it to a new value we set it to john without an h now let's print our list and here's our updated list beautiful we can also select a range of values for example let's say we're only interested in the first three names so over here we type square brackets and here we need to type two indexes a start index and an end index our start index is a zero because we want to start from here and our end index is going to be zero one two plus one that's going to be three so we add a colon three so python is going to return all the elements from the start index up to the end index but excluding the end index so it's going to return the elements at index 0 1 and 2. take a look here are the first three names and by the way this expression does not modify our original list it returns a new list so right after this print statement if we print our original list you can see that it's not changed so this is how we use lists in python earlier i told you that strengths in python are objects objects in programming are kind of like objects in the real world like your mobile phone your bicycle the remote control of your tv and so on they have certain capabilities so if we type a string here and then press dot we can see all the functions or methods available in a string object in python now lists are also objects so they have a bunch of methods for adding items or removing them and so on let me show you so i'm going to declare a list of numbers let's say 1 2 3 4 and 5. now to add a new element at the end of this list we can use the append method so we type numbers that append and here we type 6. now let's print our list so here's our updated list beautiful now what if you want to insert a number somewhere in the middle or at the beginning for that we use the insert method so we're going to call the insert method now on the top go to the view menu and look at parameter info look at the shortcut on a mac computer it's command and p on windows it's probably control and p if we use this shortcut we can see the values that this method expects so the first value that this method expects is an index value and the type of this value is an integer so if i want to insert a value at the beginning of this list i should pass 0 as the index of the first element right so let's pass 0. now the second value is highlighted so the second value is an object and the type of this is t that basically means this can be any type we can pass a number we can pass a boolean we can pass a string we can pass a list or any type of objects in python so i'm going to pass negative 1. now let's run our program you can see negative 1 appeared at the beginning of our list we also have a method for removing items so let's call remove three let's run the program three is gone we only have one two four and five now if you wanna remove all the items in the list we call the clear method so clear this method doesn't expect any values so let's run our program our list is empty now sometimes you want to know if a given item exists in our list or not to do that we use the in operator so let's remove this line instead of printing our numbers list i'm going to print an expression one in numbers so here we're using the in operator we're checking to see if one is in the numbers list so this is a boolean expression it returns a boolean value take a look so we get true obviously if we search for a value that doesn't exist in this list like 10 we get false okay now finally there are times you want to know how many items you have in the list to do that you can use the built-in lend function so let's print len of numbers so len is a built-in function just like the print function that is why it's highlighted as purple it returns the number of elements in a list take a look so we have five elements in this list when writing python programs there are times you want to iterate over a list and access each item individually let me show you so i'm going to declare a list of numbers one two three four five now if we print this list it comes out exactly like how we wrote it using the square bracket notation but what if we wanted to print each item on a separate line that is where we use the for loop let me show you so we're not going to print the entire list instead we're going to type 4 now we declare a variable which is called a loop variable let's call it item then we type in numbers next we add a colon to start a block of code so this is what we call a for loop with this for loop we can iterate over all the items in this list in each iteration this item variable is going to hold one value so in the first iteration item is going to be equal to 1 and the second iteration is going to be equal to 2 and so on so now if we print item and run our program we see each item on a new line so this is how we use a for loop now we could also achieve the same thing using a while loop but our code would be a little bit longer let me show you so we would have to start by declaring a loop variable outside of our while loop let's say i we set it to zero now we say while i is less than here we need to find out how many items we have in this list so we use the len function len of numbers as long as i is less than the length of the list print now we can use the square bracket notation to get the element at this index so numbers of i now we need to increment i by one so i equals i plus one let's run the program and see what we get so we get the numbers one to five these are coming out from our for loop and then we get the numbers one to five one more time these are coming out from our while loop now if you compare these two approaches you can definitely see that the implementation using the for loop is shorter and easier to understand we don't have to use the square bracket notation we don't have to call the len function we don't have to declare a variable a loop variable and then increment it explicitly so with the for loop in each iteration the item variable will automatically hold one value in this list in this tutorial we're going to talk about the range function in python we use the range function to generate a sequence of numbers let me show you so you type range this is a built-in function just like the print and input functions here we can pass a value like 5 and this will return a range object a range object is an object that can store a sequence of numbers let me show you so let's call that numbers so this is a range object in this object we're going to have the numbers 0 to 5 but excluding 5. now if we print numbers we're going to see this message range of zero to five not the actual numbers because this is the default representation of a range object to see the actual numbers we need to iterate over this range object using a for loop in the last video you learned how to iterate over a list using a for loop but we can also iterate over a range object using a for loop basically we can use the for loop with any object that represents a sequence of objects so instead of printing numbers we're going to use a for loop for number in numbers colon we're going to print number take a look now we see the numbers zero to four so range of five generates a sequence of numbers starting from zero up to the number we specify here now if we supply two values the first value is going to be considered the starting value and the second value is going to be considered the ending value and it's going to be excluded so range of 5 to 10 is going to generate the numbers 5 to 9. take a look there you go now we can also supply a third value and that will be used as a step so let's say instead of having a sequence of numbers like five six seven eight nine we wanna jump two numbers at a time so 5 7 9 and so on so here we pass 2 as the step take a look so we get these odd numbers 5 7 and 9. so this is the range function in python like quite often you see the range function used as part of a for loop because we don't really need to store the result in a separate variable we can call the range function right here where we are using the numbers variable so we can type range of five and this will return a range object holding the numbers zero to four take a look there you go so we don't really need to store the result in a separate variable like numbers there you go in this tutorial we're going to talk about tuples in python tuples are kind of like lists we use them to store a sequence of objects but tuples are immutable which means we cannot change them once we create them let me show you so i'm going to start by defining a list of numbers 1 2 3. now we use square brackets to define a list and parenthesis to define a tuple so now this numbers variable is storing a tuple if we try to reassign let's say the first element we're going to get an error topple object does not support item assignment so this is what i meant by tuples are immutable they're unchangeable also if you type numbers dot you don't see any methods like append insert remove and so on we only have count and index count returns the number of occurrences of an element for example if we have let's say two threes in this tuple and call count of three this will return 2. the other method we have here is index and this returns the index of the first occurrence of the given element now these other methods you see here that start with an underscore they're called magic methods it's an advanced topic and i've covered it in detail in my complete python programming course if you're interested the link is down below this video so tuples are immutable we cannot change them once we create them now practically speaking most of the time you would be using lists but there are times that once you create a list of objects you want to make sure that somewhere in your program you or someone else is not going to accidentally modify that list if that's the case then you should use a tuple hey guys i just wanted to let you know that i have an online coding school at codewoodmarch.com where you can find plenty of courses on web and mobile development in fact i have a comprehensive python course that teaches you everything about python from the basics to more advanced concepts so after you watch this tutorial if you want to learn more you may want to look at my python course it comes with a 30 day money back guarantee and a certificate of completion you can add to your resume in case you're interested the link is below this video hey