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):

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的语法和类的使用还不是很熟悉,有什么不足的地方还请大家多多指点。

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

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

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

  2. python中answer_python新手关于一个实例:提示 answer = input()这行有问题,复制粘贴的,请高手指正...

    defisEqual(num1,num2):#定义一个叫做isEqual的函数用来比较两个数字的大小,包含两个参数ifnum1 def isEqual(num1, num2):#定义一个叫做isEqu ...

  3. 40、查询选修“张三”老师所授课程的学生中成绩最高的学生姓名及其成绩(重要top)

    -- 40.查询选修"张三"老师所授课程的学生中成绩最高的学生姓名及其成绩(重要top)SELECT st.s_name,sc.s_score FROM student as st ...

  4. python从键盘输入若干学生姓名、保存在字符串列表中_Python基础语法练习题

    1.输出当前时间 #答案代码 #strftime 将datetime 格式转成字符串格式 from datetime import datetime now=datetime.now() print( ...

  5. 学霸计算机考试新闻,陪学生考试老师意外考上哈佛 堪称学霸中的战斗机

    导读:[陪学生考试老师意外考上哈佛 堪称学霸中的战斗机]"感觉很神奇,我们的老师考上了哈佛!"杨老师被哈佛大学录取的消息在学校不胫而走,还上了喜报,学生和家长都觉得意外又惊奇.重庆 ...

  6. 小明和小强都是张老师的学生,张老师的生日是M月N日,2人都知道张老师的生日 是下列10组中的一天,张老师把M值告诉了小明,把N值告诉了小强,张老师问他们知道他的生日是那一天吗?

    小明和小强都是张老师的学生,张老师的生日是M月N日,2人都知道张老师的生日 是下列10组中的一天,张老师把M值告诉了小明,把N值告诉了小强,张老师问他们知道他的生日是那一天吗? 3月4日 3月5日 3 ...

  7. python初学一(python中 ~ 号的用法)

    一.python中 ~ 的用法 1.~ 作用于正负数的时候 表示按位取反 查看:Python中按位取反运算符(~)在计算机中的计算过程 简单计算: ~ a = - ( a + 1 ) 2.~ 在num ...

  8. linux中python如何调用matlab的数据_?如何在Python中加入多个数据帧?

    全文共2235字,预计学习时长7分钟 来源:Pexels 初学Python编程的人,面临的是各种未知的挑战. 下面是一个几乎让所有更有抱负的数据科学家都感到意外的场景: 你正在处理一个从多个源收集数据 ...

  9. css中如何实现帧布局_?如何在Python中加入多个数据帧?

    全文共2235字,预计学习时长7分钟 来源:Pexels 初学Python编程的人,面临的是各种未知的挑战. 下面是一个几乎让所有更有抱负的数据科学家都感到意外的场景:你正在处理一个从多个源收集数据的 ...

最新文章

  1. python将string转换为json_python -- 将string转换成dict的方法
  2. java.lang.Runtime
  3. MySQL - Explain深度剖析
  4. Oracle原理:11g中的网络配置
  5. 【Java文件操作】一个将文件转化为十六进制字节数组的工具(可以以8086汇编查看内存的格式输出,很优雅)
  6. 改善用户体验之Alert提示效果
  7. LeetCode之Valid Parentheses
  8. 用Jackson进行Java JSON处理
  9. QT学习笔记(九):遍历容器-迭代器(iterators)
  10. Hadoop MapReduce InputFormat基础
  11. Linux常用最基础命令总结
  12. 还原python源码_python 的混淆后的代码可以还原么
  13. ffmpeg (一):起步
  14. C++_public、private、protected权限介绍
  15. 苹果在中国的审核规律探索一
  16. c语言ODBC连接数据库
  17. 2021年山东省安全员C证报名考试及山东省安全员C证操作证考试
  18. hibernate、ibatis、freyja的价值
  19. java斜体_Java可以指示字体是否为斜体字
  20. GPU技术支持-基础篇-包管理工具

热门文章

  1. 不叹惜、不呼唤我也不哭泣
  2. RISC-V SiFive U54内核——中断和异常详解
  3. 苹果 python蚂蚁森林自动收能量_Python自动化收取蚂蚁森林能量,不错过暗恋的她...
  4. 在哪下载短视频?有哪些网站可以避免侵权?
  5. 一个完整的大作业--广州市社会保障(市民)卡服务网
  6. MODIS数据批量裁剪并合成月尺度数据:以MOD13A1为例
  7. Go-Micro微服务框架使用
  8. Pie Chart(nvd3)
  9. 汇编51单片机密码锁(含论文、程序、AD图)单片机课程设计
  10. 【面向学渣编程】囚犯问题(十分详解,含表格,适合新手)