Python - 检查字符串是否包含数字

时间:2015-10-19 01:32:51

标签: python input

我正在创建一个使用while循环的函数来要求用户输入通过条件的密码; min8-15max字符的长度,包括至少一个整数。我很难理解如何正确检查整数的输入。

我的节目:

def enterNewPassword():
    while True:
        pw = input('Please enter a password :')
        for i in pw:
            if type(i) == int:
                if len(pw) >= 8 and len(pw) <= 15:
                    break
        if int not in pw:
            print('Password must contain at least one integer.')
        if len(pw) < 8 or len(pw) > 15:
            print('Password must be 8 and no more than 15 characters in length.')
    return pw

2 个答案:

答案 0 :(得分:4)

尝试:

if not any(c.isdigit() for c in pw)

而不是

if int not in pw:
    print('Password must contain at least one integer.')

int是一个类型对象,您需要检查是否存在字符0-9。

答案 1 :(得分:0)

您可以使用正则表达式,例如:

    import re
    password = "hello"
    matches = re.findall('[0-9]', password)
    if len(matches) < 1:
        print "Password must contain at least one integer"