The name of this video is data types. So in the lesson on variables I did go into and touch on data types and some data types that we'll be using and data types that are really common in a lot of programming, not just Python programming. So things like integers, floats which are real numbers, strings which are character based, Booleans, true/false statements. I talked a little bit about, conditions around those and how we use them. And so I created this code where, some of these things are coming in through inputs. They don't always have to be come in through inputs. They could be, written directly in the code like the string or the Booleans. And there's a couple other types that I didn't go into in the lesson that are unique to working with Rhino script. So what I'm going to do is I'll run this. And until up at the top of the command line right, it's asking me to put in an integer. I'll just hit enter to input the default that's listed there. I select a box, I click on that poly surface, select a curve, select that, it's like the surface, click on that and then select a point, okay? And it prints those things out, so in my output, I printed out all those variables and it prints everything out. And it's printing out the integers, the numbers, that string that I wrote one of the Boolean fields at the bottom. The only thing that might seem strange here is in this variable called point, I input a point and it's outputting actually three things that are separated by commas, and that's the XYZ values of that point. So that's what it took as input. Now I've given these things names that try to suggest what they're what they're holding. Maybe the only one here I would edit would be x because I'm not really sure what type x is. So I might add int to the beginning of that, and let's say change that to a capital X. So it's telling me it's probably holding an integer and then that's something to do with an x value, maybe that I use the code. So if we run this again, input an integer five yes input number, select a box, select a curve, select a surface, and then select a point. So it's throwing an error, which I saw in the last same error which is a very common first programmer error. So name x is not defined and then it's telling me the trace back line 26. So we're going to have a line 26 I see it's printing x. So then I remembered I changed, right my variable up here from X to into x. So I need to make sure that's going to be the same everywhere in the code, so I just need to input that there and that should work fine. So, even though the names of the variables suggest what they might be holding, I don't actually really know if what is in bln01 is actually a Boolean type. Data type or not, I don't know if intx is actually a boolean data type or not. I mean, I could print them out, which I've done and then look at them to analyze them, but it might actually not give me the full information that I need in terms of determining its type. Now why I would want to find out its type? Well, we're going to find it's useful later because when you're trying to run a code and debugging and you're getting errors, maybe you're giving some function, the wrong type of data. It's asking for a particular type of data and you and it's saying you're giving it the wrong thing. So, to hunt that to down, you might need to figure out, well what type of data is being held in there. So I could take this print statement and just copy all these lines. Instead of printing out the variable, I'm going to add a little line of code. We'll add a function called type, which is a Python function, which I talked about in the lesson. And we can just paste that in front of all of these, And we can just go right down the row here, cut, paste them. Okay, now what we are doing with this is we're not printing out what the variable is holding up here we're printing out the type of data that that variable is holding. So that all this function does is it asks, it looks inside the variable that I have between the parentheses here in it and it tells me it's going to tell me well, because I'm printing it out, it's going to show me what the type of data is. So let's do that. We'll run this again, input integer 5 as input number, hit Enter, select a box, select that box, select this curve over here. Select the surface I've drawn in the middle and select that point. So now it comes back and it's printing out a whole bunch of data. So it's still printing out all my, what's held all the data, the Tilden my variables, and now it's telling me the type. So selling me indeed the first one's holding an integer the next one's holding a flute. That's str for string, bol for bool. But then I have three things called GUID and a row and then I have something called a 3d point. So these I didn't see in the lesson. And these are ones that are unique to Rhino script. So with these three under the GUID. And we've talked about this before when I get an object or a piece of geometry, what it's bringing in is the actual ID. That is a particular datatype. When I bring in a point, these three values XYZ when I select that point in space, it sees it as a particular data type called point 3D. So we might along the way get introduced to other data types. These are the main ones that we're going to look at. Particularly important will be the GUID, we'll get this a lot and errors something will be asking for a GUID and we're not giving it We're giving it something else. So you will, see that type come up a lot. [COUGH] I guess lastly here, one of the things I want to make clear is that these variables could be anything that again, there's nothing structural or functional in the fact that I'm calling this string Val, that it's holding a string in it. This could hold an integer, it's going to work just fine. The boolean could hold, actually let's go back here. Let's cut and paste this. I put that here and I can put it like a five there. We could change the name. We could say I'm not a curve. As long as that's repeated exactly as I wrote it now, it doesn't have many spaces in it or start with a number or have any funky characters. So to make sure we place it everywhere, there's also nothing in these messages that I have within these functions that makes it that affects its operation. So this I could say select a dog. This could be input a cat, And everything should probably work just fine. Right one more time, input integer five s input a cat. Select a box, select a curve, select a dog. I know I need to select the surface. So select the point. I'm not getting an error, everything is running fine. So this does tell me that now that Boolean01 is now a string and string Val is now an integer. All right, so the datatypes don't lie. They know what is being held in there. So one last thing here is I did talk a bit in the lesson about strings. So strings are these characters, right, like text. They're either between single quotes or double quotes, it doesn't matter. They're going to work the same there, they turn red. When I put the the text they can also include numbers which I talked about in the lesson. As opposed to maybe some other scripting courses that you might take which they might deal with the strings quite a bit, because they might be passing large bits of texts data. In this course we actually don't work with strings that much. We use them more in instances like this where we're using them as a kind of message within a function. That might be one way we use them. Another way we use them is we might, let's say in a print function, I could write maybe I wanted to because right, I don't know what they're when this prints out down at the bottom down here, I don't know what variable it's talking about. So maybe I take that variable name. If we just do it with point here, I paste it in here and I got to make it into a string by putting it in between quotes and then put a comma to separate it from the type, its going to print out point. And then it's going to tell me what type, the point is all in one line. So we'll just to end this, we'll see how that run. So I'll run this again integer and put a cat, select a box, select a curve, select a dog and select a point. So now down at the bottom, it's printing out point. So it's telling me the variable name because I put it in here and then it's telling me the type of data that's being held in that variable called point. So that's another way we would use string. We might do a cat nation that I showed in the in the lesson, but generally we're using it in those ways as either messages or to or to label something in this course. So you can use the Python type function to find out what type of data that a variable is holding. And what I'm doing here is also demonstrating another method of assignment. You can assign multiple variables here. At once separated by commas. And if you set those equal to in brackets, the data that you want to assign to those variables in sequence, so these are all assigned in that same sequence. And they have to match in terms of numbers. If I had one more or one less of one or the other, that I'm going to run into an error. So i assign these variables and then using the function print, and then type putting in parentheses the variable, it's then going to output. It's going to tell me type and then it's going to give an abbreviation which represents the type of that variable, whether it's a string, float, Boolean, integer, or if it was, if I had a GUID here, it would show that too. So that's data types, and it's our companion to variables. And those are two very important things, the naming conventions and variables and the data types that are held in variables because these things are going to apply to topples lists and dictionaries and we'll be using them throughout the course.