2016-03-07 52 views
0

我很努力地用Python結束我的程序,我只想輸入qquit來結束程序。這是我的代碼用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

首先,你有一個縮進問題。而且,只有在按下Enter後,'input'纔會返回。 – 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將是一條路。

使用breakreturn是更好的做法,因爲它更容易在稍後向程序中添加功能並使代碼更好地流動(不會突然退出「跳躍」)。

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