繁体   English   中英

Python 使用的字符串比较 if 语句

[英]String comparison if-statement used by Python

我理解(我已经阅读了“比较使用字典顺序”)“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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM