2014-03-04 97 views
1

我希望我的代碼的這部分計算字符串中的空格數量,到目前爲止我已經介紹了,但現在,如果字符串中沒有空格,我希望代碼返回1。如果聲明,如果string.count()=整數?

代碼:

string = string.count(" ") 

    if string == 0: 
     string = string.count(" ") + 1 

    return string 

我得到以下錯誤:

AttributeError: 'int' object has no attribute 'count' 

我該如何解決這個問題?任何幫助表示讚賞。

+0

簡單*不*分配數(和'int')回'string'變量。使用具有*描述性名稱的唯一變量*有所幫助。 – user2864740

+0

由於'string'也是標準庫中模塊的名稱,所以最好不要將它用作變量名稱。 – RemcoGerlich

+0

用'string = 1'替換'string = string.count(「」)+ 1'。據我所知,當沒有空格時,你試圖增加1的空格數。 –

回答

1

你過度讀取您的變量string,請嘗試使用新的變量:

spaces = string.count(" ") 

if spaces == 0: 
    spaces = string.count(" ") + 1 

return string 
0

不要使用string作爲變量的名字,因爲如果你這樣做,你會改變string類型到int。您可以使用不同的變量:

n = string.count(" ") 

if n == 0: 
    n = string.count(" ") + 1 
... 

記住count()返回int,因此,如果在整數結果分配給string,它不會是一個字符串了。因此你不能調用它的方法count()

0

正如已經宣佈爲string = string.count(" ")「繩子」此刻的變量類型已經是整數,這顯然還沒有「計數」屬性。

要解決你的代碼,你可以返回的string = string + 1代替string = string.count(" ") + 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 
>>>