0

ゲームが終了するまでカウント ダウン メッセージでゲームを終了する関数を作成しようとしています。テキスト アドベンチャー ゲームでこのコード ブロックを何度も繰り返さなければならないので、その関数を作成することにしました。整理整頓と効率のために。しかし、そのような関数を定義して呼び出す方法がわかりません。これは私が実行しようとしているコードです:

print "That\'s a real shame..."
time.sleep(1)
print 'Exiting program in 5 seconds:'
time.sleep(1)
print '5'
time.sleep(1)
print '4'
time.sleep(1)
print '3'
time.sleep(1)
print '2'
time.sleep(1)
print '1'
time.sleep(1)
sys.exit('Exiting Game...')
break

したがって、次のように関数を定義します。

def exit():
    print "That\'s a real shame..."
    time.sleep(1)
    print 'Exiting program in 5 seconds:'
    time.sleep(1)
    print '5'
    time.sleep(1)
    print '4'
    time.sleep(1)
    print '3'
    time.sleep(1)
    print '2'
    time.sleep(1)
    print '1'
    time.sleep(1)
    sys.exit('Exiting Game...')
    break

そして、私は次のように関数を呼び出しています:

elif ready == 'n':
    exit

私は何を間違っていますか?

4

4 に答える 4

7

と入力して関数を呼び出しますexit()exit()カウントダウン コードを変更し、コードから 1 つの関数を呼び出す方法を示すために内部で呼び出す関数に変えました。

def exit():
    print "That\'s a real shame..."
    time.sleep(1)
    print 'Exiting program in 5 seconds:'
    time.sleep(1)
    count_down(5) # Call Countdown clock
    print 'Exiting Game...'
    sys.exit()

def count_down(number):
    for i in reversed(range(number)):
        print i+1
        time.sleep(1)

exit() # <-- This how you call exit, you were missing the parentheses at the end.

出力:

That's a real shame...
Exiting program in 5 seconds:
5
4
3
2
1
Exiting Game...

編集: より詳細な説明を追加しました。

最初の行は、1 つのパラメーターdef count_downを取り、カウント ダウンを処理するという 1 つの目的を持つ関数です。

def count_down(number):

2 行目には、 for ループと呼ばれるものが含まれています。このコードの目的は、オブジェクトをループすることです。4それ以降3,2,1など。同じ行の変数iは、ループが数値を通過するたびに変化し、ループ内でのみアクセスできます。最初の印刷は 5 で、次回は 4 というように続きます。

 for i in reversed(range(number)):

この関数では、2 つの追加のキーワードと 1 つのパラメーター 、およびパラメーターも使用reversedrangeますnumber

reversed(range(number))

rangeは数値のリストを作成するために使用されます。たとえば[0, 1, 2, 3, 4]、for ステートメントは最初からループし0、最後の数値に到達するまで次の数値を取得し4ます。なぜゼロから始まり、答えの最後に5ではなく、4になるのかを説明します.

reversedは、range で作成したリストを逆にするために使用されます。で開始したいので4、 ではありません0

reversed=>[0,1,2,3,4]

reversed]=>[4,3,2,1,0]

numberパラメータです。パラメータは、関数から関数を実行するときにexit()、括弧内に値を含めることによって提供される値()です。この場合、5 を指定したので、作成したリストの range範囲は 0 ~ 4 (0,1,2,3,4 = 合計 5 つの数字) になります。代わりに、括弧内に 10 を指定すると、0 から 9 までのリストが作成されます。コードは、5 から 1 ではなく、10 から 1 にカウントダウンします。

Python が の作業を開始するとfor loop、内部のコードが と で始まり、によって作成されたリストの各番号に対して実行されます。この例では 5 を指定したため、コードは合計 5 回実行されます。printsleeprange

Python が 内のコードを実行しているとき、for loop最初に print 関数が呼び出されます。for ループは4ではなくから始まるため、5いくつかの基本的な算術演算を実行し、ループする各項目の値を 1 ずつ増やす必要があります。これを行うには+ 1、 variable の後に入力しますi

5 ではなく 4 から始まる理由は、プログラミングではリストが0ではなく数字で始まるため1です。リストが 1 ではなく 0 で始まる理由について、より技術的な説明があります(この場合、リストを逆にしたため、5 ではなく 4) 。

于 2013-04-17T22:37:33.333 に答える
4

exit()ではなくとして呼び出す必要がありexitます。

于 2013-04-17T22:37:25.100 に答える