Whenever there is a condition attached to the program flow, we turn our attention to if statements - for instance, if today is your birthday you can go out with your friends; if it is not raining, we will go out for lunch otherwise we will cook at home; if a number lies in the range 2 to 4 print twice the number; if it lies in the range 5 to 50, print thrice the number; otherwise, print the number itself. In all three cases, we had more than one path of flow; a branching is involved and therefore we make use of conditional statements. If there is exactly one condition, we use an if block. If there are exactly two conditions and they are opposite of each other, in the sense that they are mutually exclusive, for instance if input is greater than 100, do this, otherwise, do that; an input cannot be greater than 100 as well as lesser than or equal to 100 at the same time; such a scenario represents mutually exclusive conditions. We should use if-else. If there are more than two mutually exclusive conditions involved; if we are classifying grades of students based on their marks, we are talking about a mutually exclusive situation with more than two conditions because grades will generally range from A to 5 and a student cannot have more than one grade at a time. Such situations warrant the use of if-elif-else block