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、 代码实现

# 通过切分问题,计算出答案
class Answer():def __init__(self):passdef calculate(self, question):list = question.split(' ')a = int(list[0])b = int(list[2])if list[1] == '+':return a + belif list[1] == '-':return a - belif list[1] == '*':return a * belif 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 = tnodef 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 = snodef 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的语法和类的使用还不是很熟悉,有什么不足的地方还请大家多多指点。

Python初学之学生和老师的question和answer问题相关推荐

  1. python中answer_Python初学之学生和老师的question和answer问题

    1.问题需求 定义一个类:Person,有 name, age 属性 定义一个子类:Teacher, 有 tno(教师号) 属性, 有 question() 定义一个子类:Student, 有 sno ...

  2. python爬虫教程-Python教父|廖雪峰老师官方爬虫教程,13个案例带你全面入门!

    原标题:Python教父|廖雪峰老师官方爬虫教程,13个案例带你全面入门! Python简直就是万能的,你用Python都做过哪些事? 用网页看各大网站的VIP视频,用python下载? 用Pytho ...

  3. 基于python+django+vue学生作业管理系统

    学生作业管理考试系统可实现学生作业在线提交,管理员管理用户,系统管理维护,共分为五大主要子系统:管理员模块,登陆,教师模块,学生模块,后台管理.通过运行本系统,学生和管理员通过同一界面登陆,登陆后可各 ...

  4. python+vue+elementui学生考试成绩数据分析与可视化系统django

    运用改系统可以有效的方便老师同学查看成绩, 运用学生成绩管理维护系统可以减轻学院教学人员的工作量,缩小开支,提高工作效率与准确率,能够节省时间,还能使学生更好的查看自己的成绩变化. 学生成绩管理是一个 ...

  5. [Python+Django]Web学生信息管理系统数据库设计及系统实现

    本文我们完成数据的设计,并通过Django框架完成数据库构建同时利用Django框架模式实现学生信息管理系统的功能. 简单的包装下毕设应该没问题了. Python,Mysql,Pycharm的安装本文 ...

  6. python大作业 学生管理系统 以Excel(xls)格式导入文件

    简单的说一下每个板块的作用 这个load函数,是导入进来文件的数据 def load():data=xlrd.open_workbook('data.xls')table=data.sheets()[ ...

  7. python计算学生平均年龄_CodeSalt | Python解决按学生年龄排序的实际问题

    Python解决按学生年龄排序的实际问题 问题:定义一个Class:包含姓名name.性别gender.年龄age,需要按年龄给学生排序. 输入:包含学生对象的List. 输出:按照年龄age进行排序 ...

  8. python学生管理系统界面-Python实现GUI学生信息管理系统

    本文实例为大家分享了Python实现GUI学生信息管理系统的具体代码,供大家参考,具体内容如下 项目环境: 软件环境: OS:RedHat6.3 Lib:Pygtk Language:Python S ...

  9. 相比学习好的学生,老师最喜欢努力认真学习的学生

    相比学习好的学生,老师还是更喜欢努力学习的学生. 好多人有这样的错觉,谁学习好,老师就喜欢谁,谁就是老师面前的大红人,可能有的老师是这样的吧,但是,对于我来说,相比那些学习好的学生,我还是更喜欢爱学习 ...

最新文章

  1. java gui拖拽_Java Swing拖放
  2. c语言中的字符串总是以,C语言字符串的结束标志是什么?
  3. C语言: 函数调用的开销
  4. operator、explicit与implicit
  5. c++ 虚函数,纯虚函数的本质区别
  6. MSChart中转义符
  7. 非大学生学计算机,浅谈非计算机专业大学生的计算机教学
  8. 如何使用 Laravel Facades ?
  9. 【语言处理与Python】4.7算法设计
  10. BZOJ2217 [Poi2011]Lollipop 【贪心】
  11. Lanenet论文解读
  12. Win10教育版变为企业版
  13. [kubernetes]-kubernetes+nfs创建高可用mysql
  14. 【Django BUG 已解决】You must either define the environment variable DJANGO_SETTINGS_MODULE or call ...
  15. latex公式图片识别(转换为latex语法格式)
  16. Qt 学习(三) —— Qt 模块
  17. 循环遍历时跳出循环方法汇总
  18. linux脚本获取经纬度,JS实现根据详细地址获取经纬度功能示例
  19. 16天记住7000考研单词(第一天)
  20. python抓取微博评论的图片_用Python语言爬虫抓取微博评论图文教程

热门文章

  1. pandas排序 sort_values
  2. oracle一个600错误的解决
  3. VS2012代码颜色代表含义
  4. 使用Calendar类得到一年中的二月有多少天
  5. 【年总】----折戟沉沙心不倦,大风起兮云飞扬!
  6. 基于STM32设计的智能教室管理系统
  7. mysql谓词_MySQL 子查询谓词
  8. java谓词_Java 8谓词链
  9. python3 爬虫实战 :用 Appium 抓取手机 app 微信朋友圈的数据
  10. 父与子【鹧鸪天两首】