我理解(我读过关于"比较使用字典排序"(;Python使用的字符串比较技术";工作,但在if email.rfind('.') > email.find('@') + 1:
行中,我无法弄清楚它是如何工作的以及为什么工作。点.
是46,并且@
是64。
print("a " + str(ord("a")))
print("b " + str(ord("b")))
print("c " + str(ord("c")))
print(". " + str(ord(".")))
print("@ " + str(ord("@")))
print('aab' < 'aac')
print()
def check_email(email):
if " " not in email and "@" in email:
if email.rfind('.') > email.find('@') + 1:
return True
return False
print(check_email("mailfff@x.uss"))
print(check_email("mailfff@xus.s"))
print(check_email("mailfff@xuss"))
输出:
a 97
b 98
c 99
. 46
@ 64
True
True
True
False
因为rfind
返回字符串中字符的位置,而不是像ord
那样的ascii值
>>> email = "mailfff@x.uss"
>>> email.rfind('.')
9
>>> email.rfind('@')
7
所以if email.rfind('.') > email.rfind('@')
返回True