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
  Syntax error for "root = Tk()" dlwaddel 15 1,013 Jan-29-2024, 12:07 AM
Last Post: dlwaddel
Photo SYNTAX ERROR Yannko 3 334 Jan-19-2024, 01:20 PM
Last Post: rob101
  Syntax error while executing the Python code in Linux DivAsh 8 1,454 Jul-19-2023, 06:27 PM
Last Post: Lahearle
  Code is returning the incorrect values. syntax error 007sonic 6 1,137 Jun-19-2023, 03:35 AM
Last Post: 007sonic
  syntax error question - string mgallotti 5 1,251 Feb-03-2023, 05:10 PM
Last Post: mgallotti
  Syntax error? I don't see it KenHorse 4 1,194 Jan-15-2023, 07:49 PM
Last Post: Gribouillis
  Syntax error tibbj001 2 847 Dec-05-2022, 06:38 PM
Last Post: deanhystad
  Python-for-Android:p4a: syntax error in main.py while compiling apk jttolleson 2 1,777 Sep-17-2022, 04:09 AM
Last Post: jttolleson
  Mysql Syntax error in pymysql ilknurg 4 2,291 May-18-2022, 06:50 AM
Last Post: ibreeden
  Solving equation equal to zero: How to resolve the syntax error? alexfrol86 3 1,896 Feb-21-2022, 08:58 AM
Last Post: deanhystad

Forum Jump:

User Panel Messages

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