decision structures be the computer especially for beginning programmersone of the best ways to formulate an algorithm is to simply ask yourself how you would solve the problem there are other techniques for designing good algorithms (see )howeverthe straightforward approach is often simpleclearand efficient enough generality is good we arrived at the best solution to the max of three problem by considering the more general max of numbers problem it is not unusual that consideration of more general problem can lead to better solution for some special case don' be afraid to step back and think about the overarching problem similarlywhen designing programsyou should always have an eye toward making your program more generally useful if the max of program is just as easy to write as max of threeyou may as well write the more general program because it is more likely to be useful in other situations that way you get the maximum utility from your programming effort don' reinvent the wheel our fourth solution was to use python' max function you may think that was cheatingbut this example illustrates an important point lot of very smart programmers have designed countless good algorithms and programs if the problem you are trying to solve seems to be one that lots of others must have encounteredyou might begin by finding out if the problem has already been solved for you as you are learning to programdesigning from scratch is great experience truly expert programmershoweverknow when to borrow summary this has laid out the basic control structures for making decisions here are the key points decision structures are control structures that allow program to execute different sequences of instructions for different cases decisions are implemented in python with if statements simple decisions are implemented with plain if two-way decisions generally use an if-else multi-way decisions are implemented with if-elif-else decisions are based on the evaluation of conditionswhich are simple boolean expressions boolean expression is either true or false python has dedicated bool data type with literals true and false conditions are formed using the relational operatorsand >some programming languages provide exception handling mechanisms which help to make programs more "bulletproof python provides try-except statement for exception handling algorithms that incorporate decisions can become quite complicated as decision structures are nested usually number of solutions are possibleand careful thought should be given to produce correctefficientand understandable program