2021年1月27日星期三

How to escape Iterated loop Python

Hey there,

I recently started learning python and Since I knew a bit of JavaScript, I got a little head start to python that what most beginner learners have when learning python. Since I started learning python, I have been taking challenges and working on my own little project in the mean time. The current challenge I have right now is to make a password validator.

My problem:

I have spent well over 2 hours trying to figure out how to count the number of special chars and numbers in a string (password). I still haven't perfected the counting but my main problem right now Is getting the function to print out the result

Right, so I have the counter here:

def password_validator():      password = input("Please input your password >>> ")        for element in password:            num_list = ['1','2','3','4','5','6','7','8','9','0',]            for x in num_list:              num_count = 0              if element.count(x):                  num_count = 1                  if element.count(x):                      num_count = 2                      num_pass_strength = 1                      if num_count == 2:                          num_pass_strength = 1                  else:                      num_pass_strength = 0              elif num_count == 0:                  num_pass_strength = 0            spec_chars = ['!', '@', '#', '$', '%', '&', '*',]                    for c in spec_chars:              spec_count = 0              if element.count(c):                  spec_count = 1                  if element.count(c):                      spec_count = 2                      if spec_count == 2:                          spec_pass_strength = 1                  else:                      spec_pass_strength = 0              elif spec_count == 0:                  spec_pass_strength = 0  

This basically counts the number of digits and special chars in the password.

This is the how I calculate the password strength:

        add_strength = 0            if num_pass_strength == 1:              add_strength += 1          if spec_pass_strength == 1:              add_strength +=1            pass_strength = add_strength  

This adds one strength to the add_strength variable, and the pass_strength gets it's data from the add_strength variable aswell.

And this is what I think I am having trouble with:

            if pass_strength == 1:                  is_weak_pass = True              elif pass_strength == 2:                  is_medium_pass = True              elif pass_strength == 3:                  is_strong_pass = True            if is_weak_pass == True:              print("Weak")          elif is_medium_pass == True:              print("Medium")          elif is_strong_pass == True:              print("Strong")  

This is supposed to check the value of the strength and define a bool - variable for the the desired output.

My main problem right now is though, when I run the script and enter the a password,
it leaves me with an out put like this

Output:  Please input your password >>> &^%&^%  Weak  Weak  Weak  Weak  Weak  Weak  

Could somebody please tell me what I have done wrong. It is really bugging me and I would even love to figure out something like this for my other project. Thanks

Full Code:

  def password_validator():      password = input("Please input your password >>> ")        for element in password:            num_list = ['1','2','3','4','5','6','7','8','9','0',]            for x in num_list:              num_count = 0              if element.count(x):                  num_count = 1                  if element.count(x):                      num_count = 2                      num_pass_strength = 1                      if num_count == 2:                          num_pass_strength = 1                  else:                      num_pass_strength = 0              elif num_count == 0:                  num_pass_strength = 0            spec_chars = ['!', '@', '#', '$', '%', '&', '*',]                    for c in spec_chars:              spec_count = 0              if element.count(c):                  spec_count = 1                  if element.count(c):                      spec_count = 2                      if spec_count == 2:                          spec_pass_strength = 1                  else:                      spec_pass_strength = 0              elif spec_count == 0:                  spec_pass_strength = 0                add_strength = 0                if num_pass_strength == 1:                  add_strength += 1              if spec_pass_strength == 1:                  add_strength +=1                pass_strength = add_strength                  if pass_strength == 1:                  is_weak_pass = True              elif pass_strength == 2:                  is_medium_pass = True              elif pass_strength == 3:                  is_strong_pass = True            if is_weak_pass == True:              print("Weak")          elif is_medium_pass == True:              print("Medium")          elif is_strong_pass == True:              print("Strong")      password_validator()  
https://stackoverflow.com/questions/65930228/how-to-escape-iterated-loop-python January 28, 2021 at 10:33AM

没有评论:

发表评论