python strings are very flexibleand python is an extremely powerful tool for string-based manipulations if you don' do lot of string processing in your daily worktry designing tool that is exclusively intended for manipulating strings try to come up with something innovativebut if you're stuckconsider writing web log analyzer (how many requests per hourhow many people visit more than five pages?or template tool that replaces certain variable names with the contents of other files spend lot of time toying with the string formatting operators until you've got the syntax memorized write bunch of template strings and objects to pass into the format functionand see what kind of output you get try the exotic formatting operatorssuch as percentage or hexadecimal notation try out the fill and alignment operatorsand see how they behave differently for integersstringsand floats consider writing class of your own that has __format__ methodwe didn' discuss this in detailbut explore just how much you can customize formatting make sure you understand the difference between bytes and str objects the distinction is very complicated in older versions of python (there was no bytesand str acted like both bytes and str unless we needed non-ascii characters in which case there was separate unicode objectwhich was similar to python ' str class it' even more confusing than it sounds!it' clearer nowadaysbytes is for binary dataand str is for character data the only tricky part is knowing how and when to convert between the two for practicetry writing text data to file opened for writing bytes (you'll have to encode the text yourself)and then reading from the same file do some experimenting with bytearraysee how it can act both like bytes object and list or container object at the same time try writing to buffer that holds data in the bytes array until it is certain length before returning it you can simulate the code that puts data into the buffer by using time sleep calls to ensure data doesn' arrive too quickly study regular expressions online study them some more especially learn about named groups greedy versus lazy matchingand regex flagsthree features that we didn' cover in this make conscious decisions about when not to use them many people have very strong opinions about regular expressions and either overuse them or refuse to use them at all try to convince yourself to use them only when appropriateand figure out when that is if you've ever written an adapter to load small amounts of data from file or database and convert it to an objectconsider using pickle instead pickles are not efficient for storing massive amounts of databut they can be useful for loading configuration or other simple objects try coding it multiple waysusing picklea text fileor small database which do you find easiest to work with