2016-03-07 3 views
0

Я изо всех сил пытаюсь закончить свою программу на Python, все, что я хочу, это ввести q или quit, чтобы закончить программу, когда закончите. Вот мой кодЗавершение программы в Python

# This is a guess the number game 
import random 

guessesTaken = 0 

print('Hello! What is your name?') 
myName = input() 

number = random.randint(1, 20) 
print('Well, ' + myName + ', I am thinking of a number between 1 and 20, can  you guess it?') 

while guessesTaken < 6: 
    print('Take a guess!') 
    guess = input() 
    guess = int(guess) 

    guessesTaken = guessesTaken + 1 

    if guess < number: 
     print('Your guess is too low') 

    if guess > number: 
     print('Your guess is too high') 

    if guess == number: 
     break 

if guess == number: 
    guessesTaken = str(guessesTaken) 
    print('Good job ' + myName + '!You guessed my number in ' + guessesTaken + ' guesses!') 

    if guess != number: 
     number = str(number) 
     print('Nope. The number I was thinking of was ' + number) 

     print('Game Over') 
     choice = input('Press Q to Quit') 
     if choice == 'q' : 
     sys.exit() 

Пожалуйста, скажите мне, где я иду не так ??

+0

Во-первых, у вас проблема с отступом. Кроме того, 'input' не возвращается, пока не будет нажата кнопка« Enter ». – asimoneau

ответ

2

Из чего я могу сказать, что у вас есть две ошибки.

Для начала вам необходимо импортировать модуль sys для sys.exit().

Во-вторых, ваш отступ неверен в двух местах. Вот правильный код. Комментарии показывают, где отступы неправильны:

# This is a guess the number game 
import random 
import sys 

guessesTaken = 0 

print('Hello! What is your name?') 
myName = input() 

number = random.randint(1, 20) 
print('Well, ' + myName + ', I am thinking of a number between 1 and 20, can  you guess it?') 

while guessesTaken < 6: 
    print('Take a guess!') 
    guess = input() 
    guess = int(guess) 

    guessesTaken = guessesTaken + 1 

    if guess < number: 
     print('Your guess is too low') 

    if guess > number: 
     print('Your guess is too high') 

    if guess == number: 
     break 

if guess == number: 
    guessesTaken = str(guessesTaken) 
    print('Good job ' + myName + '!You guessed my number in ' + guessesTaken + ' guesses!') 

if guess != number: #indentation was off here 
    number = str(number) 
    print('Nope. The number I was thinking of was ' + number) 

print('Game Over') #and here 
choice = input('Press Q to Quit') 
if choice == 'q' : 
    sys.exit() # and here 
+1

Не должно быть никаких двух последних условий, иначе перерыв сразу заканчивается программой. – asimoneau

1

Как отмечалось @MarkyPython, у вас есть некоторый отступ ошибки, и вам необходимо импортировать SYS, если вы хотите использовать выход. Обратите внимание, что с учетом кода, который у вас есть, на самом деле плохо использовать практику sys.exit(). Вместо этого я рекомендую вам использовать break. Это приведет к выходу из цикла while. Поскольку после этого у вас нет кода, ваша программа любезно выйдет.

Если вы добавите больше кода позже, вы, вероятно, захотите поместить свой код внутри функции. В этот момент можно будет использовать return.

Использование break или return является лучшей практикой, потому что это облегчает добавление функций в вашу программу позже и делает поток вашего кода лучше (нет резкого перехода «перейти»).

print('Hello! What is your name?') 
myName = input() 

number = random.randint(1, 20) 
print('Well, ' + myName + ', I am thinking of a number between 1 and 20, can  you guess it?') 

while guessesTaken < 6: 
    print('Take a guess!') 
    guess = input() 
    guess = int(guess) 

    guessesTaken = guessesTaken + 1 

    if guess < number: 
     print('Your guess is too low') 

    if guess > number: 
     print('Your guess is too high') 

    if guess == number: 
     break 

    if guess == number: 
     guessesTaken = str(guessesTaken) 
     print('Good job ' + myName + '!You guessed my number in ' + guessesTaken + ' guesses!') 

    if guess != number: 
     number = str(number) 
     print('Nope. The number I was thinking of was ' + number) 

     print('Game Over') 
     choice = input('Press Q to Quit') 
     if choice == 'q' : 
      break # instead of exit 
+0

Большое спасибо за вашу помощь, попробуем позже. Это моя первая попытка на Python, как вы, вероятно, можете сказать :) – DanRadford

+0

Нет проблем, удачи в этом! – DevShark

Смежные вопросы