Python Forum

Full Version: I have a syntax error!
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hello, i have been trying to make a guess the number game as a beginner project. I am very new to coding and wrote the following code:

import random
import sys

a = (random.randint(1,10))

#print (a)

c = 3

while c > 0:
    
    b = int(input("Guess a number from 1 to 10:" ))
     
    #print (b)

    if a == b:
        print("You guessed the right Number!")
    
        c = 0
    else:
        if c == 1:
            print("You guessed the wrong Number and you have run out of guesses!")

        else:
            print("You guessed the wrong Number")
            
        c = c - 1

        #print (c)

d = int(input("Type 1 to continue:" )
   
if d == 1:
    #print(d)
But when I wanted to add a restart option to my project but it didn't work. It says that there is a syntax error.
Please help me.
d = int(input("Type 1 to continue:" )
Line 31 has two open brackets and only 1 close bracket.
(Jun-22-2021, 09:52 PM)Yoriz Wrote: [ -> ]
d = int(input("Type 1 to continue:" )
Line 31 has two open brackets and only 1 close bracket.

Thanks, I didn't notice.
A couple of comments:

Why are you converting the user input to an int? Calling int(input()) will crash if the user enters anything that does not represent an integer. Since your program does not actually use the integer value, I would convert the random number to a string and compare strings. That way the user can enter anything without crashing the program.

While loops with counters aren't used much in Python. Use a for loop and break instead. In the example below the for loop gives the player 3 chances go guess the number. If the player guesses correctly the program breaks out of the for loop. If the player does not guess correctly the for loop completes and the "else:" code is executed. I don't know if any other programming language has for..else, but I find myself using it often in Python.
import random

while True:
    number = str(random.randint(1,10))
    for guess in range(3):
        if input('Guess a number from 1 to 10: ') == number:
            print('You guessed correctly!')
            break
        else:
            print('Your guessed wrong.')
    else:
        print(f'You are out of guesses.  The number was {number}')

    if input('Would you like to play again (y/n)? ') not in 'yY':
        break