1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
def isint_1(text):
if text[:1] =='-':
return text[1:].isdigit()
else:
return text.isdigit()
def isint_2(text):
try:
int(text)
return True
except:
return False
if __name__ == "__main__":
import sys
import time
GOOD_INTS = ['1', '-1', '456789', '-123456', ]
BAD_INTS = ['1-', '--1', '', 'text!']
# unitary tests
for text in GOOD_INTS:
assert isint_1(text)
assert isint_2(text)
for text in BAD_INTS:
assert not isint_1(text)
assert not isint_2(text)
sys.stdout.write('A L L T E S T S P A S S E D !\n')
# time computing
LABELS = {isint_1:'isint_1', isint_2:'isint_2'}
for function_under_test in [isint_1, isint_2]:
start = time.time()
for count in range(1000000):
for text in GOOD_INTS:
function_under_test(text)
sys.stdout.write("INT : time for %s: %.03f\n"%(LABELS[function_under_test], time.time() - start))
for function_under_test in [isint_1, isint_2]:
start = time.time()
for count in range(1000000):
for text in BAD_INTS:
function_under_test(text)
sys.stdout.write("NOT INT : time for %s: %.03f\n"%(LABELS[function_under_test], time.time() - start)) |
Partager