如何在此代码中回答“是”

时间:2014-08-24 02:59:35

标签: python-2.7

我在书中看到过这段代码。根据本书的说法,当我们运行代码并输入'classMaker()'时会看到:

  
    
      

classMaker()

    
  

制作课程

你想制作一个类的对象吗?

然后我们回答:是的,

  
    
      

classMaker()

    
  

制作课程

你想制作一个类的对象吗?

对象

你的名字是拉曼

我不明白如何输入“是”。我该怎么办?在“......班级”之后我写“是”吗? 我做到了但是它失败了

 def classMaker(flag=True):
 if flag:
 print('making the class')
 class MyName:
 name='Raman'
 print('do you want to make an object of the class?')
 answer=input()
 if answer=='yes':
 my_object=MyName()
 print('object made')
 print('your name is',my_object.name

2 个答案:

答案 0 :(得分:0)

只需使用:raw_input()代替input()

answer = raw_input('Do you want to make an object of the class?')

为什么?

  

raw_input()向用户询问一串数据(以换行符结束),   并简单地返回字符串。它也可以采取论证   在用户输入数据之前显示为提示。

虽然:

  

input()使用raw_input读取数据字符串,然后尝试   将其评估为Python程序,然后返回值   结果。

现在,您可以解析答案以确定其是否包含“是”'。

参考:http://en.wikibooks.org/wiki/Python_Programming/Input_and_Output#Examples

答案 1 :(得分:0)

如果您使用Python 2.x版本之一,我会假设您在执行此操作时出现错误。在Python 2.x中,input()需要Python表达式,而不仅仅是任何字符串。因此,在您的情况下,您的名称可能被Python解释为变量并返回NameError错误。如果是这种情况,只需将您的输入作为字符串提供。这意味着使用""