邮箱验证问题http://cs101.openjudge.cn/practice/03087/

题目链接:


我写的代码(仅写了定义函数的部分,因为输入若干行,输出若干行的写法也不会):
def mailbox_verification(m):
    l = len(m)
    def step1(m):
        n1 = 0
        for i in range(l):
            if m[i] == '@':
                n1 += 1
        if n1 == 1:
            return 'YES'
        else:
            return 'NO'
    def step2(m):
        lst = ['@','.']
        if m[0] not in lst and m[-1] not in lst:
            return 'YES'
        else:
            return 'NO'
    def step3(m):
        if step1(m) == 'YES' and step2(m) == 'YES':
            for j in range(l):
                if m[j] == '@':
                    index = j
            n2 = 0
            for k in range(index+2,l):
                if m[k] == '.':
                    n2 += 1
            if n2 > 0 and m[index+1] != '.':
                return 'YES'
            else:
                return 'NO'
        else:
            return 'NO'
    if step3 == 'YES':
        return 'YES'
    else:
        return 'NO'
m = input()
print(mailbox_verification(m))
代码可以运行,但是跑不对,输入正确的邮箱地址却输出了“NO”
求各位指导,谢谢!