2015-04-21 58 views
-5

我正在嘗試使用strip()修剪字符串前後的空格。它工作正常的Python strip()在函數內部不工作

str1 = " abdced " 
str1.strip() 

然而,當我使用它的功能裏面,它不工作:

def func(str1): 
    return str1.strip() 

print func(" abdwe ") 

它不會剪掉任何空間。任何人都可以知道發生了什麼?謝謝!

+2

它不應該爲第二,而不是第一個? –

+2

'def func(str1):return str1.strip()''assert func(「abcd」)==「abcd」' - 不可重現。 –

+1

Python字符串的基本規則 - 你不能改變它們,你只能創建新的(它們是*不可變的*) – cdarke

回答

5

strip不是就地方法,這意味着它返回一個必須被重新分配,像這樣的值:

str1 = str1.strip() # the string is reassigned to the returned stripped string 
0

三件事我明白了。

首先,你並沒有將strip變量賦值給任何東西,其次你試圖在返回時這樣做。

返回應該只有你想返回的變量在另一個函數中使用。你可以從這個函數打印,但你的return語句不應該有任何活動,只有要返回的變量。

第三,該印刷語句對我來說很不利。至少這不是我將如何做印刷。

def func(str1): 
    str1 = " abdced " 

    str2 = str1.strip() 

    print(str2) 

    return str1, str2 
相關問題