Copyright (C) 2000-2012 |
GNU Info (python2.1-tut.info)More on ConditionsMore on Conditions ================== The conditions used in `while' and `if' statements above can contain other operators besides comparisons. The comparison operators `in' and `not in' check whether a value occurs (does not occur) in a sequence. The operators `is' and `is not' compare whether two objects are really the same object; this only matters for mutable objects like lists. All comparison operators have the same priority, which is lower than that of all numerical operators. Comparisons can be chained: e.g., `a < b == c' tests whether `a' is less than `b' and moreover `b' equals `c'. Comparisons may be combined by the Boolean operators `and' and `or', and the outcome of a comparison (or of any other Boolean expression) may be negated with `not'. These all have lower priorities than comparison operators again; between them, `not' has the highest priority, and `or' the lowest, so that `A and not B or C' is equivalent to `(A and (not B)) or C'. Of course, parentheses can be used to express the desired composition. The Boolean operators `and' and `or' are so-called _short-circuit_ operators: their arguments are evaluated from left to right, and evaluation stops as soon as the outcome is determined. For example, if `A' and `C' are true but `B' is false, `A and B and C' does not evaluate the expression `C'. In general, the return value of a short-circuit operator, when used as a general value and not as a Boolean, is the last evaluated argument. It is possible to assign the result of a comparison or other Boolean expression to a variable. For example, >>> string1, string2, string3 = '', 'Trondheim', 'Hammer Dance' >>> non_null = string1 or string2 or string3 >>> non_null 'Trondheim' Note that in Python, unlike C, assignment cannot occur inside expressions. C programmers may grumble about this, but it avoids a common class of problems encountered in C programs: typing `=' in an expression when `==' was intended. automatically generated by info2www version 1.2.2.9 |