bspecs [( , ,' ')( , ,')( , ,' ')( , ,' ')( , ,' ')( , ,'+')( , ,'-')( , ,' ')( , ,' ')( , ,' ')( , ,'*')( , ,'/')( , ,' ')( , ,' ')( , ,' ')( , ,'<-'),( , ,' ')self buttons [for (cx,cy,labelin bspecsself buttons append(button(self win,point(cx,cy) ,label)create the larger '=button self buttons append(button(self winpoint( , ) "=")activate all buttons for in self buttonsb activate(study this code carefully button is normally specified by providing center pointwidthheightand label typing out calls to the button constructor with all this information for each button would be tedious rather than creating the buttons directlythis code first creates list of button specificationsbspecs this list of specifications is then used to create the buttons each specification is tuple consisting of the and coordinates of the center of the button and its label tuple looks like list except that it is enclosed in round parentheses (instead of square brackets [ tuple is just another kind of sequence in python tuples are like lists except that tuples are immutable--the items can' be changed if the contents of sequence won' be changed after it is createdusing tuple is more efficient than using list the next step is to iterate through the specification list and create corresponding button for each entry take look at the loop headingfor (cx,cy,labelin bspecsaccording to the definition of for loopthe tuple (cx,cy,labelwill be assigned each successive item in the list bspecs put another wayconceptuallyeach iteration of the loop starts with an assignment (cx,cy,labelof courseeach item in bspecs is also tuple when tuple of variables is used on the left side of an assignmentthe corresponding components of the tuple on the right side are unpacked into the variables on the left side in factthis is how python actually implements all simultaneous assignments the first time through the loopit is as if we had done this simultaneous assignmentcxcylabel " each time through the loopanother tuple from bspecs is unpacked into the variables in the loop heading the values are then used to create button that is appended to the list of buttons after all of the standard-sized buttons have been createdthe larger button is created and tacked onto the list