diff options
author | RossTheRoss <msattr@gmail.com> | 2019-09-24 09:52:05 -0500 |
---|---|---|
committer | RossTheRoss <msattr@gmail.com> | 2019-09-24 09:52:05 -0500 |
commit | a92b8f2407490bb48ccec5e067a80dd02edd578b (patch) | |
tree | 8c751b591376bc2e449ce5993d51987af582aafc /csci1913/Python/lab2_strap012.py | |
parent | Rearrange things (diff) | |
download | homework-a92b8f2407490bb48ccec5e067a80dd02edd578b.tar homework-a92b8f2407490bb48ccec5e067a80dd02edd578b.tar.gz homework-a92b8f2407490bb48ccec5e067a80dd02edd578b.tar.bz2 homework-a92b8f2407490bb48ccec5e067a80dd02edd578b.tar.lz homework-a92b8f2407490bb48ccec5e067a80dd02edd578b.tar.xz homework-a92b8f2407490bb48ccec5e067a80dd02edd578b.tar.zst homework-a92b8f2407490bb48ccec5e067a80dd02edd578b.zip |
Format things gooder
Diffstat (limited to 'csci1913/Python/lab2_strap012.py')
-rw-r--r-- | csci1913/Python/lab2_strap012.py | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/csci1913/Python/lab2_strap012.py b/csci1913/Python/lab2_strap012.py new file mode 100644 index 0000000..4e154f7 --- /dev/null +++ b/csci1913/Python/lab2_strap012.py @@ -0,0 +1,137 @@ +class Zillion: + def __init__(self,digits): + self.digits = digits + self.List = [] + self.toList() + + def toList(self): + badBoolean=False #Kludge + if len(self.digits) == 0 : + raise RuntimeError #Cannot make a list of nothing + for n in range (0,len(self.digits)): + if self.digits[n] is not ',': + if self.digits[n] is not ' ': + try: + self.List+=[int(self.digits[n])] + badBoolean=True + except ValueError: #Non-comma character in string + raise RuntimeError + if badBoolean is False: #No numbers in string + raise RuntimeError + else: + return self.List + + + def increment(self): + length = len(self.List) - 1 + newList = self.List + newList[len(self.List)-1] += 1 + if newList[length]>=10: #Loop to increment all 10s to 0s with carry + for n in range (0,length): + newList[length-n]=0 + newList[length-n-1]+=1 + + def isZero(self): + for p in range (0,len(self.List)-1): + if self.List[p] is not 0: + return False + return True + + def toString(self): + string='' + for q in range (0,len(self.List)): + string+=str(self.List[q]) #Make string by concatenation + return string + + + +# +# TESTS. Test the class Zillion for CSci 1913 Lab 2. +# +# James Moen +# 18 Sep 17 +# +# Every test is followed by a comment which shows what must be printed if your +# code works correctly. It also shows how many points the test is worth. +# + +try: + z = Zillion('') +except RuntimeError: + print('Empty string') + +# It must print 'Empty string' without apostrophes. 2 points. + +try: + z = Zillion(' , ') +except RuntimeError: + print('No digits in the string') + +# It must print 'No digits in the string' without apostrophes. 2 points. + +try: + z = Zillion('1+0') +except RuntimeError: + print('Non-digit in the string') + +# It must print 'Non-digit in the string' without apostrophes. 2 points. + +try: + z = Zillion('0') +except RuntimeError: + print('This must not be printed') + +# It must print nothing. 2 points. + +print(z.isZero()) # It must print True. 2 points. + +try: + z = Zillion('000000000') +except RuntimeError: + print('This must not be printed') + +# It must print nothing. 2 points. + +print(z.isZero()) # It must print True. 2 points. + +try: + z = Zillion('000 000 000') +except RuntimeError: + print('This must not be printed') + +# It must print nothing. 2 points. + +print(z.isZero()) # It must print True. 2 points. + +try: + z = Zillion('997') +except RuntimeError: + print('This must not be printed') + +# It must print nothing. 2 points. + +print(z.isZero()) # It must print False. 2 points. + +print(z.toString()) # It must print 997. 2 points. + +z.increment() + +print(z.toString()) # It must print 998. 2 points. + +z.increment() + +print(z.toString()) # It must print 999. 2 points. + +z.increment() + +print(z.toString()) # It must print 1000. 2 points. + +try: + z = Zillion('0 9,9 9') +except: + print('This must not be printed') + +# It must print nothing. 3 points. + +z.increment() +print(z.toString()) # It must print 1000. 2 points. |