> def start(): .... lots of lines... > global xaxis > global yaxis
Its traditional to put global statements at the top of the function. Also you only need one line to list all of the global variables > global radiusaxis > global radiusaxis2 Similarly here., and again you can put all four in one place. > radiusaxis2.visible = 0 And since there is no input parameter and no return statement and you only call start() once... > start() Why bother with defining a function? Just put all the code inline and omit the globals and it will be the same... but better is probably to jkeep the function and use if __name__ == '__main__; start() > def graphit(type,f,range2,step): > li = curve(color=color.blue) > if type in ['y','x']: > x = -15 > radiusaxis.visible = 0 > radiusaxis2.visible = 0 > while -15 <= x <= 15: > if eval(range2): > try: > a = f(x) > if -15 <= a <= 15: > if type == 'y': > li.append(pos=(x,a,0)) > elif type == 'x': > li.append(pos=(a,x,0)) > else: > li = curve(color=color.blue) > except: > pass This is iffy. If *anthing* happens you ignore it. Now suppose due to a bug you go into an infinite loop and you try to stop using CTRL-C - it won't work! If you must use a catch-all except then do something with it - print a message at least! I got a sore head after that... I'll leave the rest for others to remark upon. :-) Alan G. _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor