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]
             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



--
My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.

Mark Lawrence

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to