26
player_input = '' # This has to be initialized for the loop

while player_input != 0:

    player_input = str(input('Roll or quit (r or q)'))

    if player_input == q: # This will break the loop if the player decides to quit

        print("Now let's see if I can beat your score of", player)
        break

    if player_input != r:

        print('invalid choice, try again')

    if player_input ==r:

        roll= randint (1,8)

        player +=roll #(+= sign helps to keep track of score)

        print('You rolled is ' + str(roll))

        if roll ==1:

            print('You Lose :)')

            sys.exit

            break

プログラムを終了するように指示しようとしていますroll == 1が、何も起こらず、使用しようとするとエラーメッセージが表示されます。sys.exit()


これは、プログラムを実行したときに表示されるメッセージです。

Traceback (most recent call last):
 line 33, in <module>
    sys.exit()
SystemExit
4

6 に答える 6

8

sys.exit()おそらく何らかのエラーとして想定しているSystemExit例外が発生します。プログラムでSystemExitを発生させずに正常に戻るようにしたい場合は、関数を関数でラップして、使用する予定の場所から戻ることができます。sys.exit

于 2013-02-01T03:09:51.443 に答える
5

コードに sys をインポートしなかったか、関数を呼び出すときに () を閉じませんでした...試してください:

import sys
sys.exit()
于 2019-09-10T15:47:39.687 に答える
2

2.7 を使用:

from functools import partial
from random import randint

for roll in iter(partial(randint, 1, 8), 1):
    print 'you rolled: {}'.format(roll)
print 'oops you rolled a 1!'

you rolled: 7
you rolled: 7
you rolled: 8
you rolled: 6
you rolled: 8
you rolled: 5
oops you rolled a 1!

次に、「おっと」の印刷をに変更しますraise SystemExit

于 2013-02-01T03:20:58.530 に答える
0

実際の例

オプション1:sys.exit()

Python を終了し、SystemExit 例外を発生させます。

import sys
try:
  sys.exit("This is an exit!")
except SystemExit as message:
  print(message)

出力:

This is an exit!

オプション 2:sys.exit()

メッセージなしで Python を終了します

import sys
sys.exit()

# runtime: 0.07s 
于 2022-02-14T16:13:16.623 に答える