0

以下の関数は入力コマンドを呼び出し、str.isalnum() かどうかをチェックします。

def enterPass(str):
    x = raw_input("enter password Alpha or Alphanumeric! 'No_Space' :")
    if x.isalnum():
        print "saved"
    else:
        print "try again"
    return;

enterPass上記に続いて、関数が3回呼び出されたときに存在する下の関数があります。

_try = 1
while (_try <= 3):
    enterPass("password")
    _try += 1

私の意図は、パスワードを入力するときに、それが英数字かどうかを確認する必要があるということでした。そうである場合は、「保存済み」と表示されて終了し、そうでない場合は再度パスワードを要求し、ユーザーがパスワードを 3 回正しく取得できなかった場合、プログラムは終了する必要があります。

私が直面している問題は、「保存済み」プロンプトで isalnum() を正常に受け入れると、このプログラムを終了できないことです。パスワードの再入力を求めるループが再び発生しています。この機能を意図したとおりに機能させ、おそらくより効率的にする方法を提案してください。

上記のプログラムは学術目的のためのものであり、現在のところ有用なアプリケーションはありません。

4

2 に答える 2

0

sys をインポートして sys.exit(0) を実行できます

import sys


if x.isalnum():
        print "saved"
        sys.exit(0)

sys.exit は、IDLE で実行しているときにプログラムを終了するときに一連のエラーを表示しますが、実際の最終的なプログラムでは表示されないため、無視してください。

ただし、それはプログラム全体を終了したい場合です。単純にループから抜け出し、別の方法でプログラムを続行したい場合は、次のことができます。

if x.isalnum():
        print "saved"
        break

ブレークが機能するには、ブレークもループ内にある必要があります。

于 2013-06-09T03:35:24.860 に答える