Horribly noobful string question
Hi Everyone, My first post here as I just begin to learn programming in general and python in particular. I have all the noobie confused questions, but as I work thru the tutorials I'm sure I'll find most my answers. This one is eluding me tho... I am working in the tutorials, writing scripts as presented and then modifying and expanding on my own to try to learn. I'm working with one that asks the user to 'guess a number I'm thinking', and with simple while loop, flow control and operands, returning an answer to guess again or you got it. I've added a 'playagain' function I've got working, but what I want is to stop the program from crashing when someone enters a string value instead of a int value. I know strings are immutable, and they can be changed to an int equivalent, but I just want the script to recognize the input as a string and print a simple "that's not a number, try again' type of message. I can't find the syntax to include in the if/elif/else block to include a line that says something like, elif guess == print "that's not a number! please guess again!" I know that's not right, but can you see what I'm looking for and offer a suggestion? Thanks in advance all. -- http://mail.python.org/mailman/listinfo/python-list
Re: Horribly noobful string question
"Xavier Morel" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > Fredrik Lundh wrote: >> "SeNTry" wrote: >> >>> My first post here as I just begin to learn programming in general and >>> python in particular. I have all the noobie confused questions, but as >>> I >>> work thru the tutorials I'm sure I'll find most my answers. >>> >>> This one is eluding me tho... I am working in the tutorials, writing >>> scripts >>> as presented and then modifying and expanding on my own to try to learn. >>> I'm working with one that asks the user to 'guess a number I'm >>> thinking', >>> and with simple while loop, flow control and operands, returning an >>> answer >>> to guess again or you got it. I've added a 'playagain' function I've >>> got >>> working, but what I want is to stop the program from crashing when >>> someone >>> enters a string value instead of a int value. I know strings are >>> immutable, >>> and they can be changed to an int equivalent, but I just want the script >>> to >>> recognize the input as a string and print a simple "that's not a number, >>> try >>> again' type of message. I can't find the syntax to include in the >>> if/elif/else block to include a line that says something like, >> >> assuming you're using raw_input() to get the guess, you always >> have a string (in python's sense of that word). >> >> what you seem to want is to check if the string contains a number >> or not. here's one way to do this: >> >> guess = raw_input("make a guess: ") >> if guess == secret: >> print "congratulations!" >> elif not guess.isdigit(): >> print "that's not a number! please guess again!" >> ... >> > > that, or just write something like > > guess = raw_input("Make your guess > ") > try: > if int(guess) == secret: > # ok > except ValueError: > # no good >> >> assuming you're using raw_input() to get the guess, you always >> have a string (in python's sense of that word). >> >> what you seem to want is to check if the string contains a number >> or not. here's one way to do this: >> >> guess = raw_input("make a guess: ") >> if guess == secret: >> print "congratulations!" >> elif not guess.isdigit(): >> print "that's not a number! please guess again!" >> ... >> > > that, or just write something like > > guess = raw_input("Make your guess > ") > try: > if int(guess) == secret: > # ok > except ValueError: > # no good Sry for late reply, I've been out of town. Thanks for the responses, I'm just sitting down to try these out. I'm kind of surprised there's not a more obvious way to handle simply identifying strings. Anyways, here's the original code snippet from a tut. and then my modified effort. I was using input instead of raw_input. Looking at it now I'm not even sure why I did some of the stuff I did HAHA! I just made functions for convenience and practice. I'm sure it's laughable, but maybe you can see what I was doing and tell me what other errors I made just for learning... Everything seems to work well, except when the playagain function in my modified code gets a '2' input to quit, it prints 'aw, ok bye then' and then the next line is the print from the loopfunc if statement, "looping while statement now complete". If I remove the again="" line in the playagain function, it prints 2 times... wierd. I put this in there because I suspected that the variable was remaining and wanted to clear it at the start of the function, but I've now read that the variable in a function is destroyed when the function ends... is this right? My brain hurts... ORIGINAL number = 24 guess = int(raw_input('Enter an integer : ')) if guess == number: print 'Congratulations, you guessed it.' # New block starts here print "(but you do not win any prizes!)" # New block ends here elif guess < number: print 'No, it is a little higher than that' # Another block # You can do whatever you want in a block ... else: print 'No, it is a little lower than that' # you must have guess > number to reach here print 'Done' # This last statement is always executed
Re: Horribly noobful string question
SRY, that last bit of code got messed up. Hopefully it will look right now... #define two functions first, then use them. def loopfunc(looping): while looping: guess= input("guess a number. see if you can guess what I'm thinking") if guess == number: print "you got it!" looping=False playagain("") print "looping while statement now complete" elif guess < number: print "nope, a little higher!" else: print "no, a little lower!" def playagain(again): again="" again= input("would you like to play again? type '1' for yes and '2' for no") if again==1: print "great!" loopfunc(True) elif again==2: print "aww! Ok, bye then" return else: print "that's not a 1 or a 2! Try again!" playagain("") number=24 loopfunc(True) > > -- http://mail.python.org/mailman/listinfo/python-list
Any good Python forums?
Hello, Are there any good active python forums online? Especially any forum that has an uber-noob section! -- http://mail.python.org/mailman/listinfo/python-list
Re: Any good Python forums?
"SeNTry" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > Hello, > > Are there any good active python forums online? Especially any forum that > has an uber-noob section! > Hey, thanks all! I know this is a good location, you guys seem to be real patient with newb questions, but I think I'm even newbier than the beginners here! I just like forums better than newsgroups because I can search easier and replies bring a post back to top so it stays active. A quick etiquette question here, it's been a looonnng time since I used newsgroups much. I asked a question and got a couple replies and then posted a follow-up, but it's buried now and I don't think I'll get anymore replies. Should I post follow-ups as new posts, or just hope someone notices the added thread and replies? Also, I'm definitely trying to write the code first, so if I post here, I'll show my examples of how badly python can be written. -- http://mail.python.org/mailman/listinfo/python-list
Customizable GUI package for Win$?
I want to know which GUI package should I turn to if I want to make something resembling MS OneNote. A lot of packages have "Notebook" style widgets or tabbed stuff, but wxPython's are not really customizable from what I know, and neither are TKs. I'm not sure about pyGTK and it's primarily a Linux GUI package. I'd like to color them(gradients), make them have a custom shape, and other shiny not-so-native stuff. Yes, to some olde-schoole hackers it might seem shallow, but in all honesty, a slick good comfortable AND good looking interface is like a modern car. Sure, to get from point A to B you could use a lawnmower, but we're not doing that, and for a reason, right? :) - Sick sense of humor? Visit Yahoo! TV's Comedy with an Edge to see what's on, when. -- http://mail.python.org/mailman/listinfo/python-list