2011-02-07 14 views
1

私のpythonコードは次のとおりですが、動作しません。レイズSystemExitを()の部分では私のPythonコードが正しく動作しないのはなぜですか?

import random 

secret = random.randint (1, 99) 
guess = 0 
tries = 0 

print "AHOY! I'm the Dread Pirate Oliver and I have a secret!" 
print "I will tell you where my treasure is buried if you can guess the number that I'm thinking of." 
print "It is a number from 1 to 99. I'll give you 6 tries." 

while guess != secret and tries < 6: 
    guess = input ("What's yer guess? ") 
    if guess < secret: 
     print "Too low ye scurvy dog!" 
    elif guess > secret: 
     print "Too high, landlubber!" 
    tries = tries + 1 

if guess == secret: 
    print "Avast! Ye got it! Found ma secret number, ye did!" 
    print "THE FIRST WORD IS: Awesome" 
else: 
    print "No more guesses! Better luck next time, Matey!" 
    print "Ma secret number wuz", secret 
raise SystemExit() 

import random 

secret = random.randint (1, 99) 
guess = 0 
tries = 0 

print "AHOY THERE!" 
print "ME AGAIN" 
print "I will tell you the second word if you can guess the number that I'm thinking of." 
print "It is a number from 1 to 99. I'll give you 6 tries." 

while guess != secret and tries < 6: 
    guess = input ("What's yer guess? ") 
    if guess < secret: 
     print "Too low ye scurvy dog!" 
    elif guess > secret: 
     print "Too high, landlubber!" 
    tries = tries + 1 

if guess == secret: 
    print "Avast! Ye got it! Found ma secret number, ye did!" 
    print "THE SECOND WORD IS: Land" 
else: 
    print "No more guesses! Better luck next time, Matey!" 
    print "Ma secret number wuz", secret 
raise SystemExit()  

import random 

secret = random.randint (1, 3) 
guess = 0 
tries = 0 

print "AHOY! One more thing" 
print "It is a number from 1 to 3. I'll give you 1 try." 

while guess != secret and tries < 1: 
    guess = input ("What's yer guess? ") 
    if guess < secret: 
     print "Too low ye scurvy dog!" 
    elif guess > secret: 
     print "Too high, landlubber!" 
    tries = tries + 1 

if guess == secret: 
    print "Avast! Ye got it! Found ma secret number, ye did!" 
    print "It's buried in the sand at 36 degrees North, 48 degrees east." 
else: 
    print "No more guesses! Better luck next time, Matey!" 
    print "Ma secret number wuz", secret 
raise SystemExit() 
import random 

secret = random.randint (1, 99) 
guess = 0 
tries = 0 
print "Congratz. You won!" 

、私は、人は、彼らが最後のビットを推測していない場合は続行できないようにしたいです。それは始動さえしませんが、SystemExit()を呼び出すと機能しますが、正しく推測されなくても継続します。私は何をしたいのですか?それは他のブロックの一部であるように

+0

ランダムに一度だけインポートする必要があります。通常はスクリプトの上部で行います。 – Benjamin

+1

@ベンジャミン:たくさんのコピー・ペーストのように見えます。 'import'ステートメントは、少しのリファクタリングを使用できる唯一のビットではありません... –

+1

ええ、しかし、初心者が間違えをさせる。一度に修正する方が良いです。公正なコードで動作する厄介なコードを改善することによって学ぶことができます。これはおそらくスーパーコードに作用し、動作するコードを修正することはできません:-) –

答えて

4

この行は、それ以外の場合は常に推測が正しい場合でも実行されます、インデントする必要があります。

raise SystemExit() 

また、代わりにsys.exit()を呼び出すために良いかもしれません。

また、あなたは、あなたが関数を作成し、それを2回呼び出す必要がありますコピーの代わり、二回何かをしたいとあなたのコードを貼り付けた場合:

def play(): 
    # ... 

number_of_games = 2 
for i in range(number_of_games): 
    play() 
2

をPythonでスクリプトを終了するには、あなただけのsys.exitを使用したいです:

import sys 
code = 0 
sys.exit(code) 

コードは、スクリプトの戻りコードです。スクリプトでエラーが発生しなかった場合は0になります。それ以外の場合は1から127までの数字が必要です。ユーザーエラーはスクリプトエラーではないので、ユーザーが推測しない場合は0を入力してください。

+0

スクリプトを存在させるには? :) – Benjamin

+0

それはあなたがstackoverflowで尋ねる質問です。一定。 –

関連する問題