0

私は Codecademy で Python を学んでいました。

質問があります:

1 つのパラメーターを取る関数 を作成しshut_downます (好きなものを使用できます。この場合、文字列には s を使用します)。shut_down関数は、 、、またはを引数として取得した場合、および、 、またはを取得した'Shutting down...'場合に戻ります。'Yes''yes''YES''Shutdown aborted!''No''no''NO'

これに対して、私は次のように書きました。

def shut_down(n):
    p=n.lower()
    if p=="yes":
        return "Shutting down..."
    elif p=="no":
        return "Shutdown aborted!"

しかし、実行しようとすると、次のエラーが発生します。

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'yes' is not defined*

私を助けてください...私のコードに何らかの間違いがありますか?

4

2 に答える 2

3

1 行目 (エラーの行) が含まれていないため、何が起こっているのかを正確に伝えるのはちょっと難しいです。ただし、私の個人的な経験から判断すると、あなたの問題は次の2つのいずれかだと思います。

1)あなたはPython 2.xを使用しており、使用inputすべきときに使用していますraw_input

>>> input()
yes
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1, in <module>
NameError: name 'yes' is not defined
>>> raw_input()
yes
'yes'
>>>

2)最初の行に、yesいつあるべきかがあります'yes'

>>> yes
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'yes' is not defined
>>> 'yes'
'yes'
>>>

どちらの場合も(および私が見逃した場合も)、「はい」を文字列ではなく定義済み変数として扱っています。

于 2013-08-25T14:27:11.113 に答える
1

上記のコードは正常に動作します。問題は、関数を呼び出しているときに、shut_down(yes)代わりに使用したことです。shut_down('yes')

于 2013-08-25T14:01:10.043 に答える