I'm studying programming 1 and am doing the guess number 1-100 game and I need a command that if I guess over 100 the program sees it and tells me and I don´t know how I'm supposed to get that answer. I have guessed what I think the command would look like and its furthest down but I would not be surprised if I'm entirely wrong. please help me!
import random
running = True
attempts = 0
guess = 0
while running:
count = 0
number = random.randint(1, 100)
print ("gissa talet");
print ("Du ska nu gissa ett tal mellan 1 och 100, så varsågod...")
print ("skriv in ett tal")
guess = int(input())
if guess == number:
print ("""Grattis du har vunnit!
Programmet är slut""")
if guess < number:
if (number-guess) < 4:
print("""Ditt tal är för litet. gissa på ett större tal
Du är dock nära och det bränns
Programmet är slut""")
else: print ("""Ditt tal är för litet. gissa på ett större tal!
Programmet är slut""")
elif guess > number:
if (guess-number) < 4:
print ("""Ditt tal är för stort. Gissa på ett mindre tal
Du är dock nära och det bränns
Programmet är slut""")
else: print ("""Ditt tal är för stort. Gissa på ett mindre tal!
Programmet är slut""")
elif guess > 100: print ("Du måste skriva in ett tal mellan 1 och 100!")
count = 1
if count == 1:
break
CodePudding user response:
you must set the number
out of the loop, then in the loop just get the guesses
and compare them with the number
it is hard to read an unclean code, also it's better to write English here to the community can read it better. I was use the translator to understand it.
import random
running = True
attempts = 0
number = random.randint(1, 100)
print ("gissa talet");
print ("Du ska nu gissa ett tal mellan 1 och 100, så varsågod...")
while running:
# get the input
print ("skriv in ett tal")
guess = int(input())
attempts = 1
# win
if guess == number:
print (f"Grattis du vann (efter {attempts} försök)!")
# close program
print("\n\tProgrammet är slut")
running = False
# more than 100
elif guess > 100:
print ("Du måste skriva in ett tal mellan 1 och 100!")
# close program
print("\n\tProgrammet är slut")
running = False
# lower than number
elif guess < number:
# it is near
if (number-guess) < 4:
print("Ditt tal är för litet. gissa på ett större tal, Du är dock nära och det bränns")
else:
# it's not near
print ("Ditt tal är för litet. gissa på ett större tal!")
# bigger than number
elif guess > number:
# it is near
if (guess-number) < 4:
print ("Ditt tal är för stort. Gissa på ett mindre tal, Du är dock nära och det bränns")
else:
#it's not near
print ("Ditt tal är för stort. Gissa på ett mindre tal!")
CodePudding user response:
Because you set the random number inside the loop, everytime it loops, the number changes. So everytime you guess a number the number you want to guess is already different. You need to set the random number before the loop so it stays the same troughout the guesses.
Other problem your code has is that after on guess the program finishes. That's because the use of count is kinda wrong. You just need this in order to stop the code when the guess is corret:
if guess == number:
print ("""Grattis du har vunnit!
Programmet är slut""")
running = False
Then you can delete all the count
references, that would just be necessary if you at the end would want to show the amount of tries were made.
The code with no errors would look like this: ps: I added the functionality of saying how many guesses were made xD
I could have made it a lot cleaner, but i just tried to change the necessary things so it's easier to compare with your code:)
import random
running = True
attempts = 0
guess = 0
count = 0
number = random.randint(1, 100)
print ("gissa talet")
print ("Du ska nu gissa ett tal mellan 1 och 100, så varsågod...")
while running:
count = 1
print ("skriv in ett tal")
guess = int(input())
if guess == number:
print ("""Grattis du har vunnit!
Programmet är slut""")
print(f"You guessed correct in the {count}º try:)")
running = False
if guess < number:
if (number-guess) < 4:
print("""Ditt tal är för litet. gissa på ett större tal
Du är dock nära och det bränns
Programmet är slut""")
else: print ("""Ditt tal är för litet. gissa på ett större tal!
Programmet är slut""")
elif guess > number:
if (guess-number) < 4:
print ("""Ditt tal är för stort. Gissa på ett mindre tal
Du är dock nära och det bränns
Programmet är slut""")
else: print ("""Ditt tal är för stort. Gissa på ett mindre tal!
Programmet är slut""")
elif guess > 100: print ("Du måste skriva in ett tal mellan 1 och 100!")