How would I check if 'a' is in 'b'? Need assistance
我的任务是在课堂上完成这项任务,(我正在编写代码来检查用户输入的密码是否符合准则)。
其中一部分需要我检查,例如A是否在B中,但我遇到了麻烦。这是代码的一部分,如何检查输入的密码中是否有大写字母?抱歉,我对python不熟悉,我正在尝试学习新概念!
我在网上查过,但人们说的话对我来说有点复杂(到现在为止)。
1 2 3 4 | def valid_password(pw): up = 'ABCDEFGHIJKLMNOPQRSTUVWXWY' if pw in up return True |
结合理解使用
1 2 3 4 5 6 | >>> pw1 ="abcd" >>> pw2 ="abcD" >>> any(c.isupper() for c in pw1) False >>> any(c.isupper() for c in pw2) True |
对于字符串中的每个字符,
鉴于此,您可以构造一个函数:
1 2 | def valid_password(pw): return any(c.isupper() for c in pw) |
如果只是为了检查pw是否有任何大写字符,则此方法应该有效。
1 2 3 4 5 6 7 | import re def valid_password(pw): pattern = re.compile(r'[A-Z]') if pattern.findall(pw): return True else: return False |
让我们不要忘记
1 2 3 4 | import string def valid_password(pw): return any(c in string.ascii_uppercase for c in pw) |
这几乎已经是英语了,但这检查了
在您当前的上下文中,
1 2 3 4 5 | def valid_password(pw): up = 'ABCDEFGHIJKLMNOPQRSTUVWXWY' for letter in pw: if letter in up: return True |
或者有一个内置的"isupper"
1 2 3 4 | def valid_password(pw): for letter in pw: if letter.isupper(): return True |