python学习,问卷调查报错


import unittest
from survey import AnonymousSurvey

class TestAnonymousSurvey(unittest.TestCase):
    '''针对AnonymousSurvey类的测试'''

    def test_store_single_response(self):
        question = "What language did you learn to speak?"
        my_survey = AnonymousSurvey(question)
        my_survey.store_response('English')

        self.assertIn('English',my_survey.responses)

unittest.main()


```python

class AnonymousSurvey():

    def __int__(self,question):
        '''存储一个问题,并为存储答案做准备'''
        self.question = question
        self.responses=[]

    def show_question(self):
        '''显示调查问卷'''
        print(self.question)

    def store_response(self,new_response):
        '''存储单份调查问卷'''
        self.responses.append(new_response)

    def show_results(self):
        '''显示收集到的所有答卷'''
        print("Survey result:")
        for response in responses:
            print('- '+response)

回答报错

img

该回答内容部分引用GPT,GPT_Pro更好的解决问题
这里可能存在的问题是,第5行class后面括号内应该填写什么?这里应该填写一个有意义的类名,用来表示这个测试类,比如TestAnonymoussurvey。

第9行question = 后面应该填写一个字符串,用来表示要调查的问题,比如'你最喜欢的运动是什么?’

第11行my_survey-store_response()后面应该填写一个字符串,用来表示调查者的回答,比如‘足球’

第13行self.assertIn()后面应该填写一个变量,用来表示调查者的回答,比如‘足球’。

所以代码修正后应该是这样:

import unittest
from survey import Anonymoussurvey

class TestAnonymoussurvey(unittest.TestCase):

    def test_store_single_response(self):
        question = '你最喜欢的运动是什么?'
        my_survey = Anonymoussurvey(question)
        my_survey.store_response('足球')

        self.assertIn('足球', my_survey.responses)

unittest.main()

如果回答有帮助,望采纳。

该回答引用GPTᴼᴾᴱᴺᴬᴵ
您的代码缺少一个冒号(:)导致了语法错误,导致程序无法正常执行。可以尝试修改一下for循环中的代码,加上冒号后再试试,如下所示:

class AnonymousSurvey():
 
    def __int__(self,question):
        '''存储一个问题,并为存储答案做准备'''
        self.question = question
        self.responses=[]
 
    def show_question(self):
        '''显示调查问卷'''
        print(self.question)
 
    def store_response(self,new_response):
        '''存储单份调查问卷'''
        self.responses.append(new_response)
 
    def show_results(self):
        '''显示收集到的所有答卷'''
        print("Survey result:")
        for response in self.responses:  # 加上冒号
            print(f"- {response}")


在进行测试前,您还需要将AnonymousSurvey类中的__int__方法改为__init__,否则实例化该类时会出现如下错误:TypeError: 'AnonymousSurvey' object is not callable。因此,完整的代码应该是这样的:

import unittest
from survey import AnonymousSurvey
 
class TestAnonymousSurvey(unittest.TestCase):
    '''针对AnonymousSurvey类的测试'''
 
    def test_store_single_response(self):
        question = "What language did you learn to speak?"
        my_survey = AnonymousSurvey(question)
        my_survey.store_response('English')
 
        self.assertIn('English',my_survey.responses)
 
unittest.main()
 
 
class AnonymousSurvey():
 
    def __init__(self,question):  # 将 __int__ 改为 __init__
        '''存储一个问题,并为存储答案做准备'''
        self.question = question
        self.responses=[]
 
    def show_question(self):
        '''显示调查问卷'''
        print(self.question)
 
    def store_response(self,new_response):
        '''存储单份调查问卷'''
        self.responses.append(new_response)
 
    def show_results(self



这样,程序就应该可以正常运行并输出测试结果了。