On 01/-10/-28163 02:59 PM, Nevins Duret wrote:
Hello Python collective,

I am trying to wrap my head around what exactly is causing me not to get
any output or error message in the following code:

#!/usr/bin/env python3.1

import random

def main():

def chosen_letter():

chosen_letter = Consonant()
chosen_letter = Vowel()

return chosen_letter

Consonant = random.choice( [B, C, D, F, G, H, J, K, L, M, N, P, Q, R,
S, T, V, W, X, Z] )
Vowel = random.choice( [A, E, I, O, U, Y] )
print("Choose a letter"( Consonant, Vowel ))
print("You randomly chose"( Consonant, Vowel ))

if Consonant == ( "B C D F G H J K L M N P Q R S T V W X Z" ):
print("You randomly chose a Consonant")
else:
print("You randomly chose a Vowel")

if Consonant:
gameStatus = "CONTINUE"
elif Vowel == A or Vowel == E or Vowel == I or Vowel == O or Vowel ==
U or Vowel == Y:
gameStatus = "FINISHED ALL VOWELS"

if gameStatus == "FINISHED ALL VOWELS":
print("FINISHED DISPLAYING ALL VOWELS")
else:
print("LOOKING FOR MORE VOWELS")

if __name__ == "__main__": main()

All this code is intended to do is to have a user, in this case my 4
year old, choose letters of the alphabet until all vowels are specified.
For whatever reason I'm neither getting an error message nor am I
obtaining any messages in the output console. Any help on this would be
greatly appreciated. I eventually want to make this into a gui in order
to introduce young kids to programming, by having the letters print out
to screen as the user makes choices based on vowels and consonants.
Again, thank you for any help and expertise.

Best Regards,

freesparks

Not too clear what you're up to here. The first problem is that your main() function returned before it did anything useful. That's because you didn't indent the return statement of the nested chosen_letter() function to match the rest of the body. Since it was indented like the body of main(), the rest of main() was ignored.

Having said that, you have a pile of problems in this code. Not a good idea to name local variables the same as the function name. This isn't BASIC. And you assign two different values to the same name. And you call two functions, Consonant() and Vowel(), when the only other symbols by those names are probably character strings.

You call random.choice with a list made up of undefined symbols. You'll need to put quotes around each of "B", "C", etc.

You compare Consonant to a string, when you probably meant to check if it was in the string. Consider using the "in" operator

And it looks like you meant to have a loop inside main(), since your last print is "LOOKING FOR MORE VOWELS"

HTH,
DaveA

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to