我希望我的代码的这一部分能够计算字符串中的空格数,到目前为止,我已经覆盖了它,但现在,如果字符串中没有空格,我希望代码返回1。
代码:
string = string.count(" ")
if string == 0:
string = string.count(" ") + 1
return string
我收到以下错误:
AttributeError: 'int' object has no attribute 'count'
我该如何解决这个问题?任何帮助表示赞赏。
答案 0 :(得分:1)
您正在重读变量string
,请尝试使用新变量:
spaces = string.count(" ")
if spaces == 0:
spaces = string.count(" ") + 1
return string
答案 1 :(得分:1)
由于0
在布尔上下文中被认为是False
,我会在这里使用or
:
>>> string = "a b c"
>>> space_count = string.count(" ") or 1
>>> space_count
2
>>> string = "abc"
>>> space_count = string.count(" ") or 1
>>> space_count
1
>>>
答案 2 :(得分:0)
请勿使用string
作为变量名称,因为如果您这样做,则会将string
的类型更改为int
。您可以使用其他变量:
n = string.count(" ")
if n == 0:
n = string.count(" ") + 1
...
请记住,count()
会返回int
,因此如果您将整数结果分配给string
,它将不再是字符串。因此,您无法在其上调用方法count()
。
答案 3 :(得分:0)
由于变量已经声明为string = string.count(" ")
,此时“字符串”的类型已经是一个显然没有'count'属性的整数。
要修复代码,只需返回string = string + 1
而不是string = string.count(" ") + 1
另外,正如克里斯蒂安提到的那样,不要使用某些名称可能会使读者混淆为变量名称,这是一个好习惯。