错误方法没有定义,即使它看起来是正确的



我想检查用户在python上键入的参数。我写了一个方法来检查参数是否是半角字符。如果你是一个讲英语的人,你可能不熟悉,但有些语言使用两个单词的宽度来表示一个单词。所以我只想写一个方法来检查用户是否没有使用唯一的语言。方法名称是";has_ digit(密码(";

这是我的全部代码

from sys import argv 
import re
if 1 >= len(argv):
print("Please type an argument")
exit()
else:
print("Checking password strength")
password = argv[1]
if has_digit(password) == True and has_lower_letter(password) == True and has_upper_letter(password) == True:
print("This password is strong")
else:
print("This passwor is weak. Please choose another password")
def has_digit(password):
"""
パスワードに半角数字が含まれるかをチェックします。
Args:
チェック対象のパスワード
Returns:
半角数字を含んでいればTrue
"""
m = re.search(r'[0-9]', password)
return True if m else False

def has_lower_letter(password):
"""
パスワードに英字小文字が含まれるかをチェックします。
Args:
チェック対象のパスワード
Returns:
英字小文字を含んでいればTrue
"""
m = re.search(r'[a-z]', password)
return True if m else False

def has_upper_letter(password):
"""
パスワードに英字大文字が含まれるかをチェックします。
Args:
チェック対象のパスワード
Returns:
英字大文字を含んでいればTrue
"""
m = re.search(r'[A-Z]', password)
return True if m else False

错误消息

File "pw_check.py", line 12, in <module>
if has_digit(password) == True and has_lower_letter(password) == True and has_upper_letter(password) == True:
NameError: name 'has_digit' is not defined

如何修复此错误?提前谢谢。

这就是python解析文件的方式。您的函数应该在调用之前定义好,比如:

from sys import argv 
import re
def has_digit(password):
"""
パスワードに半角数字が含まれるかをチェックします。
Args:
チェック対象のパスワード
Returns:
半角数字を含んでいればTrue
"""
m = re.search(r'[0-9]', password)
return True if m else False

def has_lower_letter(password):
"""
パスワードに英字小文字が含まれるかをチェックします。
Args:
チェック対象のパスワード
Returns:
英字小文字を含んでいればTrue
"""
m = re.search(r'[a-z]', password)
return True if m else False

def has_upper_letter(password):
"""
パスワードに英字大文字が含まれるかをチェックします。
Args:
チェック対象のパスワード
Returns:
英字大文字を含んでいればTrue
"""
m = re.search(r'[A-Z]', password)
return True if m else False
if 1 >= len(argv):
print("Please type an argument")
exit()
else:
print("Checking password strength")
password = argv[1]
if has_digit(password) == True and has_lower_letter(password) == True and has_upper_letter(password) == True:
print("This password is strong")
else:
print("This passwor is weak. Please choose another password")

相关内容

  • 没有找到相关文章

最新更新