2016-12-20 14 views
0

我很失望,我無法創建此功能 - 它似乎很簡單,但由於某種原因,我似乎無法弄清楚。正如標題所示,我試圖創建一個接收字符串的Python函數,然後返回該字符串並在末尾添加感嘆號。接收字符串的Python函數返回String +「!」

的 「你好」 的輸入應該返回

Hello! 

的輸入 「再見」 應該返回

Goodbye! 

等等

這裏是我的嘗試:

def addExclamation(s): 
    s = input("please enter a string") 
    new_string = s + "!" 
    return new_string 

print(s(addExclamation)) 

This給我錯誤信息:

NameError: name 's' is not defined on line 6 

爲什麼「s」沒有定義?我以爲我確定s是addExclamation函數中的輸入。感謝您的幫助。

+0

你一切混合起來。 – TigerhawkT3

+0

@ TigerhawkT3我在混淆什麼? – HappyHands31

回答

2

您可以使用參數s定義一個函數。該函數立即拋出該值並要求輸入。您正在調用與該參數具有相同名稱的函數,並向其發送函數名稱的參數。這沒有任何意義。

def addExclamation(s): 
    new_string = s + "!" 
    return new_string 

print(addExclamation('Hello')) 

或者:

def addExclamation(): 
    s = input("please enter a string") 
    new_string = s + "!" 
    return new_string 

print(addExclamation()) 
1

你有混合起來的功能和參數這裏:

print(s(addExclamation)) 

而且,你可能是指讀取輸入的功能外,且字符串傳遞到:

def addExclamation(s): 
    new_string = s + "!" 
    return new_string 

s = input("please enter a string") 
print(addExclamation(s)) 
1

在聲明中:

s(addExclamation) 

你嘗試調用它沒有定義s功能。

您給addExclamation的參數是您想調用的函數。你應該寫:

addExclamation("Hello") 

在這個例子中,調用函數與addExclamation()字符串參數:「你好」。

但是,你需要改變它的實現:

def addExclamation(s): 
    result = s + "!" 
    return result 

這個實現是不言自明的:它會創建一個新的字符串result與原始字符串s的級聯和「!」。

如果你想使用input,你可以這樣做:

text = input("Enter a text: ") 
print(addExclamation(text))