我对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
答案 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语句之后增加计数并在其中加入一个继续。