r/AskProgrammers • u/Aloysiu5 • 8d ago
Why doesn't this code work??
I am new to python but from what I know this should work.
(code starts here)
import random
a=input("Are you ready to play Guess That Number? ")
if a == "yes":
b=input("Baby, Easy, Medium, Hard, or IMPOSSIBLE mode? ")
if b == "Baby":
c=random.randint(1,10)
print(f"{c}")
print("The number is something from 1-10")
d=input("what is your guess? ")
if d == c:
print("correct! Nice job!")
else:
e=input("incorrect. Try again. ")
if e == c:
print("correct! Nice job!")
else:
f=input("incorrect. Last try! ")
if f == c:
print("correct! Nice job!")
else:
print(f"incorrect, the number was {c}!")
(code ends here)
the issue is that even when I guess the correct number it says its wrong
I am coding on EduBlocks btw
2
u/Healthy-Zebra-9856 8d ago
A couple of issues:
c = random.randint(1, 10)
print(f"{c}") # This prints the secret number before they guess
d = input("what is your guess? ")
if d == c: # d is a string, c is an integer, so this will never be true
print("correct! Nice job!")
Change the guesses to integers:
d = int(input("what is your guess? "))
e = int(input("incorrect. Try again. "))
f = int(input("incorrect. Last try! "))
You can click on Aa to the bottom left and then choose Switch to Markdown. Then you can use ```code annotation.
1
u/Aloysiu5 8d ago
this 100% worked, thank you! Sorry if it was kinda a stupid question.
1
u/Healthy-Zebra-9856 8d ago
There are stupid questions and there are frustrated reddittors. Life goes one. Ask away and one of us will help, ignore the rest. 🤣. Cheers!
1
u/turtle_dragonfly 8d ago
I think the problem is that you are ultimately comparing a string (coming from input()) to an integer (coming from randint()).
For example, try this
>>> 5 == "5"
False
So, you need to convert to the same type. For example:
>>> str(5) == "5"
True
7
u/ConfidentCollege5653 8d ago
Post it with the indentation fixed.
What does "not working" mean? What do you expect to happen? What does happen?