Python 为什么不是';我的for循环不适用于我的表达式吗?
我想让这个函数读取密码,并检查它是否至少有一个数字。如果不是,则需要返回False。我需要将for循环与range函数一起使用,这就是我所拥有的:Python 为什么不是';我的for循环不适用于我的表达式吗?,python,python-3.x,for-loop,Python,Python 3.x,For Loop,我想让这个函数读取密码,并检查它是否至少有一个数字。如果不是,则需要返回False。我需要将for循环与range函数一起使用,这就是我所拥有的: def hasNum(password): for i in range(0,len(password),1): if password == str('0123456789'): return True else: return False 我尝试过不同的变化,这让我发疯。有人能向新手解释他们做错了
def hasNum(password):
for i in range(0,len(password),1):
if password == str('0123456789'):
return True
else:
return False
我尝试过不同的变化,这让我发疯。有人能向新手解释他们做错了什么吗?如果密码是0123456789
,循环测试一次;如果它与该字符串匹配,则返回True
,否则直接返回False
。范围(0,len(密码),1)
是写入范围(len(密码))
的复杂方法;同样地,str('0123456789')
也是一种复杂的书写方式
您需要迭代每个字符,如果是数字,则返回True
;如果没有,则返回False
:
def has_digit(password):
for character in password:
if character.isdigit():
return True
return False
最后一个返回False
在循环之外-我们必须在返回False
之前检查密码中的每个字符
这可以通过任意来简化:
def has_digit(password):
return any(ch.isdigit() for ch in password)
如果密码为0123456789
,则循环测试一次;如果它与该字符串匹配,则返回True
,否则直接返回False
。范围(0,len(密码),1)
是写入范围(len(密码))
的复杂方法;同样地,str('0123456789')
也是一种复杂的书写方式
您需要迭代每个字符,如果是数字,则返回True
;如果没有,则返回False
:
def has_digit(password):
for character in password:
if character.isdigit():
return True
return False
最后一个返回False
在循环之外-我们必须在返回False
之前检查密码中的每个字符
这可以通过任意来简化:
def has_digit(password):
return any(ch.isdigit() for ch in password)
我一直在考虑使用[]运算符,但我似乎也无法使用它。我一直在考虑使用[]运算符,但似乎也无法使用它。Gah打赌我会使用它,删除我的,你的回答涵盖了所有内容。我认为实际上,“我会为你编写代码”这类回答对于一个可能会有显著改进的问题(也就是说,它不太可能在当前的应用程序中帮助任何人)是一个非常糟糕的主意。使网站更糟。@pvg您应该回答一些问题:D@Antti这实际上对我帮助很大。我觉得这件事太复杂了。当我花很长时间思考某件事时,我倾向于这样做。非常感谢。Gah打赌我会的,删除了我的,你的涵盖了一切。我认为实际上,“我会为你编写代码”这样的答案对于一个可能会显著改进的问题(即,它不太可能在当前的时间内帮助任何人)是一个非常糟糕的主意。使网站更糟。@pvg您应该回答一些问题:D@Antti这实际上对我帮助很大。我觉得这件事太复杂了。当我花很长时间思考某件事时,我倾向于这样做。非常感谢你。