Calculate spaces in a string

129 views Asked by At

I was trying to figure out how to calculate the number of spaces in a string when I came across this code online. Can someone please explain it?

text = input("Enter Text: ")

spaces = sum(c.isspace() for c in text)

The issue im having is with the statement "sum(c.isspace() for c in text)", Does the "c" signify character and can it be something else?

1

There are 1 answers

1
Kuldeep Singh Sidhu On BEST ANSWER

The isspace() method returns True if all the characters in a string are whitespaces, otherwise False.

When you do c.isspace() for c in text while going character by character it returns True(1) if it is a whitespace, otherwise False(0)

Then you do sum as it suggests it adds up True`s(1s) and False(0s).

You can add more print statements to have deeper understanding.

text = input("Enter Text: ")

spaces = sum(c.isspace() for c in text)
print([c.isspace() for c in text])
print([int(c.isspace()) for c in text])
print(spaces)
Enter Text: Hello World this is StackOverflow
[False, False, False, False, False, True, False, False, False, False, False, True, False, False, False, False, True, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False]
[0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
4