2016-12-20 35 views
0

私はこの機能を作成することができなかったことに失望しています。シンプルなようですが、何らかの理由でそれを理解できないようです。タイトルが示唆しているように、私は文字列を受け取るPython関数を作成しようとしていますし、最後に感嘆符を付けてその文字列を返します。文字列を受け取り、文字列+ "!"を返すPython関数

Goodbye! 

を返す必要があります

"こんにちは" の入力が

Hello! 

に "さようなら" の入力を返す必要がありますここに私が試したものです:

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

print(s(addExclamation)) 

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 

この実装は自明である:それは元の文字列sとの連結を持つ新しい文字列resultを作成し、「!」。

あなたがinputを使用したい場合は、あなたが行うことができます:

text = input("Enter a text: ") 
print(addExclamation(text)) 
関連する問題