Discuss / Python / 第二题始终想不到不用if的方法,感觉应该有方法去掉空字符,不过不知道

第二题始终想不到不用if的方法,感觉应该有方法去掉空字符,不过不知道

Topic source

浴火化影

#1 Created at ... [Delete] [Delete and Lock User]

第一题

import re

def is_valid_email(addr):
    em=re.compile(r'[\w\.]*\@\w*\.com')
    if em.match(addr):
       return True
    else:
       return False 

# 测试:
assert is_valid_email('someone@gmail.com')
assert is_valid_email('bill.gates@microsoft.com')
assert not is_valid_email('bob#example.com')
assert not is_valid_email('mr-bob@example.com')
print('ok')

第二题

# -*- coding: utf-8 -*-
import re

def name_of_email(addr):
    addrs=re.split(r'[\<\>\@]',addr)
    if addrs[0]:
       return addrs[0]
    else:
       return addrs[1]

# 测试:

assert name_of_email('<Tom Paris> tom@voyager.org') == 'Tom Paris'
assert name_of_email('tom@voyager.org') == 'tom'
print('ok')

  • 1

Reply