Checking if any character in a string is alphanumeric

I want to check if any character in a string is alphanumeric. I wrote the following code for that and it's working fine:

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

The question I have is the below code, how is it different from the above code:

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

The for-loop iteration is still happening in the first code so why isn't it throwing an error? The second code throws:

Traceback (most recent call last): File "", line 18, in TypeError: 'bool' object is not iterable

1

2 Answers

In your second function you apply any to a single element and not to the whole list. Thus, you get a single bool element if character i is alphanumeric.

In the second case you cannot really use any as you work with single elements. Instead you could write:

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

Which will be more similar to your first case.

1

any() expects an iterable. This would be sufficient:

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

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like