hi, i am trying to make a pythagorean triples checker (a^2 + b^2 = c^2). the user enters three sides to a triangle and my code determines if it is a pythagorean triple (aka right triangle) or not. i have the entire code pretty much done, except i want to account for variability in user input, like using commas or just spaces. the user input is initially a string, but is converted to a list once run through .split() . I would like to split the user input by commas or spaces, so: 3 4 5 3,4,5 3, 4, 5 all become: [“3", “4", “5"]. yes, the inputs are strings but i convert - or make sure - they are integers later in the program. my main issue is that i cannot split by commas or spaces at the same time. i tried using the vertical bar - .split(“ |,”) but it only executed the split by space, not the split by comma. as of now, i can only split by either. the issue is that when i split by spaces - .split(“ ) , “3,4,5” does not split and becomes the list [“3,4,5”]. on the other hand, “3, 4, 5” does split, but becomes [“3,”, “4,”, “5”]. the problem is the same if i replace the .split(“ “) by split(“,”), only the commas are replaced by spaces.
sorry if that was super confusing. below is my code. there is a commented out section after sides = raw_input … that i left in for reference. all other parts of the code work. any suggestions would be greatly appreciated!! thanks import re def pythagorean_function(): sides = raw_input("Please enter three sides to a triangle: \n").split(" |,") ''' when sides is created, it is a string. when it is split by a .split action, it becomes a list regardless if the items in sides are actually split or not. i can't figure out how to split sides (when created) by a comma OR a space. the following code attempts (and fails). re.split(r",| ",sides) print sides for item in sides: if "," in item: re.split(r",",item) print "comma" ''' sides_int = [] for value in sides: try: sides_int.append(int(value)) except ValueError: continue while len(sides_int) != 3: print ("you did not enter THREE sides! remember all sides must be integers \n") break sides.sort() if sides[0]**2 + sides[1]**2 == sides[2]**2: print "\nthis triangle IS a pythagorean triple!\n" else: print "\nthis triangle is NOT a pythagorean triple\n" redo() def redo(): redo_question = raw_input("would you like to see if another triangle is a pythagorean triple? Y/N\n") if redo_question == "Y": pythagorean_function() else: print "thanks for stopping by!" pythagorean_function() _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor