I was trying to replicate the strcmp from c in python.I typed the former program and it worked but the latter seems to work as well?please explain the latter one.I only expected
Former one just compares the length of two strings. But latter one try to find which one is bigger. For instance:
A = "abcdef"
B = "b"
len(A) > len(B) will be true But B > A will be true, because "b" > "a" (which is the first letter of A)
<
, >
for string operands compare lexicogrphical orders, not their lengths.
>>> 'a' < 'b'
True
>>> 'a' > 'b'
False
>>> 'cat' > 'banana'
True
>>> 'cat' < 'banana'
False
Upper-case characters are smaller than their lower-case version.
>>> 'A' < 'a'
True
>>> 'A' > 'a'
False
So, your code does case-sensitive comparison.
You can use str.casefold for case-insensitive comparsison, (Python 3.3+ only).
>>> 'A'.casefold()
'a'
>>> 'A'.casefold() == 'a'.casefold()
True