bugfix> python > 投稿

これは私のパスワードチェッカーコードです(有効かどうか)

有効になるまで、パスワードチェッカーを5回実行する必要があります。 有効な場合は、ループから抜け出す必要があります。

パスワードは7文字以上にする必要があります。 パスワードには、数字(少なくとも2つ)と文字の両方を含める必要があります。 (そうでない場合は、Falseを返します) スペースがないはずです。 数字と文字以外のものがある場合、Falseを返す必要があります

forループでpassword_checker関数を実行する必要があります。 しかし、「if」の後に何を言うべきかよくわかりません。

私が試してみました -

if a=False:
    print(password_checker(i))
    print(Invalid password)

しかし、それはうまくいきませんでした。

また、forループでpassword_checker()を呼び出す方法がわかりません。

最後に、forループにブレークを入れる必要があります 入力のパスワードが有効な場合。 しかし、私はそれを配置するための適切な部分がどこにあるかわからない

def password_checker(password):
    a=True
    num_Count = 0
    if password.isalpha() == True:
        print ("error! needs numbers")
        a = False
    if password.isnum() == True:
         print ("error! needs characters")
         a = False
    if password.isspace() == True:
         print ("error! no space allowed")
         a = False
    if len(password)<=8:
         print ("error! needs more than 8 characters")
        a = False
    for i in range(0, 10):
         num_Count += password.count(i)
    if num_Count(password.count()) < 2:
             print("error! needs at least 2 numbers")
            a = False

password = str(input("Enter password: "))
for i in range(0,5):
     if ____________________:
         print(password_checker(i))
         print("Invalid password")
    else:
        print(password_checker(i))
        print("Valid password")
        break

関数を機能させるには、どのようにコードを修正する必要がありますか?

回答 1 件
  • for i in range(0,5):
        password = str(input("Enter password: "))
        password_checker_result = password_checker(password)
        if not password_checker_result:
            print("Invalid password")
        else:
            print("Valid password")
            break
    
    

    このコードはあなたのために働くでしょう、今私に説明させてください:

    フローは次のとおりです。

    これは5回行われます(forループ内):

    1)ユーザーにパスワードを要求します。

    2)パスワードが有効かどうかを確認します。

    3)有効/無効な結果に従って印刷します。

    forループを使用しているという事実は、実際に反復インデックスを使用する必要はありません(この場合は「i」を意味します)

あなたの答え