gpt4 book ai didi

python - 检查 "password"的多个条件

转载 作者:行者123 更新时间:2023-12-02 01:26:47 25 4
gpt4 key购买 nike

我正在尝试编写可以检查输入是否包含的代码;

  • 至少 8 个字母,其中至少 1 个是数字 (0-9)
  • 包含大小写字符

我一直陷入“输入密码,返回true,再次输入密码,退出”的单循环......

在编程方面相当新,我的第一个学期正在做 atm,所以我们将不胜感激!

这是我到目前为止的程序

def is_valid():
valid = 0
password = input("Password: ")
for ele in password:
if ele.isupper and ele.islower and ele.isdigit and len(password) > 7:
return "True"
else:
return "False"
print(is_valid())
is_valid()

我尝试将打印移动到函数内部,正如我认为的那样,到那时它就不会打印了..

最佳答案

for ele in password:
if ele.isupper and ele.islower and ele.isdigit and len(password) > 7:
return "True"
else:
return "False"

这段代码有几个问题。

首先,您引用ele.isupper函数,但因为您没有括号(),所以您'没有调用该函数。所以代码基本上是在问“ele.isupper 是否存在”?是的,它是一个函数,并且存在,因此 if 条件为 true。

使用ele.isupper()而不是ele.isupper

其次,即使您解决了该问题(ele.islowerele.isdigit 也存在同样的问题),也不可能有一个字母变为大写AND 小写字母 AND 数字。

第三,return 语句使函数立即退出,因此循环只会查看第一个字母。您不想这样做,而是希望循环遍历所有字母,并将return语句移至循环之后

我认为您实际上正在寻找这样的代码:

uc = 0
lc = 0
digits = 0

for ele in password:
if ele.isupper():
uc += 1
elif ele.islower():
lc += 1
elif ele.isdigit():
digits += 1

if uc > 1 and lc > 1 and digits > 1 and len(password) > 7:
return "True"
else:
return "False"

关于python - 检查 "password"的多个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74394498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com