前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python初学之学生和老师的question和answer问题

Python初学之学生和老师的question和answer问题

作者头像
静谧星空TEL
发布2021-04-27 10:40:25
5600
发布2021-04-27 10:40:25
举报
文章被收录于专栏:云计算与大数据技术

1、问题需求

定义一个类:Person,有 name, age 属性 定义一个子类:Teacher, 有 tno(教师号) 属性, 有 question()  定义一个子类:Student, 有 sno(学号) 属性,   有 answer() 打印 老师的信息 和 学生的信息 老师调用 question(), 把 下面的字符串持久到 question.txt 文件 1 + 2 = 3 * 5 = 9 - 1 = 100 * 3 = 3000 - 1000 =   学生调用answer(),从 question.txt 文件中读取每行数据,封装成一个对象(包括 结果答案);   计算每道题的答案并把 试题内容和答题结果 打印到控制台

2、 代码实现

代码语言:javascript
复制
# 通过切分问题,计算出答案
class Answer():
    def __init__(self):
        pass
    def calculate(self, question):
        list = question.split(' ')
        a = int(list[0])
        b = int(list[2])
        if list[1] == '+':
            return a + b
        elif list[1] == '-':
            return a - b
        elif list[1] == '*':
            return a * b
        elif list[1] == '/':
            return a / b

# Person基类
class Person(object):
    def __init__(self):
        pass

# 教师类,将问题持久化到文本中
class Teacher(Person):
    def __init__(self, tno):
        super(Teacher, self).__init__()
        self.tno = tno
    def question(self):
        list = ['1 + 2 = ', '3 * 5 = ', '9 - 1 = ', '100 * 3 = ', '3000 - 1000 =  ']
        # list.append(content)
        file = open('question.txt', 'w+')
        for i in list:
            file.write(i + '\n')
    def __str__(self):
        return '老师编号:'+str(self.tno)

# 学生类,将文本答案逐行读出,调用Answer类返回每一行的答案
class Student(Person):
    def __init__(self, sno):
        super(self.__class__, self).__init__()
        self.sno = sno
    def answer(self):
        file = open('question.txt', 'r+')
        lines = file.readlines()
        for i in lines:
            a = Answer().calculate(i.strip('\n'))
            print(i.strip('\n'), a)
    def __str__(self):
        return '学生编号:'+str(self.sno)

t = Teacher(1)
t.question()
s = Student(2)
print(t)
print(s)
s.answer()

3、运行结果

4、总结

这份题目很适合做python初学的练习。

这里涉及到了字符串分割、文件读写、元组的使用和类的继承等知识点。

初学python,对python的语法和类的使用还不是很熟悉,有什么不足的地方还请大家多多指点。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/10/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档