这是用于检查密码长度为9个字符,字母数字且至少包含1个数字的函数的一部分。理想情况下,我应该能够使用第一个if语句,但奇怪的是,它并没有运行。我无法弄清楚为什么test1.isalpha以' True'在if语句中,但打印为' False'。
Path file = Files.createTempFile(null, ".txt");
try (InputStream stream = this.getClass().getResourceAsStream("/key.txt")) {
Files.copy(stream, file, StandardCopyOption.REPLACE_EXISTING);
}
aesEncrypt.setSecretKey(file.toString());
答案 0 :(得分:1)
在if(if (test1.isalpha):
)中,您正在测试方法实例,而不是此方法的结果。
您必须使用if (test1.isalpha()):
(括号)
答案 1 :(得分:0)
您必须if test1.isalpha()
而不是if test1.isalpha
test1.isalpha
是一种方法,test1.isalpha()
将返回结果True
或False
。检查时是否始终满足条件方法。而另一个取决于结果。
看看这种不确定性。
In [13]: if test1.isalpha:
print 'test'
else:
print 'in else'
....:
test
In [14]: if test1.isalpha():
print 'test'
else:
print 'in else'
....:
in else
答案 2 :(得分:0)
这样的事情怎么样?
len(test1)==9
确保长度为9 hasNumbers(inputString)
函数返回字符串char.isdigit()
re.match("^[A-Za-z0-9]*$", test1)
使用python re / regular expression import re
test1 = 'abcd12345'
def hasNumbers(inputString):
return any(char.isdigit() for char in inputString)
if re.match("^[A-Za-z0-9]*$", test1) and hasNumbers(test1) and len(test1) == 9:
print('Huzzah!')