I am no Python guru, I haven't even scratched the surface. And to be honest, I do not know the answer to your question. It is probably a Python 3.x thing. I would suggest looking here:
http://docs.python.org/modindex.html ...which is for --- On Sun, 1/30/11, Nevins Duret <dur...@bellsouth.net> wrote: From: Nevins Duret <dur...@bellsouth.net> Subject: Re: [Tutor] Wrapping my head around global variables!! To: tutor@python.org Date: Sunday, January 30, 2011, 2:19 PM Hello Elwin, Elwin I have no objections with you taking the idea, all I want to do is learn and connect with my some and give him something to aspire to and just plain out challenge. I purchased several python books so if you have any recommendations on others that helped you to become ,what I consider, a python guru then please send me some links. My only challenge is time and patience and sticking with. I really appreciated everyone's input in helping me understand the underlying concepts of this. It is more than appreciated. Well, Elwin, I ran the code using python2.6 and it worked perfectly. My only problem now is in trying to run it in python3. These are the steps that I've taken to resolve it: #!/usr/bin/env python3.1 from tkinter import * import tkinter.font letters ="ABCDEFGHIJKLMNOPQRSTUVWXYZ" vowels = "AEIOU" sometimes = "Y" def changeLetter(letter): chosenLetter.configure(text = letter) if letter in vowels: message.configure(text = "IS A VOWEL") elif letter in sometimes: message.configure(text = "SOMETIMES A VOWEL") else: message.configure(text = "IS A CONSONANT") root = Tk() root.title('!!NAME MY CONSONANT/ NAME MY VOWEL!!') lgFont = tkinter.font(family = "HELVETICA", size = 200) msgFont = tkinter.font(family = "HELVETICA", size = 16) mainFrame = Frame() mainFrame.pack(padx = 10, pady = 10) letterMessage = Frame(mainFrame) chosenLetter = Label(letterMessage, width = 2, height = 1, font = lgFont, relief = 'sunken') message = Label(letterMessage, text = "CHOOSE LETTER", font = msgFont, relief = 'sunken') chosenLetter.pack(padx = 10, pady = 10, fill = 'x') message.pack(padx = 10, pady = 10, anchor = 'w', fill = 'x', ipady = 5) vowelsFound = Label(mainFrame) vowelsFound.grid(row = 7, column =1, columnspan = 5, sticky = 'W') letterMessage.grid(row = 1, column = 6, rowspan = 13) count = 1 letterButtons = dict() rowCount = 1 columnCount = 1 stopPoints = (5, 10, 15, 20, 25, 26) stopIndex = 0 #letterbutton[1] = button for letter 'A' #letterbutton[2] = button for letter 'B' for letter in letters: letterButtons[count] = Button(mainFrame, text = letter, width = 5, command = lambda arg1 = letter : changeLetter(arg1)) if count == 26: columnCount = 3 letterButtons[count].grid(row = rowCount, column = columnCount) columnCount += 1 if count == stopPoints[stopIndex] and stopIndex <= 4: rowCount += 1 columnCount = 1 stopIndex += 1 count += 1 root.mainloop() When I try and run this code, I get the error: Traceback (most recent call last): File "/home/neduret/pythonproj/alphabet3.py", line 21, in <module> lgFont = tkinter.font(family = "HELVETICA", size = 200) TypeError: 'module' object is not callable Now correct me if I'm wrong, but for whatever reason, is tkFont deprecated in Python3.1? Well, this is why I used import tkinter.font instead. However, now I am getting the error message stated above. I don't know if you know of any steps I can do to resolve this however, I'm sure it must stem from either a syntax or a module I've yet to import for Python3.1, being that I had to install tkFont to get it to run under the Python2.6 environment. I specifically admired your both complete and descriptive explanation on your reasoning for every piece of line in the code. I can't thank you enough. Best Regards, Nevins Duret On 01/29/2011 07:01 PM, Elwin Estle wrote: I found myself rather intrigued with what I perceived to be the basic idea behind your programming attempt, so just for the heck of it, I played around further with the idea. Attached is what I have so far, if you are interested. It is a Tkinter GUI version with buttons for each letter and code to tell the user if it is a vowel or a consonant, or the "sometimes" vowels, y and w. It does not record letters chosen. It only uses the upper case letters, but I was thinking it might be interesting to use both upper and lower case. Right now, the letters are arranged in order, but with a total of 52 characters, both upper and lower, arranged in a grid, one could perhaps "scramble" the order of the buttons using the random.shuffle function. Python does have sound capability, depending on the platform you are running on, so it would be cool to have it play some kind of .wav file that tells the user if the letter is a vowel/consonant. You could even record the sound of each letter, then string the .wavs together so that it could say, "A is a vowel" or somesuch. I haven't messed with the sound thing, myself. Anyway, the attached code is heavily commented. Feel free to delete the attachment (if you feel I am "horning in" on your idea) or use/modify it for your own purposes. Writing it helped me learn a few things, like the whole "button - command" thing. It was driving me nuts, until I found out what the problem was. And it was a chance to use the code somebody on python tutor gave me for creating Tkinter widgets "on the fly" at program runtime. --- On Fri, 1/28/11, Nevins Duret <dur...@bellsouth.net> wrote: From: Nevins Duret <dur...@bellsouth.net> Subject: [Tutor] Wrapping my head around global variables!! To: tutor@python.org Date: Friday, January 28, 2011, 10:22 AM 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 _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor -----Inline Attachment Follows----- _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor