def toDecimal(value, base): if not isinstance(base, int): raise TypeError('base must be integral') if not 2 <= base <= 10: raise ValueError('must have 2 <= base <= 10') if not isinstance(value, str): raise TypeError('value must be a string') if len(value) == 0: raise ValueError('value must be nonempty') highDigit = str(base-1) for digit in value: if not '0' <= digit <= highDigit: raise ValueError('invalid digit for given base') return int(value, base) # This should be successful