Lists and for loops: 51280: initialize has_dups to False for each item in the list, check if the number of times it is found in the list is > 1. If so, set has_dups to True. There is no else: part to this if clause. 51290: initialize contains to True Similar to 51280: only set contains to False in an if clause, with no else part. 51292: create a list called triangulars create a variable runningTotal, set to 0 Use a for loop, with a range from 1 to n+1. 51275: initialize list3 to empty list. Use an index-based for loop. 51276: Very similar to 51275. Just change the range() call. 51284: Initialize the list. Use a for loop with range(). Remember that range takes 3 values: start, stop, step. 51285: Very similar to 51284. 51287: Initialize the list to [] Create a variable, initialized to 1. Use a while loop. In the while loop, multiply the variable by ratio. 51210: No hints on this one, except that it can be done with no "temporary" variables, and on one line. 51216: Similar to 51210: there is a list method that solves this problem. 51219: Can be done in one line. There is a built-in function max(). 51263: Variable initialization, and then a for loop with an if inside it. 51295: Initialize the result new_list Loop over each element in lst1. The loop contains an if statement. 51296: Very similar 51295, but uses two (non-nested) for loops. --------------------------------------------------------------------------- Using Lists as Parameters 51163: Recall that you can reverse a string by slicing it with step -1: a[::-1] produces a string that is the reverse of a. --------------------------------------------------------------------------- Tuples and Mutability No hints on any problems. --------------------------------------------------------------------------- Objects Revisited No hints needed, I hope. --------------------------------------------------------------------------- User Defined Classes *** NOTE *** NOTE *** NOTE *** In these exercises, you'll have to write some class definitions. Class definitions involve multiple levels of indentation. Turings Craft has some problems with spaces vs. tabs. I have spoken to the authors of this website and they have made improvements, but I've found things are still not perfect... If you have problems with some code, make *** sure *** that you use all spaces to do your indentation. Sometimes TC will insert tabs for you -- I would erase those and type spaces instead. *** NOTE *** NOTE *** NOTE *** For all exercises: These exercises often say something like this: Write the definition of a clas Counter containing: o an instance variable counter of type int, initialized to 0. o etc. One could write this, and it would theoretically be correct: class Counter: counter = 0 # THIS LINE I DO NOT LIKE def __init__(self): .... Writing code this way does work, but actually you are making a *class variable* instead of an instance variable. ** I DO NOT LIKE THIS. ** Instead, you should write: class Counter: def __init__(self): self.counter = 0 This code creates the instance variable in the constructor, which is what the book teaches you and what I prefer.