Python isspace函数

时间:2017-10-31 19:15:20

标签: python python-3.x isspace

我对isspace功能有困难。知道为什么我的代码错了以及如何修复它?

问题在于: 实现get_num_of_non_WS_characters()函数。 get_num_of_non_WS_characters()有一个字符串参数,返回字符串中的字符数,不包括所有空格。

这是我的代码:

def get_num_of_non_WS_characters(s):

    count = 0
    for char in s: 
        if char.isspace():
            count = count + 1  
        return count

4 个答案:

答案 0 :(得分:4)

您想要空白,因此您应该使用not

def get_num_of_non_WS_characters(s):
    count = 0
    for char in s:
        if not char.isspace():
            count += 1
    return count

>>> get_num_of_non_WS_characters('hello')
5
>>> get_num_of_non_WS_characters('hello  ')
5

为了完整起见,可以使用生成器表达式更简洁地完成此操作

def get_num_of_non_WS_characters(s):
    return sum(1 for char in s if not char.isspace())

答案 1 :(得分:1)

作为替代方案,你也可以这么做:

def get_num_of_non_WS_characters(s):
    return len(''.join(s.split()))

然后

s = 'i am a string'
get_num_of_non_WS_characters(s)

将返回10

这也将删除制表符和换行符:

s = 'i am a string\nwith line break'
''.join(s.split())

将给出

'iamastringwithlinebreak'

答案 2 :(得分:1)

@CoryKramer的缩短版本答案:

def get_num_of_non_WS_characters(s):
    return sum(not c.isspace() for c in s)

答案 3 :(得分:0)

我只想使用n = s.replace(“”,“”)然后使用len(n)。 否则我认为你应该在if语句之后增加计数并在其中加入一个继续。