2012-10-04 7 views
15

Soy nuevo en Python, y estoy haciendo una especie de juego como uno de mis primeros proyectos que adivina un número entre 1 y 10, luego el usuario lo adivina. Tienen tres conjeturas, y el programa le dice al usuario si necesitan ir más alto o más bajo en su próxima suposición. La parte del código con el error no es crucial, ya que solo hace que una conjetura no se desperdicie si el usuario realiza la misma respuesta dos veces, lo que le permite volver a hacer su conjetura la primera vez pero no permite volver a tomar el segundo. En el código, he marcado dónde está el problema. Como dije, soy realmente nuevo para Python y este es probablemente un error novato aficionado. Gracias por adelantado.Error de sintaxis en los dos puntos en una instrucción if

import time # This imports the time module. 
import random # This imports the random module. 

MyNumber = random.randrange(1,10) # This picks a number for the variable 'MyNumber'. 

# Intro text and instructions. 
print('=====================================') 
print('=Welcome to GuessMyNumber!   =') 
print('=         =') 
print('=I will make a random number between=') 
print('=1 and 10, and you must guess it. If=') 
print('=you are wrong, I will tell you if =') 
print('=you need to go higher or lower. Be =') 
print('=careful, as you only have three =') 
print('=guesses!       =') 
print('=====================================') 
print() 

firstGuess = int(input('Ok then, we shall begin! What is your first guess?')) 
print() 
if firstGuess == (MyNumber): 
print('Well done! You win!') 
time.sleep(3) 
exit() 
if firstGuess < MyNumber: 
print('Go Higher!') 
time.sleep(1) 
if firstGuess > MyNumber: 
print('Go Lower!') 
time.sleep(1) 

print() 
secondGuess = int(input('Better luck this time! What is your second guess?')) 
print() 
if secondGuess == firstGuess: 
print('You tried that one last time! Don\'t worry, I won\'t count that one!') 
bungled = (1) 
secondGuess = int(input('What is your second guess?') 
if secondGuess == firstGuess:#This colon is causing the problem. 
    print('You\'ve already tried that one twice!') 
    bungled = (2) 
if secondGuess == MyNumber: 
print('Well done! You win!') 
time.sleep(3) 
exit() 
if secondGuess < MyNumber: 
print('Go Higher!') 
time.sleep(1) 
if secondGuess > MyNumber: 
print('Go Lower!') 
time.sleep(1) 

print() 
thirdGuess = int(input('This is your final chance! What is your third guess?')) 
print() 
if thirdGuess == MyNumber: 
print('Well done! You win!') 
time.sleep(3) 
exit() 
if thirdGuess < MyNumber: 
MyNumber = str(MyNumber) 
print('Sorry! You lost! The number was '+MyNumber) 
time.sleep(1) 
exit() 
if thirdGuess > MyNumber: 
MyNumber = str(MyNumber) 
print('Sorry! You lost! The number was '+MyNumber) 
time.sleep(1) 
exit() 

Respuesta

18

En realidad no es el colon. Es el soporte no cerrado en la línea anterior.

Cuando se pone raro SyntaxError, compruebe el equilibrio del soporte antes.

+0

Gracias, siempre revisaré los corchetes cuando recibo un extraño error como ese otra vez. – Chimp

2

La línea de arriba no aparece entre paréntesis. Cambiar

secondGuess = int(input('What is your second guess?')

a

secondGuess = int(input('What is your second guess?'))

+0

Muchas gracias, no estoy seguro de por qué las damas no entendieron eso. Todo funciona perfectamente ahora :) – Chimp

Cuestiones relacionadas