- (6 points)
def getInt(small,large):
prompt = 'Enter a number from %d to %d: ' % (small,large)
errorMsg = 'Your number must be between %d and %d.' % (small,large)
number = small-1 # intentionally invalid
while not small <= number <= large:
try:
number = int(raw_input(prompt))
if not small <= number <= large:
print errorMsg
except ValueError:
print 'That is not a valid integer.'
return number
(click
to see it run live)
- (6 points)
def sliding(word, num=3):
if not isinstance(word,str):
raise TypeError('first parameter must be a string')
if not isinstance(num,int):
raise TypeError('second parameter must be an integer')
if not 0 < num <= len(word):
raise ValueError('second parameter can be at most length of first')
- (6 points)
def toDecimal(string, base):
if not isinstance(base, int):
raise TypeError('base must be integral')
if not 2 <= base <= 36:
raise ValueError('base must be between 2 and 36')
if not isinstance(string, str):
raise TypeError('value must be expressed as a string')
for digit in string:
if digit.isdigit():
if not 0 <= int(digit) < base:
raise ValueError('invalid digit for given base')
else
val = 10 + ord(digit) - ord('A')
if not 10 <= val < base:
raise ValueError('invalid digit for given base')