 We've already seen comparison between numbers. 3 less than 5 is true. 7 greater than or equal to 9 is false. It's also possible to compare strings in Python. When you do a string comparison, for example, cat less than dog, Python compares them in lexicographic order, like what you'd find in a dictionary. The word cat appears before dog, so this expression is true. How does string comparison work? The secret is that, at the CPU level, characters are represented by numbers. Remember how you might have done secret codes in school where A was 1, B is 2, C is 3, and so on? And you could encode a word with numbers. Computers use a similar but much more sophisticated encoding system called Unicode, where numbers are assigned to uppercase, lowercase, and other characters, including those from non-English character sets. If you want to know the numeric code for any character, use the OR to function. For example, the character code for the lowercase letter M is 109, and an exclamation point has number 33. When you're doing string comparisons, and everything in the string is uppercase or lowercase, there's no problem. But because uppercase letters have lower numeric codes than lowercase, if you compare upper and lowercase words, you might get some surprises. That's why it's often a good idea to convert strings to all upper or all lowercase before you compare them.