On Sun, 31 Aug 2014 22:38:12 +0100, Mark Lawrence <breamore...@yahoo.co.uk> wrote:
>On 31/08/2014 22:02, Seymore4Head wrote: >> import math >> import random >> import sys >> >> ex='Hey buddy get away from the car' >> newex = ex.split() >> sentence="" >> >> print (newex) >> wait = input (" Wait") >> >> def pigword(test): >> for x in range(len(test)): > >Please read up on how to use for loops as the above is usually a code smell. > >> if test[x] in "AEIOUaeiou": >> stem = test [x:] >> prefix = test [:x] Unnecessary brackets? I tried deleting the brackets and that doesn't seem to work. I tried changing the brackets to parenthesizes and that didn't work. Although I would prefer brackets to parenthesizes as you don't need shift to type them. >> pigword = stem + prefix + "ay" >> print ("Stem ",stem) >> print ("Prefix",prefix) >> print (pigword) >> break >> return (pigword) > >This is Python so please get rid of those unnecessary brackets. Having >done that assume that you have an empty test so your loop never gets >entered, the local pigword never gets assigned before the return hence >your UnboundLocalError. > >> >> for x in range(len(newex)): > >Ditto. > >> sentence = sentence + pigword(newex[x])+ " " >> print (sentence) >> wait = input (" Wait") >> >> The program seems to work and it does work with everything I have >> tried so far. The one exception is if you change "the" to "my" (in >> the first line) the program crashes. >> >> >> Traceback (most recent call last): >> File "C:\Documents and >> Settings\Administrator\Desktop\Functions\test.py", line 25, in >> <module> >> sentence = sentence + pigword(newex[x])+ " " >> File "C:\Documents and >> Settings\Administrator\Desktop\Functions\test.py", line 22, in pigword >> return (pigword) >> UnboundLocalError: local variable 'pigword' referenced before >> assignment >>>>> -- https://mail.python.org/mailman/listinfo/python-list