"Robert Berman" <berma...@cfl.rr.com> wrote
def getuserinput():
while True:
s1 = raw_input('Enter fraction as N,D or 0,0 to exit>>')
delim = s1.find(',')
if delim < 0:
print 'invalid user input'
else:
n = int(s1[0:delim])
d = int(s1[delim+1::])
return n,d
Personally I'd do this with
try:
n,d = s1.split(',')
return int(n),int(d)
except ValueError:
print 'invalid user input'
continue
Note ValueError works for both the int conversion and the split()
assignment
def main():
while True:
n,d = getuserinput()
if n == 0 or d == 0: return 0
correct. Please note there is no true ending return for getuserinput() as
it
is hung off an if statement and if by some chance it breaks, it should
return None which will abort the program.
Since you are inside an infinite loop you should only break if you get an
uncaught exception which will generate a stack trace anyhow
That seems fair enough to me...
HTH,
--
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor