计算字符串中的空格
Calculate spaces in a string
当我在网上看到这段代码时,我正试图弄清楚如何计算字符串中的空格数。有人可以解释一下吗?
text = input("Enter Text: ")
spaces = sum(c.isspace() for c in text)
我遇到的问题是语句“sum(c.isspace() for c in text)”,“c”是否表示字符,是否可以是其他字符?
isspace()
方法returns 如果字符串中的所有字符都是空格则为真,否则为假。
当你在一个字符一个字符地执行 c.isspace() for c in text
时,它 returns 如果它是一个空格则为 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 Whosebug
[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
当我在网上看到这段代码时,我正试图弄清楚如何计算字符串中的空格数。有人可以解释一下吗?
text = input("Enter Text: ")
spaces = sum(c.isspace() for c in text)
我遇到的问题是语句“sum(c.isspace() for c in text)”,“c”是否表示字符,是否可以是其他字符?
isspace()
方法returns 如果字符串中的所有字符都是空格则为真,否则为假。
当你在一个字符一个字符地执行 c.isspace() for c in text
时,它 returns 如果它是一个空格则为 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 Whosebug
[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