2013-08-25 39 views
0

我从Codecademy学习Python。自定义python函数不工作

有一个问题:

写一个函数,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* 

请帮助我.. 。我的代码中存在某种错误?

+3

我猜你在你的文件的第一行放了'yes'而不是''yes'',但你没有显示它很难肯定地说......建议:阅读编译器说:) – BartoszKP

回答

3

由于您未包含第1行(错误的行),因此很难确切知道发生了什么, 。但是,我个人的经验来看,我觉得你的问题是两件事情之一:

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' 
>>> 

在这两种情况下(以及任何我错过了),你是治疗“是”为定义的变量,而不是一个字符串。

+0

http://www.codecademy.com/courses/python-beginner-c7VZg/4/1?curriculum_id=4f89dab3d788890003000096检查了这一点...我尝试了一切,但它不工作... – Chaitanya

1

上面的代码工作正常。可能问题在于,在您调用该函数时,您已经使用了shut_down(yes)而不是shut_down('yes')

+0

实际上有一个应用程序,自动测试代码...所以当我提交它显示一个错误。 – Chaitanya