-2

当我在网上遇到这段代码时,我试图弄清楚如何计算字符串中的空格数。有人可以解释一下吗?

text = input("Enter Text: ")

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

我遇到的问题是语句“sum(c.isspace() for c in text)”,“c”是否表示字符,它可以是别的东西吗?

4

1 回答 1

3

isspace()如果字符串中的所有字符都是空格,则该方法返回 True,否则返回 False。

当您c.isspace() for c in text逐个字符进行操作时,如果它是空格,则返回 True(1),否则返回 False(0)

然后你sum按照它的建议进行操作,它将 True`s(1s) 和 False(0s) 相加。

您可以添加更多打印语句以进行更深入的了解。

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
于 2020-10-19T08:45:37.850 回答