Sounds good. That pops up. There we go. Well, hello, everyone, and welcome back to Sailor Academy's live series, Introduction to Python. This is unit two. Data structures, part one, lists and strings. If this is your first time joining us, feel free to go back and check out our course on Sailor.org, and you can catch up.  If you're on the live stream, feel free to leave some, feel free to, well, the chat just disconnected, so that's great. Thanks, Google. You've been giving me a great morning. But feel free to leave a question in the chat. We'll get back to those questions. Again, if you are not up to date, you can come back, leave a comment, and they'll address any comments you have left for previous ones. But I think we didn't have any comments from last time. So before, without any more introduction from me, Dr. Eric Sack to lead you through the recap of unit four. Very good. Thank you. Thank you. So what I want to do is talk about pretty much I think really what the core of what Python is about and what it really, really has to offer. In some sense, I think what initially had set it aside, I mean, even historically as a language, people just thought through in sort of a minimal way, how to generalize the most basic structures for holding data. So you're used to the float data type. You're used to the int data type. You're used to the STR data type. And then the next, usually when you go through a classical kind of programming language, like maybe, you know, a C++ or something like that. The next step is to learn about something called arrays and arrays hold data of the same data type.  And so then what happened was people wanted to be able to program things more generally. And that meant, well, if you have an array, why do we have to be limited to the same data type? Why do we have to do that? It's good to have arrays because you compute with them and they're used all the time. And you've learned, hopefully maybe in some, you know, early math course, maybe you learned about something called a matrix. And a matrix is really, is a mathematical object that one programs using an array data structure in some computer languages. And the next step above that is to want to be able to throw anything into an array, you know, even the kitchen sink. It's not just to have one data type, but to have many, many different kinds of objects. And the path that, like a C to a C plus plus direction was to come up with this intermediate step before, and we're going to get to object oriented program. I'm going to speak a little bit about that today, a tiny bit, not as much as we get into in unit 10, but at least to go on that path that the intermediate step in between a class definition and an array definition was something called a structure. And so structures became very, you know, interesting, led to interesting ways of programming, because you could throw anything that you wanted into a structure as long as you defined it. And Python went a step further than that because in a structure, you have to go through the, you know, harassment basically of making sure that you've, you know, sort of dotted all your eyes and crossed all your T's and really developed the structure much in the same way that you would do what's called a class definition. And so Python did away with all that. Okay, we just want to have, you know, something that we're going to call an ordered, if I can spell that correctly, an ordered mutable collection of objects. And that's what a list is. It's a way to order data so that you can, so that you can refer to elements via their indices. You can sort of, you can use pointers basically to point out the objects that are contained within that list. So it kind of, it gives you the power of this, this kind of array notation that was preserved, you know, in terms of computer languages, but it allows you to do so much more. And that's what I want to talk about today. The reason that there, and so I'm going to throw these words out and we're going to use them a lot over the next three units and probably by the time we get to unit six, it'll be very, very clear. I don't want to focus so much on the concept of ordered versus unordered until I can get to data structures too or mutability versus immutability. It's important. And so when something is ordered, it basically means that you can, you can via, let's say a sequence, you can index each element within the list. And, you know, the, so the first element on the, since we start counting at zero and Python, the first element would be element zero, and then the second element would be element one. And so no matter what's in the list, and you can mix all kinds of data types together, they have some sense of ordering. You have a notion of what's first and what comes next on the list and what comes next on the list. So that's all there is to ordering. Mutability speaks to the ability to change values and you can, you can contrast this with other data types and I, you know, I think I'll avoid the issue of mutability probably to them. I may speak to it a little bit, but the mutable just means it's changeable, you know, you can change the values, let's say. And that's all there is to it. There are other, you know, data structures that are not ordered and there are other portions of data structures that are not mutable. And I think what I'd rather do is, is maybe hold that conversation off like I said, until we get to the second data structures and then it'll become immediately clear because you can compare and contrast. The only thing I want to say about ordered and mutability today is that, is that the objects are ordered, there's an ordering to them and you can change them if you want to. And that's kind of what you want, you know, from this list kind of a data structure, which generalizes the concept of an array. And I'm just, if you don't know what I'm saying, that's fine. But for those of you who may have programmed another languages, you've probably seen arrays. And this is the generalization. So that's all I want to say kind of introductory. That's really the flavor of what's going on in this module, in this unit. And so, let me come over to Replet for a second. So, and the syntax for building a list is relatively simple. You have to remember, and every language has its syntax. And this is just the way it is. You know, some languages use curly brackets. Real quick. Dr. Zach, you think you need to switch your screens? Oh, thank you. Thank you. Yes. Appreciate that. So, yeah, I'm forgetting to do that a lot lately. I don't know. Anyway, I'll take the one second to say, if you guys are curious what program this is, it's in the chat bar. I've added it. And if you're watching later, it'll be down in the description. Fantastic. Thank you. So we're over in Replet. And I'm just going to, I'm just going to build a list of stuff. I don't care what it is. The syntax is, well, let me put the number four and maybe the number five. And maybe I can put, you know, 5.6 and, you know, a string in as well. So you can see that I'm creating a list from integer data and float data and string data. And the syntax just means you, everything you want to put on the list, everything you want to put on the list. And that's what I'm going to do. And that's what I'm going to do between the left square bracket and the right square bracket. And the comma separates the values. And there really is an ordering. Like four is the, is the zero element. Five is the first element. 5.6 is the second element. And an ASDF is, it's not a very creative string, but, you know, it's still early. So I'll get better as we go on. And is the string element. It's in data structure. So the list is a built in Python data structure, just like float in. You're going to start somewhere. At some point we'll be, we'll be building up our own, you know, data structures or our own classes and so forth. But for now this is another one. And the print function again is very, very smart. It knows what to do with its own built in data types. If you use a different data type, if you build up your own class, print won't know what to do. You've got to kind of tell it what to do. But in this case you can, it'll know, it'll know to print out the elements that are on the list. Or I could print the type of a, okay. I could say print the type of this variable. And it'll tell me, Python will tell me this is a list. Okay. And notice it uses the word class next to it. So there's just a point where we can't necessarily avoid the concept of object oriented programming. Again, we get deeper into this in unit 10, but at least the cat's kind of out of the bag right now. We're revealing something here. That's incredibly important is that, is that if there's any data type in Python, it views that data type as what's called a class, which is the overarching category, you know, for that data type. So this class name is list. And whenever you have a class, you are afforded a number of options for computing with the data or the object that's contained in that class. So the class is list the object or the, I'm not going to use that word yet. The object is, is a, and then along with that, you have a series of methods that you can use that can operate on the elements of a. And so that's a nice thing to have. It's, it's, it's not like a is, has a lot more stuff than just four, five, five point six and a SDF at it. Okay. Along with that, you have, you have access to, that's interesting. You have access to a number of what are called methods to compute with. And that's kind of one of the themes of the, of this unit is, is not just, you know, the sort of one, one aspect is mastering the list, mastering how to access elements within a list. And that's where I'm going to start, but it's much, much, much, much bigger than that. The whole point is that Python is, is, is meant to give you as much flexibility, as much freedom to compute with in the simplest, most obvious kind of a way. So we'll get to the method calls in a moment for, for lists and so forth. But I just want to tell you that you, we want to think really big. We want to, we want to actually, even without getting into unit 10, we really want to consider just how powerful Python is when you, when, even when you just use their own built in data types. In this case, it's the list. And so then we could say something like this. I could say, well, now I need a way of accessing, accessing the elements within the list. Okay. And I might want to do it indirectly or directly. And so some, some data structures in Python are not ordered and that you have to use other methods to, you know, to, to access elements, but, but maybe what I want to do is I'm interested in, in the numbers four, five and five point six. And so the way that you access the elements is via an assumed implied, you know, index, you have to know how it works. So if I say print the number a zero, I print the number four because the index that's associated with this element four is zero. The index associated with the five is going to be the index, is going to be the index one. Okay. And so on and so forth. So, so the index that is associated with, is associated with the element is, is indispensable. And so often when, when I teach at the introductory level, it's for some reason, it takes students, some students, you know, a few seconds to, to wrap their head around the fact. That you can, once you create the list, the goal is to have access to the elements that are contained within the list. And so the index is, is, is an indispensable tool. And because the elements are ordered, the index is the, you know, method of choice for, for accessing elements that you create, you know, within the list. And, and that's how it works. So, and so this is, I just, I can't overemphasize. Like if I want to, you know, I could say, well, now that I've, I've referred to the number, you know, to the first element, which is five, you know, I can add, I can, I can operate on that element now. I can actually compute with that element. And so now I'm, I'm not just accessing element one, which is five. I'm performing a mathematical operation on it, which adds the number 56 to it. And so now I've actually performed a mathematical operation or, you know, you could create new variables using the assignment statement. I could say, well, take a two. And so a two in this case would be 5.6. And then maybe, you know, raise it to the fourth power or something like that, you know, and then maybe I'll say print the C. So the beauty of the indexing, and this is what students really have to get kind of early on. So I've taken a two 5.6 and raised it to the fourth power. Is that, is that these values. Okay. Can be opera operated on, you know, I mean, this is the whole reason why you create lists is because you're, you're planning on performing some type of operation on the elements. And therefore you need a way to access them. So there's the, the actual element in the list. And then there's the index, which refers to the elements on the list and nine times out of 10, what you're going to be doing when you create a list is, is you're going to be really in some sense programming with, with lists and sequenced data structures, ordered data structures. I'll get back to sequence in a second. Order data structures is to is, is really the gymnastics of indices, learning how to really manipulate the indices so that you can, you can, you know, just do interesting things with the, with the stuff that you put in the list. So that's one potential application. I'm going to take that a step further in a second. Yeah. And finally, if you wanted to, you know, you could set, you could set, you know, something like there is no A4. So in this case that the minimum index is zero one, two, and then three. So the maximum index is going to be a three. And so you're going to count from zero to three. But anyway, so let's make believe that you wanted to take the first element on the list. And, you know, you, you could set, you could either set it to a different value and set it to 567. If you wanted to. So now you can use the index to, to change values. And this is what the word, this is where the word mutable comes from is that you can change values, you know, within the, the elements within the array itself, if you, if you so choose. And, or you could, you can operate on them, you know, you could say a one is equal to a zero times 345 or something like that. And, and so now, now what can happen is, is that, is that you can, you can refer to elements, you can operate on them, and then you can, you can change other elements within the array. So, so a lot of programming oftentimes when one uses list and array types, type of types of data structures, you know, simply goes into determining how you're going to apply the indices to accomplish some kind of a calculation or some type of a manipulation, you know, or moving data around from here to there, maybe from one list to another list or something like that. Or, and so that's, as I said before, I think that the key concept when one starts out is to understand the difference between the element and the index that's referring to the element, and to really make that distinction, because as I said before, about 10 to 15% of students that I've taught, sometimes they mix that up for some reason. I don't quite understand it. Maybe it's the way it gets explained or what have you, but there is, there's the index is the key to accessing elements within, within the list. And one major application of indexing, if you were to do it this way, you don't, you don't have to, we'll see why in a second. But if you wanted to, if I've got this list with four elements and I could say for, let's say I, so we've talked about loops already. So here's one major application of, of loops. And again, I'm going to use a for loop just to, to make a point. So there is a built in function called length or LEN for length. It tells me the length of the list A. And it doesn't matter in some sense. What's in the list? We don't have to stop here, by the way, I just haven't taught you enough data structures to, to show you that you could pretty much throw anything that you want into the list. I've chosen the three data types that I've introduced so far, which is, you know, float string and integer, but you can throw anything that you want. And all the length function does is just create everything that has a comma next to it, basically, whatever it is. Like I said, if it's the kitchen sinker, what have you, it just, it counts those things between the commas. And that's, that's where the length comes from.  So for instance, I can put a list on a list, right? I could put a new list and I could say, okay, well, here's a new list. And so in this case, the, this list, the length of it would be one, two, three, four. It has five elements. Okay. Whose indices range from zero to four. And that's exactly what the range function is going to do. It's going to give you an iter, it gives you the ability to iterate the loop from, since I've specified no other information that starts, it assumes you want to start counting at zero up to the length of A minus one in steps of one. So this I variable, just to review loops, is going to, if I print out, let's say the value of I, and then maybe what I do is, I'll just do it all on one line. Let's say like this, that if you do something like this, where within the loop, you're going to print out the index because, you know, just to, as a review of the for loop, we're going to count from zero to the length of A minus one.  So this is a good exercise, a good introductory exercise to do. If you want to understand, you know, the difference between the index and accessing the element. So what I try and do in every line for, for I equals zero, A I, the Ith element, A zero is equal to four. When I is equal to one, A one is five. A two is equal to five point six. A three is equal to A SDF. And then A four is equal to this list. Okay. And so, so the whole point of this, this exercise is to recognize that, that Python, when you tell it to print an element that's on a list, if it has a way to do that, that's what it's going to do. So even though I have a list and you'll notice that list has its own indices associated with it. So, and I'll get into that in a second, because that's an important point. But, but the point is that you should be able to, if you're leaving this unit, look at a list like this and recognize that this, this list has, you know, five elements on it, whose indices range from zero to four. So, so you have to have a keen eye to know, to understand in some sense what an element is and what it could look like, because it could in fact be anything. And that's the beauty of Python is that, is that it's just, it's a very general, it doesn't really care what you put in as an element, it's a valid data type. It's a valid data structure. You could throw anything that you want in there. So again, that can be extremely powerful. Many times the way that lists are used, is they are used as a raise of numbers, right? Because you sometimes you want to compute with numbers within a matrix, let's say, or a vector or, again, I'm not going to go too far down on, on that tangent in this, in this development, but I'm just saying that, that is a very common way to use lists, but there are deeper ways of using them as well. And so I give you this example because there may be cases where you are interested in not only the value, but also the index of the value. Now, if you write other code where you don't really care about the index so much, you're just interested in the values associated with a given list, then you might say something for, you know, let's say a, and then I might say print val. So here this is, this is implicit, you know, the, there's the sort of the explicit version of this loop, which contains the index, but if I, let's say I didn't care about the index, well then what's going to happen is, and this, this word, I'm just again, kind of throwing at you, you know, it may have been brought up possibly, you know, somebody may have brought it up in, in some place in the, you know, kind of the relational operators, but it's dangerous to bring it up there because this is more of a set concept. And we haven't talked about sets yet. That's for data structures too, but the set, the concept of a set operator is that it's basically for any value that's in that set. And A is not a set, it's a list. So, you know, it's, it's a verse, in is a versatile keyword. So, but again, I don't want to go, I don't want to open up that can of worms. So anyway, but for that value in, in the list, it's just going to print the value out. So in, in one case, and then let me put something in here to break this up just to make it look nice and purdy, like that. And so in this case, what I'm doing, the second loop is just printing out the values on the list. Okay. So what's my point here? My point is that, is that I don't want to necessarily tell you, there's no good or bad way of programming something. And well, I take that back. There have been some bad programmers anyway, but what I'm trying to say is that, is that you as the expert have to decide, you know, how you would construct, let's say for example, a loop to compute something. There may be cases where you want access to the index and there may be cases where you don't. And in certain cases, if you don't care about the index, then that's fine. And, you know, I can give lots of examples where you may, or may not care about the index. Maybe I'll speak to that for about 30 seconds or so. So here maybe what I'll do, let's make believe I have a numerical list. Just again, something simple. This I always throw this out to, you know, introductory programmers, because I want programmers to learn how to program. And what do I mean by that?  And it doesn't, it's not necessarily because we don't have other methods or functions or utilities that will be able to make certain computations. So for example, let's make believe I've got the numbers four, five, six and seven on my list. So it's not a very interesting list. It's got four elements that they're indexed from zero to three. And if you make believe that you wanted to sum these elements for some reason, I don't know, maybe you're playing on computing an average and averages you sum the elements and divide by the number of elements.  It'll sum those numbers, you know, I can just say something like this, I could say print, you know, the sum of A, for instance, like this. And, and, and so that'll, you know, that'll happen.  And then I'll read ourselves or this other stuff up here because I'm trying to make a point. Is that, you know, it's, it's not a big deal to sum these numbers. Okay. There's, it's a one-liner, it's a built-in, it's a built-in Python function where you can drop a list into that function and we'll get more into functions in the next unit, but, but the idea of a function is you drop something in and you get an answer out. In this case, I want to sum the elements on the list. And, and so it's easy to do that. So I'm not showing you what I'm going to show you. I'm not showing it to you because I don't want you to use the sum function. I do want you to use the sum function, but I'm telling you, like as a programmer, you need to know how the sum function works underneath the hood because that's instructional material that's so critical to you learning how to program. And the way programming works is part of the way it works is you build up a little toolbox of about 10 or 15 tricks and then you get better and better. You learn more and more algorithms after that, more sophisticated algorithms, you know, because the field is vast. But, but when you leave an, my position is when you leave an introductory programming course, there's a couple of things you need to know. Like you just, they're non-negotiable. Okay. They've got to be part of that toolbox of 10 or 15 tricks because what you do is you pull out those tricks, you know, as you begin to, to write real code. And that's what programming really is. It's not about just learning the syntax. I'm sure everybody coming in today knows what a for loop is but you use for loops to make computations. And so you, what you really have to learn how to do is you've got to have a, in some sense, a universal sort of English, possibly to math, to Python translation system in your brain that takes some problem specification in English and can convert that into an algorithm and code. That's really what programmers do because, you know, that's why programmers get hired is because, because you can do that because other people don't do that. You know, I mean, that's if, if they could do it, then they wouldn't hire you to do it. So that's the whole point is that, is that. So one really basic kind of an algorithm is just summing the values. So, so the way that you sum values is, is that you, you go into the loop and you cycle through the numerical values.  So this is, sometimes I call this a running sum. Sometimes I call it. It's like, it's like the way you would keep score in a baseball game inning by inning, you start off with the runs for a team being equal to zero and each time you go into a new inning, as soon as you get that new value, you iterate to the next inning, then you add that value to the previous sum. And if you do that correctly throughout the whole game, then you have the correct number of runs at the end of the game. And that's what this loop is doing. So, so loops and lists are, are, are in my sense, they're inseparable. Okay. I really, I see them almost in some senses is, is being related to the same goal is usually the reason that you're, you're creating a list of stuff.  And, and if you wanted to perform operations on that data, you would need some type of a loop to kind of cycle through and iterate through all the elements. So here's a, this is a simple example where if I, if I went through this loop and I, and each time I, I add a new value, print, let's say print the sum at this point. And notice, I want to show you something else too, is that this sum is a function, but it's a built-in function, but, but you can use it as a, you know, as a variable name. And if I do that, it's going to light up in this, you know, pinkish-purplish-violish color, because it's a word that Python recognizes. So I'm not using it as a function right now. I'm using it as a variable and I'm using the word sum to sort of those partial sums. And when you go ahead and do this, you know, what happens is that the first time through, it adds the first value and then it adds five to four and then six to nine and then seven to 15. And so, so this is just a really basic kind of an algorithm that is, you know, it's, it's important to know how it works.  This is incredibly important. Very basic, but very important. Maybe if I want, another one is finding the maximum. You know, what I'll do is I'll set maybe I'll set a maximum value equal to a zero. And to make it a little bit inefficient, I'm not going to refer to the index here because I want to make a point. But if I say for val in a, and I can write some more complex code and I say, well, if, if val is let's say greater than m, okay, then m is going to be equal to val. Okay. And then what we'll do is we'll, we'll print out m at the end of the day.  So, so in a sequential process in a sequence, you don't, the computer doesn't get to, your brain can see all the numbers four, five, six, seven, they'll put an extra one here that kind of goes down a little bit. And I'll maybe make it a five here, comma four or something like this. And your brain can see this whole list, right? Your, your brain is a parallel processor that, that is trained, has been trained to recognize that seven is the maximum value, but that's not the way a sequential processor would, would ascertain the maximum value. It has to do with something called a linear search basically or a sequential search. The computer has to go through each element one by one by one and can only, it can only see the element that it can see right now. And once it's done with that element, it doesn't care about it anymore. It goes to the next element and the next element and the next element. And, and that's how it works. So in this case, you have, you're making the assumption that the maximum value is the zero of element on the list because you don't have any other information beyond that point. A zero is currently the winner because I'm only giving you that number.  Then what happens is, is we start to cycle through the values. Now in this case, we unnecessarily revisit a zero because of that value being on the list. But the question is asked if the next value on the list is greater than the current maximum, what should you do? You should choose that to be the actual maximum. Okay. And, and if it isn't, then you don't, then you don't change it. And that's how that algorithm works. This kind of an algorithm I think is, is extremely important to understand how that kind of king of the hill, you know, works because if you, if you, if you're trying to sequence through or sequentially step through a list of elements and you can only look at them one by one by one by one by one. And you don't get to see the whole list. At the same time. And so then you would do something like this and you'd be told that that the maximum value is, is, is seven on the list. Okay. So I'm going to separate this out just so it becomes abundantly clear. One other thing I want to point out is, is that in, in Python. You know, there is a max function, right? So, so you don't really, you don't need to write this code. It's, it's there for you. So why is it important for someone who's just starting out in programming? Well in programming, you want to know these two algorithms like the back of your hand. They're so fundamental. Of course there are methods and functions that will compute the maximum value on a list. I don't, I don't disagree with that. That's not the issue. The issue is, do you understand how those algorithms work? That's, that's, that's what makes you a programmer. Okay.  You know, maybe I just want to sum the values that are greater than five, for instance, right? Well, well the sum function isn't going to work anymore for you. Okay. The sum function isn't going to work. This will only, this will only sum all the values. You'd have to modify this code. So a problem would be like, okay, I only want to sum the values that are greater than seven.  Okay. So, so here's the point. Okay. Is that, yeah, there's a sum function. I get it, you know, but what if you have to write code that is going to be more specific about summing values? This is quite common. We'll get to and data structures too. We'll get to sets. And I think this will become even clearer, but maybe, you know, somebody specifies to you a problem says, look at it. I only want to add values to the list where the numbers are greater than five. Well, you have to code this extra if statement in there to protect the sum from adding values that you don't want on the list, right? So this is a different kind of a problem. So now you're only adding the six and the seven. Okay. And this is why, like I said, it's important, you know, as you begin to develop that, that you're able to, you know, not just see the basic algorithm, but understand how you might have to modify that algorithm in the future. And so this I think is more instructive if you, if you, not just, you know, there's learning the language, there's learning the syntax, but then there's learning how to program and understanding algorithms. And that I think is sometimes that can get missed at an introductory level.  I know what a dictionary is. And I get it, you know, like I agree, but it's, but when, when, when you can start to begin to sort of mix all those concepts together, you know, that's when you're learning, really learning how to program because you're learning how to solve a problem, you know, using a computer language. So, so going back to, you know, the concept of indices, you know, maybe in terms of the max, I'm not just interested in the maximum value, maybe I'd like to know the index where the maximum occurred. So maybe I might say for I, you know, in, in range, I'll start counting at one because for the maximum amount of algorithm, I start out with the zeroth element. And then I have, so I've already taken into account that value. So maybe I'll say I in range one to wrong language length of a and, and then if I say if, okay, if a I is great. And then what I'll, what I'll also do is say, maybe max I is equal to zero as well. So not only am I storing the value, I want to know the index of the value where the maximum occurred. Where is the maximum on the list, you know, and do I want a unique maximum, or do I want to store all possible, because if it's not unique, what if, what if the maximum number occurs many times on the list, right. So, so there's more, you know, there's more to it than just, you know, you there are cases where you want to use the index and sometimes where you don't need it's implied, like we just did a second ago for, you know, val and a, but maybe I want to know where the maximum is so not only do I do I set max equal to a I right the maximum value, then what I'm going to do possibly is maybe set the max index, you know, equal to I as well. So I store it. And so then maybe not only will I let's say, and let's say comma space occurs at index, you know, I something like this, it's not going to be pretty but it's a statement nonetheless. And something isn't working here. So let's see what did not like what I do. Oh yeah, sure. There we go. So, so for I in range, I'm going to start counting at zero because I already used up the zero index and I assume that's the maximum. And now what I'm going to do is I'm going to say if that value is greater than the maximum then store it. And so the number seven occurs at index, at index five, one, two, three, four, zero, one, two, three. Oh, sorry. Of course. Sorry about that. Like that. There we go. It doesn't occur at index five that was I didn't want to print out I I goes I counts all the way to five no doubt. But I don't want to print out I want to I want to print out the max index, which is equal to I at the time the maximum value gets, you know, gets chosen. So what will happen is that we will only go into this if statement if I find a value that is is greater than the previous maximum that was set. So, so the maximum will change by the way like maybe I'll do this too just for the heck of it just so you see this in slow motion and this is always good to just kind of print out values and so forth is that is a we should see as this program is running and so what the loop is going to do is it sets the values the maximum M and becomes five because five was greater than four and then six becomes the winner because six is greater than five and then seven becomes the winner because seven is greater than six and then and then the loop cycles through these other values and then you don't you don't see any change because the the maximum value is seven and and you bypass these that you're not allowed into this if statement because that the ith element now as you're indexing is not greater than M okay and in addition like I said now it once you understand how the algorithm works then you can start playing more games like oh not only do I maybe I don't just want the maximum value maybe I want the index or maybe I want to you know add to my code not just to find one maximum value but to store many maxima you know that that it might occur in in a larger you know there's no guarantee that there's going to be a unique maximum value so so you might want to store locations of all the maxima you know that could happen as well so so my point is that yes there is a some function yes there is a well there is a some function up here built in there is a max function built in but to understand how the how the data is being summed to understand how the maximum value is being ascertained is is fundamental to your process you must understand these these two tricks and we're going to learn more tricks along the way but my recollection is that is that I bring this up a number of times you know between because because these are meant to be prototypical examples where I can start to introduce how to take how you write built-in functions for the next unit you know I just try and use these as prototypical examples because that's you know that's that's kind of the way we want to build so so I've said there's so enough about that like I said I think all I'm trying to do is is trying to bring up the intimate connection between data that you drop into a list you know since they're ordered you can not only index them but you can use them within loops to sequence through through a series of elements if you want to and operate them in some way either implicitly you know based upon a value or based upon their indices and if you leave the unit understanding that you know you'd make me the happiest teacher in the whole universe because that that is really a major major takeaway you know from from that unit okay so just stop and see if there are any questions because I want to get on to you know some other things that we need to discuss but well yeah I would I'd like to point out first of all a lot of thank you some hearts some thumbs up for you for so but we'll give the you know the take delay time to catch up while I do a callback to what I said earlier because we wanted to make we always want this content to be evergreen but Google's been messing with me today and I I need to make sure I'm not losing my mind because I was doing some Python research while you were talking you know because I like to have little interludes like this while we wait to see if anyone has any questions and it says the most recent stable stable release 3.9.1 and this is on Google and like that little box they give you of information was December 7th 2020 57 days ago that wasn't 57 days ago right am I crazy everyone everyone doing this is good and math that was 57 days ago that would be like 80 days ago right it's a Google is messing with me today good enough I'm checking the chat right now not just seems to be thumbs up thank yous and I think I think people are pretty on board with what's going if again if you're watching this after the fact feel free to leave a comment down below and we'll try and answer it and maybe next week's episode or you know if it gets too far apart maybe we do a little text thing that's what I got for you all right let's let's play a different game now and the game now is to begin to just briefly I want to speak to you know methods that that are given to you one thing you can do is whenever you're going to write a loop is that is that you can you can start off with what's called an empty list that it's important to know how to build to start with empty stuff as an initial condition probably the two most common ways you know is to let's say start with an empty list and I forget if there are any examples up to this point where we use the keyword none but we'll get to it you know that like none is nothing you know so you're a lot to actually have you know a keyword that means nothing but but an empty list can be created left bracket or right bracket or you can say you know B is equal to list you know something like this so so the so Python is ready ready for you to to to begin placing data within a list okay and the way the way that you do that the way that you build a list I'm just gonna again we'll start here and what kind of build because I want to kind of really open something up you know for I am range eight or something like that I don't know Rand not Rand we'll get to Rand at some point we'll need that but maybe what I want to do is I just want to create a list of of integers let's say and the append method is instrumental for doing this this is really the way that you need to be building up lists and I kind of go into this in the course a little bit when it comes to copying data into a list or putting data into a list is that this is this is really the definitive way for placing data and building data within a list so so there's a lot of different ways that you could you could build up you know information in a list it might be that you you initialize it you know by some variable like we were doing a few minutes ago with the left bracket data right bracket another thing you might do is you might do it by appending values to the list and each time you append a new value then you you know you add you add information to that list so if we ran a loop like this then what happens is as you as you run through as you run through the list it gets larger and larger and larger because you're adding more elements you know you're adding a new element every time you you know you go through the list so so a couple of things okay first of all this dot notation okay is is incredibly important again you know we'll get more into how we start building your own classes but this is typical type of object-oriented notation that says look at I've got this list a and again not I was going to really think bigger now when you use in Python it's like when you when you have an object that's let's say for example a list you get this whole package of methods that a method is something that you can call it can run it can give you answers it can compute stuff for you and one of those methods one of the most important methods I would say we're not gonna have a chance to look at all but I'll show you a list in a second is that is to append data to a list and this is the syntax for doing that so every time you call this method every time you say dot append and you chuck something in here between these parentheses then what you do is you append that information to the list and you don't have I'm just saying a loop is a place where you might use that but you might you could just as easily say you know out here I'll come back to this a second so you could just you know you could append a new element to the list and say for instance let's see what that looks like and so now what you've done is is you've appended the string you know SDF GSDFG to the list using the append method okay so many many Python editors the way that they work is is once you hit this dot and maybe if you hit like a tab key or something it depends on the IDE that you're using but usually just by virtue of the fact that you press dot or maybe after you hit dot some IDs want you to hit the tab key you get to see the whole list of methods that are afforded to you and again we'll get to a lot of these as the course goes on if you haven't seen a lot of these already but these are all the methods that you could use and apply that come part and parcel anytime you create a list so every every data type every built-in data type is derivable from something called a class and we'll get more rigorous about what that definition is but once you are accessing a class and you create what's called an object from that class so A is the object the class is list as we said at the beginning and once you create that object you are afforded all the rights and privileges that go along with anything that was defined within that class and that's very very powerful because as I said before then you can start appending stuff to a list and that's kind of the way you have to do it so or you can clear a list or you can copy a list there's so many things you can do and we'll get into the double underscore stuff when we get to the object oriented section of the course anything you see with these double lines over here is a double underscore method and like I said that's for later on even something like reverse A.reverse let's just choose that one for the heck of it and you can either type it or you can do something else it doesn't maybe and maybe we'll print this out and say print like so and oh that's what you get in none that's right this one doesn't return it doesn't return that's a terrible result so maybe we'll try something like this and we'll try that and say print A there we go try that and see and you get an error that's right I'll get into this later on is that there's some methods like sorting and reversals that don't that don't let me do it like this A.reverse that don't return the value so as if you wanted to print it out let me do it let me see so let me try and say this in shorthand notation some algorithms like sorts and reversals actually modify the array they change the array so you don't get a returned answer from the module so I don't want to go too far into this but usually when you call a function or a method you expect to get something returned that's the answer that is non-destructive to the original data type that's oftentimes one expectation but in the case of the reversal or like a sort which I haven't shown you yet what will happen is that A basically gets modified it gets reversed so this is one of the things you want to be kind of careful of and again as we go deeper into the course I'll get more into that but you can see right now from the list that A was reversed and that the old A doesn't exist anymore it got overwritten so I didn't want to use that kind of an example just yet because there are there's deeper aspects to copying data from one source to another that I'm trying to kind of tiptoe around right now but what's another one so maybe what we'll do is we'll say in this case fail to connect and let me do one more example because we're running out of time and I want to go over to strings let's see so let's say A let's just try this A dot maybe I want to pop something so maybe what I'll say is A dot pop let's say zero something like this and then print A this is a good way of doing this so the pop function what it'll do is it'll pop a value to pop means you sort of take an element and you basically take it out of a list so when you pop it off the list if I say pop the zeroth element what used to be SDF SDFG pops that element off and now I'm left with the list without that element okay so coming over to let me just come back here for a second so the list methods again of which there are many you can see the list but there's a ton of them and you should become in some sense somewhat familiar with because this is how you code in Python this is what you do you have an object and then you call different methods to operate and sort of calculate stuff in the list so this list I think is very very important okay we've got five minutes left so let me pop over to strings now the reason we revisit strings is because I hope I'm sharing this double check good the reason that we revisits the reason we revisit strings is once again is that when you create a string and it could be I want to say two things before we finish so just stay with me for a second when you create a string and maybe something like this and again you say s. you can use a bunch of methods that are afforded to you based on what you might want to do with strings you can find stuff you can count stuff and so that's that so maybe you might want to play a game and say well let me go ahead and capitalize every element and s and then so maybe I'll print s like this and I don't want to do longer strings stuff but list stuff and so that did not capitalize that let's see here let's come back over here strange and say did I get it oh ok ok it looks like it did capitalize s that's good join. This is such an important, this is such an important method. Okay, you can, you know, convert stuff to upper and lower case. That's what I want to use. So yeah, so you can use these to print upper and lower. I capitalize. Gotta get here. Thank you. Upper, like so, upper. And again, I'm just trying to move fast because I want to, I really have to say one more thing that's so important. These, like I said, you can just kind of like, is like, is play around with these to kind of see what they'll do.  There we go. You can play around with these to kind of, you see what you might want to do with strings. The last thing that I want to say with regard to indexing, and I meant to say this at the beginning, this is what I want to close with, is the reason that I'm putting strings and lists into the same unit is because the elements on the string are, you can index them just as if they were elements on a list.  Oh boy, I spent too much time. I forgot one thing. If you go ahead and choose the zero element, you see that you're choosing this element.  That's really the main reason that the strings and the list are in the same unit is because the fact that you can index the characters within a string, just like you would index the elements on a list, which means this by the way. And this is, this is very, very important.  And so if I do something like this, and I say, well, tell me zero, one, two, three, tell me the third element on the list. Okay. So maybe what I'm going to do is I'll print x three, like so. Okay. Then if I do this, I'll print out. But what if I need to, what if I wanted to get an element, like if I put a list or a string, like a list into a list or a string into a string, what happens is, is that you're going to need to use a second index to maybe access elements on that list. So maybe I'll say, tell me the first element in the third element. Okay. Or tell me the, or the first character in the third element. So the first color, remember, start counting at zero s is the first element. So in this case, we would print this out. And so notice now, these are, these are double indices. Okay. So when it comes to accessing elements on a list or within a string, that there could be a second index that's required to access the element within an element. Okay. And so this notation means that I have a double subscript. And the double subscript says, okay, I've got some kind of an element that requires an extra index to resolve.  But if I put it in, then I get one element out of it. And that would be the first element. If I put element two, then it would be D. I hope everyone realizes, like so. And lastly, just, I know I'm going to go a minute over. I just hope this is okay. I know we're supposed to stop at 1030. We'll be okay. Okay. And this is the thing I forgot to bring up. I was spending so much time on the on the loop stuff. But there's the colon operator for what's called slicing. And this is probably, you know, next to indexing, it's the most important, you know, aspect of of of an ordered sequence in Python. So if I take if I take X, and I want to maybe access a number of elements, not just one, you know, I could say something, well, well, we'll start counting tell me the first element and up to the third element. And this colon operator, what it's going to do in very much in the same way the way the range function works, is that is that I want to know what the starting point is. I want to know what the ending point is. And I need to know what the step is. If I leave that third, I could say, so I could do something like this and say, well, count by ones, but this is it's not necessary. Whenever you're going to count by ones, you can leave out the step. Let me let me put a few more elements on here. Okay, to make this clear is that what I'm saying here is give me the first to the second element, because remember, we always count one less than what the three is. So you're going to count from one to two in this case. So that's tell me element one, tell me element two, I could also say zero, one, two, three, four, five, six, seven, I could say, for instance, you know, give me elements one through six and count by twos. Okay. And so what'll happen is that in this case, I'll start counting at the fourth element, and then I go every other element because the step is two. So it says give me this element, then give me this element, and then give me that element. And of course, since I count to seven, then I'm going to stop because it's one less than seven, I'm going from elements two, four, and six. So this is element two, that's element four, and that's element six. And again, you can you can count backwards with slicing, you can count forward. And I'll say one more thing, one more thing is that you're allowed to use negative indices, because then what you can do is you can sort of count backwards, you know, you can actually in Python, you're allowed to have, you're allowed to have negative indices. And when you do that, this says tell me what's at the end of the list. So so with slicing, you can actually have negative indices that cause you to count backwards. And in fact, that's that would be a way to reverse a list, basically, you could do what the reverse method does, which is to is to count backwards from the end of the list. So, you know, you could say something like, you know, count from here to, I don't know, minus five in steps of negative one. And if you did something like that, then you're going backwards seven, six, five, and four, because the last element on the list is the negative one index. Okay, it's a fast way of determining the last element using a negative one is a fast way of determining the end of a list without necessarily having to know how long the list is. So it's good to have negative indices because you start counting here and now you say negative one, negative two, negative three, negative four. So again, we don't go to negative five. Okay, we don't go to negative five because we stop one, one before the number that you specify. And again, it's all born, you know, Python is like, it's all born out of the fact that that we start counting at zero because we start counting at zero. If I say, give me five things, you're going to count from zero to four in terms of the index. So you're always counting one less than the sort of the the maximum or in this case, the minimum value that you're you're specifying. So just just a quick blurb about slicing is that it's extremely powerful for grabbing large numbers of elements out of, you know, out of a out of a list. So I actually would have liked to have spent more time on that. I don't know where my brain went. But slicing is indexing. So just to summarize, indexing, very, very important, understanding the difference between indexing and element, understanding the relationship of lists and possibly even strings to loops and loop type of statements. And, and then slicing, and then also just the kind of host of methods that you're afforded when you're using either lists or strings or really any object. So I'll stop there. I'm sorry, I went a little bit over, but I just I felt I needed to say something about slicing. Well, I think that that was great. And I think that I will give like one second for, you know, I guess I have to give like 15 seconds because the tape delay or whatever. But we'll give a second for people if they have any like quick questions for us. But not for the most part, the chat's been pretty happy. You're reaching a global audience here. We got to thank you from Iraq. We got to thank you from Zambia. We got a hello from Mexico. Like so you know, I think, I think whatever tangent you thought you lost yourself on it seemed people enjoyed it quite a bit. So I will just give it another few seconds while I vamp and just say, again, this is a course on sailor.org. You can go there at CS 105 introduction to Python. We've done live streams before we will be doing another live stream at the same time next week. So, you know, maybe catch up to us. You can join us live or always they'll be saved on our YouTube channel and on the website. So you can go back leave comments. We'll go back and try and answer any questions you may have in the past or no any questions you have in the future for what we said in the past. And yeah, it just looks like nice things in the chat. And thank you, everyone. Again, we'll be back here 930 Eastern Standard Time. That's minus five GMT. You have to figure it out. Follow Sailor Academy on Twitter. And I'm sure that they'll let you now. So thank you, everyone, for joining us. As always, thank you, Dr. Sack and everyone.


the market or in any individual stock ETF or any asset class, it could not go higher in total. Welcome to access a trader, the number one community for those who are committed to taking control of their trading in order to achieve success, profitability and longevity. Thank you for joining us. Here's Dan Shapiro to help you find your edge, master your process and own your future. Hey guys, good to get everybody. Welcome to another edition of the access a trader.com nightly update show. Hope everybody had a great weekend. Again, I want to thank everybody who attended Kenyon Salos keynote was absolutely awesome. I knew it was going to be good. Okay. But unless you were there and you saw it live, you felt really incredible afterwards. At least I did. There was a lot of great self reflection moments. Really awesome. It's really, really great. It's just made, I know a lot of people just feel absolutely great about themselves. Just about the future. There's nothing to do about a motivational talk. This is going to be great. It's all about, you know, living your life with total fulfillment and pretty much getting the greatest aspects and living the greatest life. So for all you guys who are attended, who did attend, I hope you had an awesome experience just like I did. It was recorded and if you, for all you guys who are coming aboard in the future, it'll be in your disposal. Just an absolutely, like I said, great way to kind of get a vitamin B shot to your soul. Just made you feel good. So thank you very much. As always guys, again, we always appreciate your support. If you haven't done so already, please like and if you haven't subscribed yet, please do so so we can continue to bring you unbiased content. So let's talk about this unbiased content. So we've been digesting, right? And that's exactly the thing where we've been going on. We've been digesting these gains, this 10% gain that we had two weeks ago in the NASDAQ 100. Really, really awesome. We had a line in the sand that put in last week. We tested that line in the sand as well. And the most important part is all of this is happening on decreased volume, which is exactly what you want to see, what you want to hear. And the most important part is what you want to see progress until the next level. And then we'll talk about that in a few minutes. But the most important part is what we're taking out of it is it's very organic, right? When we had that 10% move, you could see it was just not sustainable. If you've been watching this broadcast for the last two weeks, all we've been talking about is this natural back test, right? Some good, healthy profit taking that we've been seeing in a perfect world. Again, if you've been kind of watching this broadcast, you kind of know, I would like to see a retest of this 50-day moving average. That would be kind of the area that the bulls can take a very, very aggressive stand and take the market higher. And this is the area that we talk about this 277, 278 level on the Qs, which is not that far away, right? So every single time you see a bet, you see kind of a run-up and reclaim on the 50-day moving average. What usually tends to happen is they come revisit it, trap and go. And if you guys remember the video from a couple of weeks ago, that's kind of the whole point. This is when we had this big, big rally, three-day, three or four-day retrays back into the 50. You could see this light blue line, trap and go. And that's kind of what we're looking for now. Just one more day. Just all we're asking for is one more day of selling. We can get into that 277, 278 level.  That is the area that you kind of want to make a stand. Generally, the market does respect the first initial back test of a major moving average. So it should hold, right? It should hold at least that one time. That's kind of what we saw here today. We had a back test and we stopped right short of last week's lows, which kind of shows you and kind of illustrates what I'm talking about. So tomorrow, if we could just get one more fade, one more fade to this 277, 278 level, I do believe the bulls will step up, right? They will step up, defend those levels, and potentially we can have a reversal. Now, the green light, if that all happens, the green light has to be a previous day's highs, right? So the market, again, for all you new traders, the market or in any individual stock, ETF, or any asset class, it cannot go higher until it takes out the previous day's high, OK? That's just the way it goes. And the stock or an ETF or everything else cannot go lower unless it takes out the previous day's or previous range lows. And these are the kind of most important points. So where we start to worry, OK? And when I say we, I guess, perma bulls, I don't want to say the word we because we trade both sides of the market. But this is where the bulls should start to worry. If we start testing this 278, 278, 277 level and bounce and then lose it on a close, then the narrative changes. Then we have something completely different to talk about. And for us, we're just looking for that trend, the trend to continue and the trend to confirm so we can make feasible decisions based on our previous night's research. And we'll get to all the individual pivots and everything that happened today. But see, these are definitely the areas we want to watch for tomorrow. Big level, right? 280, 72 is going to be the line in the sand going into tomorrow, right? And if that starts building, I think we can get that 277, 278 flush. So what I'd love to happen tomorrow is kind of get a green open or get a flat open or even slightly red open. Take out this level, take down the shorts, whatever we're looking for for tomorrow. Ride it down to this 277, 278. Obviously cover everything and start going long at that 277, 278 number to see if the bull holds. All right, that's the perfect world. The problem is we don't live in the perfect world. And last time I was looking for a back test. You guys remember the previous Thursday, the whole day's move that I was planning for Thursday, played out on the pre-market for Thursday session. So that kind of really left the value to kind of zero. But here's the caveat. If we do have one of those exaggerated gap downs into support, then the market's going to do all the pre-market work for us. And then again, 278, 277 level, that is the area where you want to start a position and play it against the lows of the day because that will be defending this whole bias that they reclaimed going all the way back to November the 10th, which was the CPI data. So that's kind of what we're set off for tomorrow. So in case we gap up, 282 line in the sand for a remount, bounce 277, 278 for back to the upside. And the most important part is if we do close below 277, then obviously we have a whole different conversation ahead of the Thanksgiving holiday. Speaking of Thanksgiving, if you are just watching this broadcast just today and taking the rest of the week off, I want to wish you and your family a very happy and healthy Thanksgiving. Enjoy what you have. Everybody wants things. Everybody thinks the grass is always better. But live the life. Love the life that you have and not the life that you want. And it's very, very important to understand that and really respect all the blessings that we have every single day. So let's talk about it. Let's talk about today's session. Again, as you can imagine, the week of Thanksgiving is a very quiet as far as activity and violence, because there's no events. There's no fed speaking. There's no this, no that. So there's very limited things that is going to jitter the market other than some random something that comes out out of anywhere, any part of the world or some sort of political debacle. Having said that, the market is very organic. It was trading incredibly organic today. 80% I would say 90% of all our value today was to the downside. The one name that we were looking to the upside today only went up 50, 60 cents again. We'll get to the pivots in a second that came right back down. But until the market sorts itself out and really starts testing that 50-day moving average or retesting the 50-day moving average, it's going to continue to play itself out to drag lower, to drift lower just because we haven't seen the ability in the last two weeks to take out a previous day as high to cut cord with the selling cycle. So all that is very, very meaningful. The volume is going to die out. You're going to see that because Thanksgiving is the most popular travel holiday in the calendar, a lot of people are going to be off as you probably see it. A lot of ranges are probably going to be shrinking. So the value is always going to be to the downside because they continue to drift, drift, drift, drift. And you will see that on the pivots that we had today. But what's interesting is by Wednesday, right? If the bulls don't reclaim at least the previous channel by Wednesday, I think we're going to draw out this little selling until after Friday session. Friday is a half-day, Thursday we are closed, and Wednesday is a full day. But I have a feeling if tomorrow gets quiet within the first hour, then Wednesday is going to be an absolute ghost town. So again, there's a time to press and there's a time to kind of scale back. Again, listen to what the market's telling you. If the market is resting, you rest. If the market's giving you value, then the value you shall take, just like every other professional trader. So let's talk about the tape, right? So I would say 90% of our watch list today was to the downside. The only couple to the upside were Walmart. We'll get to that. Walmart, Amborella, and Microsoft. Walmart actually behaved really, really well. So let's talk about it. They continue to sell Tesla. Every single broadcast that I've been recording over the last two weeks, again, Tesla's the only stock that didn't rally, the only one of the very few stocks that didn't reclaim the 50-day moving average. And now every single level is just being taken down. It went from that 193 initially, all the way down to 88, to 86, to 82, to 77, which was the macro breakdown. And today it started building pre-market lows 175 and got all the way down into the 167s.   They are coming for the 165 weeklies, the 160 weeklies. We saw 150s for next month. We saw 130s for like, you know, for like February. So there's something going on. Again, honestly, I really don't care what's going on. Every day is just giving us some really good value in the trade. And every single day, knock on wood has been trading organically. So here's the pivot today. 175 held twice pre-market. If it builds below, it can flush more. So here is, here is the 175 pre-market here. You see it held twice. You see that? 175, 175, started building 175 and just died on a vine went all the way down to 167. I have to assume you'll get at least one or two more days of selling before a possible dead cab bounced there. So really good move there. Amazon 9248, if it builds below can flush. Amazon again, another one they started coming for the 90 weeklies, the 88 weeklies, the 88 for next week. Again, took out the 92, 48 on all the way down to 90 and change. So nice move there as well. NET, again, these cloud stocks continue to get hit, right? 46, 30, 46, if it builds below can flush, right? NET, so here's NET, cloud name. And I'm sure a lot of you guys have seen snow set up and all that stuff as well. So it took out this 46, 30, traded all the way down to 44, 65. Walmart, one of the very few names to the upside, had a great quarter, right? Well, at least on paper, digested its earnings report, 150, 30 needs to confirm. Here is Walmart, right? Beautiful, right? Beautiful, beautiful flag. It got above the 150, 30, and went all the way up to 52 and change. Nice move on Walmart. NVIDIA never gave us a second entry, 151, 20, only went down like 40 cents, never gave us a second entry, kind of held up. Ambril, I wasn't watching, 76, 60, 77 needs to build.  AMBA, let's see here, AMBA, yeah, it didn't even confirm. Microsoft was, so I got long Microsoft. I got long Microsoft and it went up about 50, 60 cents. That's it, 50, 60 cents. It was actually a beautiful chart. It really does show you a really nice looking chart, right? We held three times, we got rejected 43, 80. So I got long, only went up like 50, 60 cents and then came just crashing in. So I lost a cup of coffee there, breaking even pretty much on that. Microsoft and I think that is it. So we had some pretty good, a Roblox. Roblox was really good. Roblox had a really nice trade in Roblox. It started taking down the 31 area, 31. It confirmed 30, 68 and just dropped like a dollar and changed really nice move on Roblox as well. So that's it. Look, I think tomorrow is going to play out kind of like today, right? You're going to get some value, you're going to get some opportunity because the market right now is just, I don't think there's anybody there yet to defend prices. Yeah, yeah. After Thanksgiving, we'll probably paint the different picture because a lot of people are traveling this week and spending some time, taking some time off, enjoying the start to the holidays. But again, going into tomorrow guys, this is an incredibly important area here. Again, it shouldn't be any shock if it takes out the level it starts building. 280, 72 was the low from three days ago. 281 was the low today. So if it starts confirming, I do believe we get a move down to this 278, 277 level. But in case it gaps down to 277, 278, then there's a possibility we could finally have a washout trap at the bottom of the channel and go red to green for a possible move up. So that's it guys. Guys, God bless everybody. Stay warm. Stay safe. It's a robust 27 degrees here in New Jersey, absolutely freezing and it's dark right now at 430. So I'm gonna need that dosage of Prozac to go higher. Guys, God bless. Have a great weekend. Have a great Thanksgiving. And with God's help, if you're trading tomorrow, we'll see each other then. Take care.


What is going on everybody we got 2021 Panini national treasures collegiate football coming at you to one box break Random number block break number one From a couple loose box. We had there looks like we were saving these for a pick your team break when we never got around finishing But here it is 2021 college football Big thank you to this group For making it happen. There are the numbers right there. Let's roll it. Let's randomize it six and a five eleven times one two three four nine ten And 11th and final time After 11 we got Jeff down to Nick six and a five eleven times for the numbers one two three four five six seven eight nine ten and 11th and final time We got six Down to two Jeff with six David with one Carl with four Nick with zero Steve with three Tristan with five David with eight Steve with nine Carl at seven and Nick with two Let's order these numerically and we'll pause a video just for a little bit Maybe see if there's any trades and when we come back We'll do the break stick around All right, welcome back No deals were done. Let's select one of these boxes One two three for the top box four five six for the bottom box Two top box and this net other 2021 anti-collegiate box will save for another day 2021 anti-collegiate making sure I'm grabbing the right thing here. All right, let's see what we got. Good luck everybody Got a Derek Henry 52 out of 99 So if you're not familiar with the number of locks we go by that digit right there, so that's two Nick oh with two Got Michael Carter four out of 75 Carl with the number four. I think he's got some high hopes from number four. You got the 53 out of 99 Kaderious Tony Super Bowl champion got a touchdown in the Super Bowl had that 65 yard punt return And goes to Steve H number three Got a redemption for Nick. Oh and the number zero that is Seth Williams Still have some time to redeem that you got until late April Call your materials signature booklet bowl logo That might be a really low number If you end up redeeming this and it turns out to be an awesome bowl patch or a train whistle hit out of 500 Let us know We got oh two cards that I grabbed here. We got a Z's ojolari 32 out of 75 Nick oh with the number two We got Jersey and autograph silhouette signatures Jersey and Otto. That's Mark Andrews in his Oklahoma gear 11 out of 25 It's for number one David M number one. We got a book We've got nine out of ten Sam Ellinger Maybe it's a cool bowl patch like that Number nine that's gonna go to Steve H and nine and the final one is gonna be Nice RPA Mack Jones three out of 49 two-color Jersey and on-card autograph Steve Herrick and the number three Nice there you go. Thanks everybody. I'm Joe for Jasper's case breaks calm. I'll see you next time for the next one. Bye. Bye


Google IO this morning. Boy did the company talk about a lot of things. Let's start with some of the hardware that we've been anticipating first. Pixel fold, foldable 120 Hertz, 7.6 inch main screen has 5.8 inch exterior screen when it's folded. It's running a tensor G2 chip has 128 gigabytes of RAM and sells for $1800. We also have the pixel tablet. That's an 11 inch tablet that has a sensor G2 processor available for pre-order now arriving in June. The pixel tablet looks really cool. I'm very intrigued by that device. I given the price, it's a $499. You're just using this for like home usage around your household. Take it like pick it up from the little the charging stand and then move it into your living room or something like that.


The DuPont Cavalcade of America, starring William Powell. Good evening, this is William Powell. Tonight there may be some old and forgotten memories in store for those of us who recall one of Summertime's most wonderful customs, taking the family to the Chautauqua.  His name, Dewey Craver, doesn't matter a great deal because Dewey could be any one of us. Me, for example. Let's look at it as though I were really telling you about myself and my father, and a boyhood visit to the Chautauqua. I haven't played many 11-year-old boys lately, so that very fine child actor, Donald Hastings, will be in Dewey. However, it is comparatively easy for me to remember my own father, so in tonight's story I'll be Dewey's father as well as your narrator. Chautauqua Fable, an original radio play starring William Powell as the narrator and as the father of the boy, Dewey Craver, on the DuPont Cavalcade of America. When I was 11 years old, back in the year 1910, I always hoped I'd grow up to be like Mr. Sprig, who drove the buggy for the U.S. mail. Hello Dewey! Hello Mr. Sprig! It didn't seem there could be a better job than Mr. Sprig's any place. Nothing to do but drive a fast-stepping horse all day long. He got to go to Belleville every day. That was 16 miles. I was lucky if I got there once a year. Oh, holy hell! Let her free your ma from Belleville, Dewey. Yes, that's my Aunt Kathleen. She and ma are always writing. Somebody's got to, or I wouldn't have a job. How about letting me write a piece with you on your mail, Mr. Sprig? Government don't allow it, Dewey. How do I know that you ain't a mail robber? Have her meet me robbers, Mr. Sprig? Why, I just shot up a whole gang of them on my way here. Honest? Yeah. If you don't believe me, go look at the bodies. I left eight of them littering up the road. Oh, I guess you're fooling me, Mr. Sprig. Yeah, I guess I am, Dewey. Mr. Sprig, when can I start to learn to be a mailman? Right now. Can't you deliver that letter to your ma? Come on, Dewey. Here you go. I love my mother very much. But she had one habit that I could hardly stand when I was a boy. Any time that she'd get a letter from Aunt Catherine, she'd read it out loud to Paul and me and Sister Martha. Well, Aunt Catherine's letters were nevertheless in 12 pages long, and more often they were 20. And if anybody happened to marry or die, well, I give you my word, that letter would go on as long as Pilgrim's progress. And everyone said that dear Ellen was the prettiest bride they ever saw and that the wedding cake was the finest they ever ate. It was store-bought. What's the matter, Dewey? Do we have to listen about an old wedding? Your Sister Martha's listening. Sure, she's a girl. Just because you aren't interested, Dewey, doesn't mean other people aren't. If your ma can take the trouble to read, you can take the trouble to listen. I'm listening, Paul. Well, that's all she says about the wedding, Dewey. Now I come to my really important news. Who died? Do we crave her? That's not nice talk. Paul, I'm sorry, Ma. Go on with the letter, Ma. I want to hear Aunt Catherine's news. Now I come to my really important news. We are going to have a Chautauqua in Belleville this summer. A Chautauqua? I don't know what a Chautauqua is. It's a big tent and they give shows in it. I ran about it. I want to go. Can we, can we? Dewey, don't want to hear what else your Aunt Catherine is. Oh, sure, you bet. What did she say? Now I come to my really important news. We are going to have a Chautauqua in Belleville this summer. Everyone says it will be the most wonderful thing ever, full of real culture. There's to be a famous opera singer and an Arabian magician. I want to see the magician. There will be a troupe of Alpine yodlers from the Swiss Alps. There will be scientific and comical lecturers. Circello's Italian band will play. And William Jennings Bryan is to speak. Well, all told, there will be three programs a day for seven whole days. It is something no one should miss. And Fred and I were wondering if you Cravers would like to visit us Chautauqua week. Could we, Pa? Could we? What would be wonderful? Can we, Pa? What? Traps off to town for a whole week just to see a lot of theatricals? Oh, this is cultural, Father. Aunt Catherine says so. Another thing, Nathan, the church approves of the Chautauqua. That don't sound like it was theatricals, does it? I ain't saying it's a bad thing. Only we've got a farm to look after. Oh, Grandpa on the hired hand can take your chores for the few days you're away. You know that. What about the cost? Oh, the cost is nothing at my sisters. What about all them singers and talkers? They've got to pay to see them. Well, Catherine says here that season tickets for all 21 programs cost $2.50. There's four of us. That'll be $10. Oh, that's too much for farmers. Oh, we don't have to have four. We could get two. And turn, turn, turn using them. That's what Catherine and Fred are doing. Still $5. It's a lot of money. Well, we owe it to the children, Nathan. And we owe it to ourselves, too. We get to forget how there's other things in the world but just growing things. You voted three times for Mr. Bryan as the president, didn't you? He's a great man. Wouldn't you like to hear Mr. Bryan talk? Yes. Yes, I would. Well, then let's go to the Chautauqua, Nathan. Well, seeing it's educational. Thanks, Pa. We're going to the Chautauqua. We're going to the Chautauqua. We're going to the Chautauqua. Folks growing up today with radios and photographs and television sets, don't know what it's like not to hear music. For that same reason, maybe folks today don't know what it's like to really hear music. Why, we go months and years even without hearing anything but the church choir or the village band. And then along would come the Chautauqua. And take my word for it. We really heard that music. Why, it was like rain after a long drought. And when Cirrus Solo stood up there in his red and old uniform, swinging his stick, making his men play, I knew right off that I wasn't going to be any mailman when I grew up. I was going to be a bandmaster. Sure do, Ma. Did you know I studied music when I was a girl? Did you, Ma? My teacher thought my voice was real good, too. She wanted me to keep studying. Why didn't you, Ma?  Why didn't Pa ever buy us a piano? Well, he would have if he could have, do we? Your Pa's real generous. You saw how he let you have his season ticket for the concert tonight. As long as Pa gets to hear Mr. William Jennings' Brian, I don't think he cares about anything else. That ain't true, do we? Your Pa likes music fine. Only you're young and it's educational. You should hear it now. And now, ladies and gentlemen, I have the honor of introducing the famous opera star. Can I give the season ticket to the man while he punches him? Just go to sing, do we, in French. Madame Caranini was a great artist. And I'm very glad I heard her sing.  I'm Abou Ben Ali, the sorcerer of the Sudan. I bring you now the mysteries of these. I have here the magic scarf once belonging to the Queen of Sheba. As you see, it conceals nothing. And yet, I wave it once. I wave it twice. I repeat the mystic words. Abadana! Look, Pa, he took a bowl of goldfish right out of the scarf. It's a trick, do we? Pa, when I grew up, I want to be a magician. The next night there was a scientific lecture. And after Abou Ben Ali's wonderful eastern mysteries, a lecture didn't sound very exciting. This was one time when none of us were particularly anxious to use the tickets, although we knew the two of us had to. All wouldn't stand for any part of the tickets being wasted. Well, we sat in Uncle Fred's kitchen, deciding who was to go. Well, if it's scientific, it's educational and education's for young folks. So Martha and Dewey should go. I've already seen one program today. Wouldn't you like to take Dewey, Pa? Can't.  I want to shake the hand of any man who's done that. Well, who's going to use the tickets for Mr. Brian's here, Pa? Well, your father's going to use one, naturally. Oh, I know that. Mr. Brian's such a great man that we all should hear him. Today, I tried to buy two extra single seats for his speech. Oh, Pa! No luck. Everything sold out. Oh, and they say he's just wonderful, too. I bet he ain't as wonderful as Abou Ben Ali. Well, I wouldn't say that till you hear him Saturday if I was you, Dewey. Am I going to hear him speak, Pa? Well, your ma and I talked it out, Dewey. We decided that you're going to the speech with me. Because you're a man. Or will be, one of these days. And when you are, you'll have to vote. So you need to know all you can about Mr. Brian and men like him so you'll vote right and proper. Well, I'll do the best I can, Pa. Good. And now you and Martha are going to the science lecture. Getting on the starting time. But science isn't for ladies, Pa. Of course it is. Then why can't we vote? Well, that's not the same thing at all. Well, go on now, before you miss part of it. Here's the tickets. Be careful of them. Remember, you be careful of them. All right. Thanks, Pa. Come on, Dewey. Well, maybe it'll be interesting. All right. Goodbye. Goodbye. What is this lecture tonight, Nathan? Oh, it's a demonstration of something called moving pictures, whatever they are.  Can I give the man the tickets? You heard Pa tell me to be careful of them. I'll be careful. Kids lose everything. I ain't a kid. Oh, no. First tonight Pa said I was a man. He never said that about you. I should hope not. Oh, you know what I mean. I'm growing up, Pa, thanks. Gosh, if I'm old enough to hear William Jennings' Brian, I'm old enough not to lose some tickets. If I let you take them, will you stop talking, Dewey? Oh, thanks, Martha. Just give them to the man and he'll punch them. I know what to do. All right. Just make sure he punches them in the right place. Let me alone, William. Martha, I know what to do. All right. All right. I'll wait over here. Hey, Sonny. Take his place. Are you the ticket man? That's right, Sonny. Let's see your tickets. What about that man at the door? Oh, um, I'm helping him out today. Uh, punch him right there. Uh, we, uh, don't punch your tickets anymore. We take them in. But these are season tickets. We need them to hear Mr. Brian and everything. Oh, you get them back. When you come out of the lecture tonight, they're giving back to you. Why not right now? Well, my boy, I'll tell you, you're not the kind of a person that would do this, but quite a few people slip their tickets out under the tent and friends use them again. Ain't it awful how dishonest people again? Well, here are the tickets, Mr. I'll get them from you after the lecture. Yeah, don't worry. I'll keep an eye out for you. Well, we can go in now, Martha. I've settled everything. May I see your tickets, please? Huh? Oh, I gave them to a man outside. Season tickets. Oh, well, I'm afraid you've made a mistake. All tickets are punched here. Oh, he didn't punch him. He took them. What? Oh, well, you have made a mistake, Sonny. Season tickets aren't collected till the final program. Oh, he said it was a new regulation that he was helping you out. I'm afraid you've been horn-swoggled out of two perfectly good tickets. Whoever it was, he wasn't our ticket-taker. Oh, Dewey. Well, can't you find the man who got them, Mr? Well, he'll be gone by this time. It's a dodge, they work, if you're not careful. Dewey, now Pa won't be able to hear Mr. Bryan. Oh, Dewey, what'll Pa say to you? I'm wondering what I'll say to Pa. You are listening to Chautauqua Fable, starring William Powell as narrator and the father of Dewey Craver on The Cavalcade of America, sponsored by the DuPont Company. Makers of better things for better living through chemistry. Dewey Craver is telling the story of the visitors his family made to Belleville Chautauqua back in 1910 when Dewey was a boy of 11. I suppose you want to hear how I told Pa about the tickets being stolen, but you aren't going to. Even after 38 years with an experience in two wars and a big depression, I still don't like to dwell on that scene I had with Pa. Well, next morning, I went to see the sheriff. Mr. Sheriff, you've got to find the thief that took my father's tickets. Pa's got to get to hear Mr. Bryan tonight and it's sold out. Your Pa'll give you good hiding, did he? I wish he had. If he'd only lose his temper, it wouldn't be so bad. Oh, what's he do? He just looks at me like I was Beledict Donald or someone. Like I betrayed him and Mr. Bryan and the whole United States? Oh, no, no, no, no. Take it easy, son. Your Pa don't mean that. He does too. He says maybe I'll get old enough to vote, but I'll never get sense enough. Well, I wish I had a ticket of my own to give your Pa a son, but I ain't. I'll keep looking for this thief, but I wouldn't count on finding him. I'll go out to the Chautauqua grounds and look around some more for him. And if I find him, I'll... If I find him, you just tell an attendant. I will, Mr. Sheriff. And don't worry about growing up and not having sense enough to vote right. Lots of folks get along without that. Fine. So I went back to the Chautauqua grounds and looked everybody over. It was hopeless. Why, it was worse than looking for a needle in a haystack. Finally, I got really discouraged to wander down to the lake by myself. If I was to drown, I bet they'd miss me. I'd be sorry then, but he still wouldn't hear Mr. Brian. Boy! Boy! I looked up to see a man talking to me way off the other side of the lake. I say talking because he was. Talking to me from clear across the lake as easy as you and I talk in a parlor. He had the carringest voice I ever heard. I had to shout myself red-faced to answer him. Free city blocked, and I never raised my voice. Are you a swimmer? I can swim, son! Carring cattle is an abomination. The wind blew my head off in the lake, and I'm a lost man without it. Thank you, boys. Thank you. What is your name, young man? Dewey Craver. And what return can I make for this favor you've done me? Well, that's all right, Mr. Now about a bright new dime joy at the start of your future fortune. Oh, no, thank you. My par doesn't like me taking money just for doing things for folks. Your par sounds like a Christian gentleman, Dewey. He's a farmer. Oh, well, so was my par. Now if we hang this hat here in the sun, it ought to dry soon enough. Mr. When you were a boy, did you get along good with your par? Mostly I did, Dewey. Don't you? I always used to, but just yesterday I did something to par that I don't think he's ever going to get over. You want to tell me? Well, you see, my par thinks Mr. William Jennings Bryan is the greatest man in the world. Do you? Well, only now and then. He has the best appetite. I'll say that for him. Well, anyway, we came to the Chautauqua menu so par could hear Mr. Bryan speak. And now we can't, because I lost our season tickets. I got swindled out of them. Well, don't worry so much, Dewey. Things will work out. But how? Dewey, as a poem you ought to know, called to a water power, it ends up, he who from zone to zone guides through the boundless sky thy certain flight. In the long way that I must tread alone will lead my steps, a right. God looks after us, Dewey. You mean even after my tickets? Well, he brought you here to me, Dewey. And it just happens I can help you. How many in your family? My pa and ma and my sister Martha and me. All right, look. At eight o'clock tonight, you bring your family to the main entrance of the Chautauqua tent. Tell them your name is Joey Craver. There'll be four very good seats for you. But they're all sold out, Mr. I asked. Don't you believe me, Dewey? I don't know whether I should, Mr. But I do. You just kind of got a way of saying things. So I went home all happy and told Pa, thinking everything would be fine with us again. But he didn't believe a word I said.  What complete stranger's going to give you four tickets for a lecture that's been sold out for weeks? I'm only telling you what the man told me, pa. Well, it don't make sense. Stranger things have happened, Nathan. And we owe it to Dewey to find out. He's never going to feel right till he evens up things with you. We've got to give him the chance. I don't think I ever loved my mother more than I did at that moment. So down we went at eight o'clock to the big tent. Goodness, what a crowd. It's hopeless. How are we telling you what the man said, pa? Well, all right. Here's the ticket, man.  Ask. Excuse me, are there four tickets here for Dewey Craver? No, there aren't, sonny. There aren't. Oh, Dewey. I'm sorry, pa. Well, that's all right, son. You've done your best. Oh, don't look so downcast, sonny. I haven't tickets for you. But if you follow this usher, we have a fine place for all of you to hear Mr. Bryan's lecture. Follow me, please. So we followed the usher inside the crowded tent. Then we followed right down the center aisle. Then we followed him right up some steps onto the platform where the mayor of Belleville and a lot of important people were sitting, and almost in the middle of the stage were four empty chairs, which the usher told us to take. And then before pa even had time to pinch himself, someone announced, Our speaker of the evening, Mr. William Jennings Bryan. Good morning. And what they think Mr. Bryan did Before he started to speak, he looked right over at me and smiled. You should have seen the look on pa's face. Then Mr. Bryan began to speak. I speak to you tonight on the Prince of Peace. And by the time he reached the end of his speech, Before thine mystic alter, heavenly truth, I kneel in manhood as I now renew. I knew just what I wanted to be when I grew up. Just let me kneel till this dull warm decay and life's last shade be brightened by thy wrath. I want to be a great man like William Jennings Bryan. I never got to be a great man though. I didn't even get to be mailman or bandmaster or a magician. I'm a farmer, same as pa was. And when folks want to make me feel real good, well, they tell me I'm like he was. I'm sure our radio listeners join the audience in the theater tonight applauding the performance of William Powell and the others in tonight's cast on the Cavalcade of America. Next week, Cavalcade presents the exciting Hollywood star Lucille Ball in Skylark's song. It's a dramatic portrayal of the brilliant American soprano Grace Moore, the girl from Jellico, Tennessee with spectacular triumphs in opera concerts and motion pictures constitute a sparkling American success. We invite you to join us. Tonight's DuPont Cavalcade was written by Frank Gabrielson. Music was composed by Arden Cornwell and conducted by Donald Bryan. William Powell appeared by arrangement with Metro-Goldwyn-Mayer, producers of Irving Berlin's Technicolor Musical, Easter Parade starring Judy Garland and Fred Astaire. Featured in tonight's Cavalcade William Powell was Donald Hastings as Dewey Craver, the boy. Agnes Young as the mother and Rosemary Rice as Martha. This is Ted Pearson inviting you to listen next week to Skylark's song starring Lucille Ball. Cavalcade of America is presented each week from the stage of the Longing Theater on Broadway in New York and is brought to you by the DuPont Company of Wilmington, Delaware.