Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何检查字符串是否符合某些要求_Python - Fatal编程技术网

Python 如何检查字符串是否符合某些要求

Python 如何检查字符串是否符合某些要求,python,Python,如何检查字符串是否包含大小写和符号?我还没能在网上找到一个我能理解的答案,任何帮助都将不胜感激 代码: 您需要检查密码字符串的每个元素的.isupper()、is_lower()和isdigit() 此处的“any”表示至少1个字符符合条件(本例中为大写、小写和数字)这里可以使用字符串模块(标准Python库的一部分)中的多个字符串: >>> import string >>> string.ascii_lowercase 'abcdefghijklmnopq

如何检查字符串是否包含大小写和符号?我还没能在网上找到一个我能理解的答案,任何帮助都将不胜感激

代码:


您需要检查密码字符串的每个元素的.isupper()、is_lower()和isdigit()


此处的“any”表示至少1个字符符合条件(本例中为大写、小写和数字)

这里可以使用
字符串模块(标准Python库的一部分)中的多个字符串:

>>> import string
>>> string.ascii_lowercase
'abcdefghijklmnopqrstuvwxyz'
>>> string.ascii_uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> string.punctuation
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
>>> string.digits
'0123456789'
导入字符串 >>>string.ascii_小写 “abcdefghijklmnopqrstuvwxyz” >>>string.ascii_大写 “ABCDEFGHIJKLMNOPQRSTUVWXYZ” >>>字符串、标点符号 '!"#$%&\'()*+,-./:;?@[\\]^_`{|}~' >>>字符串。数字 '0123456789'
然后,您可以检查密码中的任何字符是否在以下字符串中(我还包括长度检查):

def检查通过(pwd,最小长度=8,下限=True,上限=True,punc=True,num=True):
如果长度(pwd)<最小长度:
返回错误
如果较低且不存在(字符串中的字符。pwd中的字符用小写字母表示):
返回错误
如果为大写而非任何(字符串中的字符。ascii_pwd中字符的大写):
返回错误
如果punc而非任何(字符串中的字符。pwd中字符的标点符号):
返回错误
如果num和not any(字符串中的字符。pwd中字符的数字):
返回错误
返回真值

这可能很好用

代码:

import string
s = 'Password#123'

if any(i for i in s if i in string.ascii_uppercase) \
and any(i for i in s if i in string.ascii_lowercase) \
and any(i for i in s if i in string.punctuation): print 'yes'
yes
输出:

import string
s = 'Password#123'

if any(i for i in s if i in string.ascii_uppercase) \
and any(i for i in s if i in string.ascii_lowercase) \
and any(i for i in s if i in string.punctuation): print 'yes'
yes

希望这有帮助:)

自己做这件事有什么问题吗?因为这样做的目的是为了让我能够学习如何检查字符串以满足某些要求,而不是为了浪费工时。它怎么知道检查passwd变量?它没有-修复了这个问题。
yes