簡體   English   中英

Python isspace函數

[英]Python isspace function

我在使用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

你要空白,所以你應該使用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())

另外,您也可以簡單地執行以下操作:

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'

@CoryKramer答案的簡短版本:

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

我只會使用n = s.replace(“”,“”)然后是len(n)。 否則,我認為您應該在if語句之后增加計數,並在其中添加繼續。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM