patternpythonMinor
"Number guessing game" in Python
Viewed 0 times
gamenumberpythonguessing
Problem
I am new to Python and I have tried to come up with a code for the number guessing game. But I am pretty sure this is not the right way to do it. I am able to get the right output, however, my code is pretty long. Any ideas on using a different logic or to reduce the code size would help.
I also would like to know how to code profile a python code for performance.
I am using IDLE and Python 3.+
```
import random
def main():
while(True):
inputchoice = input("Are you ready? Y/N : ")
if(inputchoice.strip() in ("y","Y","yes","Yes","YES","YEs","yeS","YeS","yEs","yES")):
print("Ok. Lets begin")
randomnumberguessinggame()
break
elif(inputchoice.strip() in ("no","No","NO","nO","n","N")):
print("Let me know when you are ready")
break
else:
print("Invalid Entry. Try again")
def randomnumberguessinggame():
print("Get ready to start guessing")
actualnumber = random.randrange(0,1000)
#print("The number to be guessed is %d"%actualnumber)
flag = True;
while(flag):
try:
guessednumber = int(input("Enter your guess "))
if(guessednumber > actualnumber):
print("That was a wrong guess. Your guess is higher than my number")
while(True):
retry = input("Would you like to try again? Y/N : ")
if(retry.strip() in ("y","Y","yes","Yes","YES","YEs","yeS","YeS","yEs","yES")):
flag = True;
break
elif(retry.strip() in ("no","No","NO","nO","n","N")):
flag = False;
break
else:
print("Invalid Entry. Try again")
elif(guessednumber < actualnumber):
print("That was a wrong guess. Your guess is lower than my number")
while(True):
I also would like to know how to code profile a python code for performance.
I am using IDLE and Python 3.+
```
import random
def main():
while(True):
inputchoice = input("Are you ready? Y/N : ")
if(inputchoice.strip() in ("y","Y","yes","Yes","YES","YEs","yeS","YeS","yEs","yES")):
print("Ok. Lets begin")
randomnumberguessinggame()
break
elif(inputchoice.strip() in ("no","No","NO","nO","n","N")):
print("Let me know when you are ready")
break
else:
print("Invalid Entry. Try again")
def randomnumberguessinggame():
print("Get ready to start guessing")
actualnumber = random.randrange(0,1000)
#print("The number to be guessed is %d"%actualnumber)
flag = True;
while(flag):
try:
guessednumber = int(input("Enter your guess "))
if(guessednumber > actualnumber):
print("That was a wrong guess. Your guess is higher than my number")
while(True):
retry = input("Would you like to try again? Y/N : ")
if(retry.strip() in ("y","Y","yes","Yes","YES","YEs","yeS","YeS","yEs","yES")):
flag = True;
break
elif(retry.strip() in ("no","No","NO","nO","n","N")):
flag = False;
break
else:
print("Invalid Entry. Try again")
elif(guessednumber < actualnumber):
print("That was a wrong guess. Your guess is lower than my number")
while(True):
Solution
Advice 1
I would not abuse the user with the question whether he wants to continue; just have a command (say,
Advice 2
The Python way is
Advice 3
You don't have to use parentheses in the branch and loop conditionals.
Summa summarum
I had this in mind:
Hope that helps.
I would not abuse the user with the question whether he wants to continue; just have a command (say,
quit) for quitting the game while still guessing.Advice 2
randomnumberguessinggameThe Python way is
random_number_guessing_game.Advice 3
You don't have to use parentheses in the branch and loop conditionals.
Summa summarum
I had this in mind:
import random
def main():
actual_number = random.randrange(0, 1000)
while True:
guess = input("Enter your guess: ")
if guess.strip().lower() == "quit":
print("Bye!")
return
try:
guess_number = int(guess)
except ValueError:
print(guess, "is not an integer!")
continue
if guess_number actual_number:
print("Your guess is too large.")
else:
print(guess_number, "Excellent!")
return
main()Hope that helps.
Code Snippets
import random
def main():
actual_number = random.randrange(0, 1000)
while True:
guess = input("Enter your guess: ")
if guess.strip().lower() == "quit":
print("Bye!")
return
try:
guess_number = int(guess)
except ValueError:
print(guess, "is not an integer!")
continue
if guess_number < actual_number:
print("Your guess is too small.")
elif guess_number > actual_number:
print("Your guess is too large.")
else:
print(guess_number, "Excellent!")
return
main()Context
StackExchange Code Review Q#154434, answer score: 3
Revisions (0)
No revisions yet.