Help with guessing game :D

Robert Gonda robertgonda1994 at gmail.com
Tue Oct 29 13:45:56 EDT 2013


On Tuesday, October 29, 2013 5:24:08 PM UTC, ru... at yahoo.com wrote:
> On 10/29/2013 05:45 AM, Robert Gonda wrote:
> 
> > Hey guys, so I figured I will give python a shot. I got to exercise that has asked me to create a number guessing game which weren't a problem, 
> 
> > guessesTaken = 0 #This is a "Guesses taken counter"
> 
> > print("Hello, what's your name?") #Asking the user to input their name
> 
> > N = raw_input() #What the user's name is
> 
> > import random #This is importing the random function
> 
> > number = random.randint(1, 999) #This tells the random function to generate a random number between 1 to 1000
> 
> > print(N + ", I'm thinking of a number between 1-1000") #Not needed but tells the user their name and tells them that it's thinking of a number betweeen 1 to 1000
> 
> > while guessesTaken < 10: 
> 
> >     print('Take a guess.') 
> 
> >     guess = input()
> 
> >     guess = int(guess)
> 
> >     guessesTaken = guessesTaken + 1
> 
> >     if guess < number: #Says that if the guess is too low it will print a message saying that the guess is too low
> 
> >         print('Your guess is too low.') 
> 
> >     if guess > number: #Says that if the guess is too high it will print a message saying that the guess is too high
> 
> >         print('Your guess is too high.')
> 
> >     if guess == number:
> 
> >         break #Breaks the loop, meaning it will continue to loop for 10 times while giving them messages from above depending on their results
> 
> > if guess == number:
> 
> >     guessesTaken = str(guessesTaken)
> 
> >     print("Congrat's, " + N + "! You managed to get the number in " + guessesTaken + " guesses!") #Tells the user they managed to guess it in x number of times
> 
> > if guess != number: #If the user is unable to guess the number in 10 times it will stop the loop and give the user a message
> 
> >     number = str(number)
> 
> >     print("No, the right number was" + number)
> 
> > 
> 
> > However the problem is that it also asked me to do the following : If at least one of the digit guessed is right it will say "y" otherwise "n" which I can't seem to do :/ any help?
> 
> 
> 
> and
> 
> 
> 
> On 10/29/2013 08:25 AM, Alister wrote:
> 
> > On Tue, 29 Oct 2013 06:10:30 -0700, Robert Gonda wrote:
> 
> >[...]
> 
> >> Now you have confused me completely, sorry im just new to python and
> 
> >> just learning everything :) could you perhaps give me an example? or
> 
> >> part of the code that's missing?
> 
> > 
> 
> > you will probably learn more through trial & error than you will from 
> 
> > being given an answer
> 
> 
> 
> While this is true for some people sometimes, I don't think
> 
> it is always true.  Very often it is easier and faster to 
> 
> learn something be seeing a worked out example and studying
> 
> it to see how it works.  This is especially true when one 
> 
> is new to a programming language and doesn't have a good
> 
> understanding of the terminology and concepts that people
> 
> who have been using the language take for granted.
> 
> 
> 
> > to shine some more light on my advise try the following
> 
> > 
> 
> > code="7689"
> 
> > for digit in code:
> 
> > 	print(digit)
> 
> > 
> 
> > does this give you any Ideas on how to proceed?
> 
> 
> 
> Robert, please see if this is what you were trying to do:
> 
> 
> 
> -------------------------
> 
> guessesTaken = 0 #This is a "Guesses taken counter"
> 
> print("Hello, what's your name?") #Asking the user to input their name
> 
> N = input() #What the user's name is
> 
> import random #This is importing the random function
> 
> number = random.randint(1, 999) #This tells the random function to generate a random number between 1 to 1000
> 
> 
> 
> number_str = str (number)     # Convert 'guess' to a string of digits.
> 
> while len (number_str) < 3:   # If there are less than 3 digits, add leading "0"s until it is three digits.
> 
>     number_str = "0" + number_str
> 
> 
> 
> print(N + ", I'm thinking of a number between 1-1000") #Not needed but tells the user their name and tells them that it's thinking of a number betweeen 1 to 1000
> 
> while guessesTaken < 10: 
> 
>     print('Take a guess.') 
> 
>     guess = input()
> 
>     guess = int(guess)
> 
>     guessesTaken = guessesTaken + 1
> 
>     if guess < number: #Says that if the guess is too low it will print a message saying that the guess is too low
> 
>         print('Your guess is too low.') 
> 
>     if guess > number: #Says that if the guess is too high it will print a message saying that the guess is too high
> 
>         print('Your guess is too high.')
> 
>     if guess == number:
> 
>         break #Breaks the loop, meaning it will continue to loop for 10 times while giving them messages from above depending on their results
> 
> 
> 
>     guess_str = str (guess)     # Convert 'guess' to a string of digits.
> 
>     while len (guess_str) < 3:  # If there are less than 3 digits, add leading "0"s until it is three digits.
> 
>         guess_str = "0" + guess_str
> 
>     if len (guess_str) > 3: guess_str = guess_str[-2:]  # Make sure it is no longer than 3 digits.
> 
>     # Here, we know that 'number_str' is exactly 3 digits.  'guess_str' is at least
> 
>     # 3 digits but could be more if the user entered, for example, 34567.
> 
>     print ("digits matched: ", end='')
> 
>     for i in range (2, -1, -1):
> 
>         # 'i' will have the values, 2, 1, 0. 
> 
>         if guess_str[i] == number_str[i]: print ("Y", end='')
> 
>         else: print ("N", end='')
> 
>     print()
> 
> 
> 
> if guess == number:
> 
>     guessesTaken = str(guessesTaken)
> 
>     print("Congrat's, " + N + "! You managed to get the number in " + guessesTaken + " guesses!") #Tells the user they managed to guess it in x number of times
> 
> if guess != number: #If the user is unable to guess the number in 10 times it will stop the loop and give the user a message
> 
>     number = str(number)
> 
>     print("No, the right number was" + number)
> 
> -------------------------
> 
> 
> 
> Some comments...
> 
>   guess_str[-2:]
> 
> you want to read about "slices" in the Python docs, for example
> 
>   http://docs.python.org/2/tutorial/introduction.html#strings
> 
> The -2 means indexing starts counting from the right end of the string 
> 
> rather than the left had the index been positive.
> 
> 
> 
>   print ("Y", end='')
> 
> The end='' means don't print a newline after printing the "Y" string.
> 
> See http://docs.python.org/2/library/functions.html#print
> 
> 
> 
> Also, what Mark and Rusi were trying to say (not very clearly)
> 
> is that when you post from Google Groups, Google Groups insert
> 
> a lot of empty lines in the ">" the at the top of the message.
> 
> 
> 
> Look at your message, 
> 
>   https://groups.google.com/d/msg/comp.lang.python/6WMfzbtIyi8/AV4sce1zPicJ
> 
> (make sure to click the "- show quoted text -" link!) 
> 
> to see what everybody who doesn't use Google Groups sees.
> 
> 
> 
> When post a message, please try to edit you message before
> 
> you send it to get rid of  those blank lines.  In most cases
> 
> you can get rid of all the ">" text, *except* for a small
> 
> amount that gives the gist of what you are responding to.

> >Thank you very much for your reply, however it gives me an error, something about the "end", do you know whats wrong with it? (Still not sure if im posting this right so sorry)



More information about the Python-list mailing list