Get Name Meter

def get_int(c):
    if(c == 'a'):
        return (200 + ord(c))
    
    if(c == 'e'):
        return (250 + ord(c))
    
    if(c == 'i'):
        return (300 + ord(c))
    
    if(c == 'o'):
        return (350 + ord(c))
    
    if(c == 'u'):
        return (400 + ord(c))
    
    return ord(c)

def get_name_meter(name,  cache={}):
    
    if name in cache: 
        return cache[name]
    
    print('getting from expensive calculation')
    
    chars = list(name) # name.split won't return chars
    
    meter = 0
    for c in chars:
        
        meter += get_int(c)
    
    cache[name] = result = meter
    return result
get_name_meter('Toronto')
getting from expensive calculation





1807
get_name_meter('Canada')
getting from expensive calculation





1168
get_name_meter('Montreal')
getting from expensive calculation





1634
get_name_meter('Montreal')
1634