Python 空间函数
Python isspace function
我在使用 isspace 函数时遇到问题。知道为什么我的代码是错误的以及如何修复它吗?
问题来了:
实现 get_num_of_non_WS_characters() 函数。 get_num_of_non_WS_characters() 有一个字符串参数和 returns 字符串中的字符数,不包括所有空格。
这是我的代码:
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)
将return10
这还将删除制表符和换行符:
s = 'i am a string\nwith line break'
''.join(s.split())
会给
'iamastringwithlinebreak'
我只使用 n=s.replace(" " , "") 然后是 len(n)。
否则我认为你应该在 if 语句之后增加计数并在其中放置一个 continue。
@CoryKramer 回答的较短版本:
def get_num_of_non_WS_characters(s):
return sum(not c.isspace() for c in s)
我在使用 isspace 函数时遇到问题。知道为什么我的代码是错误的以及如何修复它吗?
问题来了: 实现 get_num_of_non_WS_characters() 函数。 get_num_of_non_WS_characters() 有一个字符串参数和 returns 字符串中的字符数,不包括所有空格。
这是我的代码:
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)
将return10
这还将删除制表符和换行符:
s = 'i am a string\nwith line break'
''.join(s.split())
会给
'iamastringwithlinebreak'
我只使用 n=s.replace(" " , "") 然后是 len(n)。 否则我认为你应该在 if 语句之后增加计数并在其中放置一个 continue。
@CoryKramer 回答的较短版本:
def get_num_of_non_WS_characters(s):
return sum(not c.isspace() for c in s)