检查字符串中的任何字符是否为字母数字

时间:2017-05-18 20:17:38

标签: python string alphanumeric

我想检查字符串中的任何字符是否为字母数字。我为此编写了以下代码,它工作正常:

s = input()

temp = any(i.isalnum() for i in s)
print(temp)

我的问题是下面的代码,它与上面的代码有什么不同:

for i in s:
    if any(i.isalnum()):
        print(True)

for循环迭代仍然在第一个代码中发生,为什么不抛出错误?第二个代码抛出:

  

追踪(最近一次通话):     文件“”,第18行,in     TypeError:'bool'对象不可迭代

2 个答案:

答案 0 :(得分:3)

在第二个功能中,您将any应用于单个元素,而不是整个列表。因此,如果字符i是字母数字,则会得到一个bool元素。

在第二种情况下,在处理单个元素时,您无法真正使用any。相反,你可以写:

for i in s:
    if i.isalnum():
        print(True)
        break

这与你的第一个案例更相似。

答案 1 :(得分:1)

any()期望可迭代。这就足够了:

isalnum = False
for i in s:
    if i.isalnum():
        isalnum = True
        break
print(isalnum)