 Besides numbers, Python can also manipulate strings, which can be expressed in several ways that can be enclosed in either single quotes or double quotes. So the typical example for these kind of things is the hello world. This is the hello world with the single quotes. And this is with the use of double quotes doesn't make any difference. But we have to be careful not to mix the two different kind of quotes because it's going to result in an error such as this one where it starts with single quotes and ends with double quotes and we're getting an end of line error, which means that the Python interpreter started processing the string started with a single quote was looking for the second single quote to end the string and he didn't find it. So the question arises, what do we do when we want to use either a single quote or a double quote inside our string? The easiest way to do it is to use the one that is not going to be included in the strings such as this or the other way around like this. There are other ways that we can do that. And the easiest way to do it is with the use of the slash which tells the Python interpreter to ignore the slash that the quote that is following the slash and take it as a row character. And easy the easiest way to showcase that is this one. So the first single quote over here is not being interpreted as the end of the string rather than a single character that is part of the overall string. But we have to be very careful when we're using the box slash because it can be used also to designate some special characters inside strings. So let's have an example of that. Let's have a string variable which contains this is a large string with multiple and if we go and say print hello, we're going to get multiple lines because the box slash n designates to Python that we want to create a new line. And this might be particularly problematic if we want to use file paths as we're trying to tell to a Python script where the file that we're going to use is found. So if we use forward slashes, such as x equals C, you text txt, and we print that x, everything looks good. But if we use box slashes, like the windows file path usually is, we will get something like that x equals C, new text dot txt. And we go and try to print that. Things didn't work very well for us because we have the box slash and which as we have seen designated that we want a new line. And we have also the box slash T, which is essentially a tab space being created in our string. So as you know, by now, everything can be done in Python with multiple ways and there are multiple solutions for us. The first one would be to use the R character right before the first quote to designate to Python that this is a row string and it should be treated as such. So all the slashes and the special characters are going to be disregarded by the Python interpreter. Let's see that. So x equals R C, new text dot txt, print x, it worked. And another way to do that is to use double blocks, box slashes, blocks slashes. And we would have to write something like this, new text dot txt. And it worked for us. Some mathematical operators can be used on strings as well. Using the plus operator, we can concatenate strings such as word equals hello plus word. And also we can use the star, the multiplication operator to multiply how many times we want the string to appear to us. So if we have something like that, word times five, we would get the contents of the variable word five times. Another interesting example would be the following. X equals five and y equals two. And let's say that z in this case is going to be x plus y. If we go and print z, the answer is not going to be seven, it's going to be 52, because Python is treating these two variables as strings and not as integers in this case. So it's just putting together the contents of one string with the other string. Another useful operation on strings is that they can be subscripted. Just keep in mind that the ordering numbering of a string starts with zero. So if we want to, let's say, get the fifth element of a string variable that would be easily achieved if we do something like that word. So that means give me the fifth element of the variable word. Again, since the subscript starts with zero, four is not the fourth character, it's the fifth one. And that's why we got the O. If we wanted the first two characters of this variable, we would have to do something like that. Give me everything from zero up to, but not including the third one. So we got the first two, zero and one. Another example, let's say we wanted to get the third to the fifth character. So that would be, and we got that. In case we wanted something different, if we wanted everything from the start to a certain point from the first character of a string to up to a certain number part of the string, or everything after a specific part of the string, the first, the starting point or the ending point can be omitted. So we could get something like that. Let's say we wanted everything up the first two characters, it would be something like that. Or everything after the first two characters, that would be something like that. Something that is rather important to note here is that in Python strings cannot be changed. So if we try to assign a different character or another string into an indexed position of an existing string, that is going to lead us to an error, such as we want to take the first element in the string word and assign the character X, no, that cannot be done. However, it is really easy to create a new string with the combined content of some characters and existing strings. I want to get X plus so and we could get that and save it in a brand new variable string. One other thing that I want to note over here is that thankfully, Python is very forgiving if we make certain errors in the subscript subscript limits, such as if we don't remember or we don't know what is the upper limit of a string variable, and let's say we want everything from zero to 1000, this will be treated as zero to the end of it. It's not going to get us a bunch of empty space. And the same thing happens if we try to do something nonsensical, such as get me everything from the third to the second, it's going to give us the empty string. Additionally, we can use negative numbers to get some interesting results when we want to, when we use them as subscripting arguments, such as if we put the minus one, we get the very last character. If we use minus two, we get that second to last character. And if we use something like that, minus two till the end, we get the last two characters. Or if we transpose that, we get everything but the last two characters. And one last thing that I wanted to mention over here is that minus zero is zero. So we're getting the very first character. And the last thing that I would like to mention as I'm talking about strings, I'm not going to get any deeper right now. We will go out and focus on strings a little bit further down the course, is that we can always use a very useful function, which is called length, meaning the length of a string. And we can figure out over here easily that the variable word is of length 10.