python - Need to fix a function to turn an even number into the next highest odd number -
this current code:
def main(): print() print("program draw triangles.") print("written josh sollenberger.") print() triangle = '' while(true): choice = getchoice() if choice == "1": triangle = triangle + makestripeup() if choice == "2": triangle = triangle + makestripedown() if choice == "3": print(triangle) if choice == "4": triangle = triangle + "\n" if choice == "5": break def makestripeup(): triangle = '' base = getbase() blanks = int(input("enter number of blanks preceding each line: ")) character = input("enter character used draw: ") in range(base//2 + 1): triangle = triangle + ((' ' *(i+blanks) + character * (base - (2*i)))) +'\n' return triangle def makestripedown(): triangle = '' base = getbase() blanks = int(input("enter number of blanks preceding each line: ")) character = input("enter character used draw: ") in range(base//2 + 1, -1, -1): triangle = triangle + ((' ' *(i+blanks) + character * ( base - (2*i)))) +'\n' return triangle def getbase(): base = int(input("enter size of base: ")) if base % 2 == 0: base = base + 1 else: return base my program makes triangles out of users input. need base odd number prevent triangle looking (with base of 10):
** **** ****** ******** ********** when enter 10, 'nonetype' error i'm assuming referring base. if use odd number, 11, works should.
* *** ***** ******* ********* *********** is there needs changed in getbase() function?
you have evenness test backwards; if base % 2 == 1, base odd.
try instead
def get_base(): base = int(input("enter size of base: ")) if not base % 2: # base base += 1 return base
Comments
Post a Comment