Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
I have a syntax error!
#1
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.
Reply
#2
d = int(input("Type 1 to continue:" )
Line 31 has two open brackets and only 1 close bracket.
Reply
#3
(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.
Reply
#4
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
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
Exclamation Invalid syntax error(Predict Ethereum Price) lulu43366 2 97 Sep-24-2021, 01:24 PM
Last Post: lulu43366
  Line 42 syntax error..Help!!1 patpython 4 277 Sep-01-2021, 03:22 PM
Last Post: deanhystad
  Unexplained Invalid syntax Error cybertooth 5 361 Aug-02-2021, 10:05 AM
Last Post: cybertooth
  import module with syntax error Skaperen 7 609 Jun-22-2021, 10:38 AM
Last Post: Skaperen
Heart near "(": syntax error Maryan 3 743 Jun-21-2021, 08:05 AM
Last Post: ibreeden
Exclamation getting a syntax error and i don't know why ilikedofs 10 1,087 May-13-2021, 08:52 PM
Last Post: deanhystad
  Even number code syntax error MrCeez 1 573 May-02-2021, 06:43 PM
Last Post: Larz60+
  error in your SQL syntax Xuli 10 1,006 May-02-2021, 12:27 PM
Last Post: Xuli
  Function syntax error Changosoyyo 2 691 Mar-07-2021, 10:42 PM
Last Post: Changosoyyo
  Syntax error on line 29 manwithjeans 3 817 Feb-27-2021, 08:28 AM
Last Post: perfringo

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020