On 09/05/15 04:24, Kayla Hiltermann wrote:
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,
I would first replace all non-space separators with spaces
then do the split
separators = ',.;:' # plus any others you might get
for sep in separators:
inString.replace(sep,' ')
sides = inString.split()
import re
def pythagorean_function():
sides = raw_input("Please enter three sides to a triangle: \n").split("
|,")
sides_int = []
for value in sides:
try:
sides_int.append(int(value))
except ValueError:
continue
You could use a list comprehension here, although you
may not have seen them yet. It would look like:
try:
sides_int = [int(value) for value in sides]
except ValueError:
print ("Remember all sides must be integers \n")
return # no point continuing with the function using bad data
while len(sides_int) != 3:
print ("you did not enter THREE sides! remember all sides must be
integers \n")
break
This should just be an 'if' test, not a while loop.
You only want to test the length once.
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()
Rather than use recursion here it would be better to
put your function in a top level while loop.
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!"
You could write that like
redo_question = 'Y'
while redo_question.upper() == 'Y':
pythagorean_function()
redo_question = raw_input("would you like to see if another
triangle is a pythagorean triple? Y/N\n")
print "thanks for stopping by!"
HTH
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor