'Guess the Number Program Exits in 2nd Inputs

really a beginner here. I was following "Automate the Boring Stuff with Python" book and the author makes you write a short "guess the number" program. The book gives a solution but I wanted to pursue my own one. I do not know why this program exits on 2nd input. Can you tell me whats wrong with it, I was not able to figure it out even though its a pretty basic code.

import random

secretNumber = random.randint(1,20)
print("I got a number in my mind from 1 to 20")
guess = int(input("Take a guess."))
numberOfTries = 0

if guess < secretNumber:
    print("Your guess is lower than my number")
    numberOfTries = numberOfTries + 1
    int(input("Take a guess."))

elif guess > secretNumber:
    print("Your guess is higher than my number")
    numberOfTries =+ 1
    guess = int(input("Take a guess."))

if guess == secretNumber:
    print("You guessed right!")
    print("You found my number in" + str(numberOfTries))


Solution 1:[1]

Here's the code properly formatted:

import random

secretNumber = random.randint(1,20)
print("I got a number in my mind from 1 to 20")
guess = -1
numberOfTries = 0
while guess != secretNumber:
    # inserted space after input
    guess = int(input("Take a guess: "))
    if guess < secretNumber:
        print("Your guess is lower than my number")
        # changed to +=
        numberOfTries += 1
        # removed input()

    elif guess > secretNumber:
        print("Your guess is higher than my number")
        # changed the =+ to +=
        numberOfTries += 1

    if guess == secretNumber:
        print(f"You guessed right!\nYou found my number in {numberOfTries} tries!")

I suggest not copy-pasting but reading the comments and understanding the changes.

Furthermore, here is a bit more advanced code (just the while loop part):

while guess != secretNumber:
    guess = int(input("Take a guess: "))
    if guess != secretNumber:
        if guess > secretNumber:
            higher_lower = "higher"
        else:
            higher_lower = "lower"
        numberOfTries += 1
        print(f"Your guess is {higher_lower} than my number")

Good luck with python!

Solution 2:[2]

It is because you need to put the guessing part in a loop. So far you only have a single instance of checking your guessed value against the correct value. Thus:

secretNumber = random.randint(1,20)
guess = int(input("Take a guess."))

while guess != secretNumber:
    # logic from above
    #    .  .  .  . 
    guess = int(input("Take a guess."))

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 Andrej Prsa