gpt4 book ai didi

python - 如何限制某些用户输入?

转载 作者:太空宇宙 更新时间:2023-11-03 14:33:02 24 4
gpt4 key购买 nike

我正在创建一个密码验证模块,但我不知道如何为所述密码设置某些规则。密码至少需要1个大写字母、1个小写字母和1个数字

这是我到目前为止编写的代码:

def validacion_contraseña():
flag = 1
import re
while (flag == 1):
cont = 0
pass=input("Ingresa una contraseña:")
# r = re.match("^[a-z]*$", usser)
for x in pass:
cont = cont + 1
if (cont < 8):
print(True)
flag = 0
if not (re.match("[aA-zZ,0-9]",pass)):
print("El nombre de usuario puede contener solo letras y números.")
flag = 0
if (flag == 1):
print(True)
flag = 0

最佳答案

首先,不要使用 pass 作为变量 - 它是一个 python 关键字(意味着“什么也不做”)...

def something():
pass

接下来,我建议分别计算每个类别(nums/upper/lower),然后检查它们是否满足要求。

另请注意,您几乎总是只想导入某些内容一次。除某些高级情况外,所有导入语句都应位于文件的最顶部。

最后,让我们使用 bool valid 变量稍微整理一下循环条件...

import re

def validacion_contraseña():
valid = False
while not valid:
contrasena = input("Ingresa una contraseña:")
nums = len(re.findall('[0-9]', contrasena))
lower = len(re.findall('[a-z]', contrasena))
upper = len(re.findall('[A-Z]', contrasena))

if nums >= 1 and lower >= 1 and upper >= 1:
valid = True
print('Contraseña: {0}' + contrasena)

我们使用 re.findall() 来查找与该模式的每个非重叠匹配项。对于 1 字符模式,这实际上返回匹配字符的列表。

然后我们使用 len() 计算返回的项目数。

关于python - 如何限制某些用户输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47148511/

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