python面向对象的编程和实现将数据写入到文件中

1.创建文件data.txt,随机生成200个1~100之间的整数,各数之间用空格分开,将数据读出并输出到显示器上。

方法一:

import random

f = open(r"e:\data.txt", "w", encoding="utf-8")
for i in range(1, 201):
    a = random.randint(1, 100)
    f.write(str(a) + " ")
f = open(r"e:\data.txt", "r", encoding="utf-8")
b = f.readline()
print(b)
f.close()

方法二:

import random

f = open(r"e:\data.txt", "w", encoding="utf-8")
for i in range(1, 201):
    l = random.randint(1, 100)
    f.write(str(l))
    f.write(" ")
f.close()
data_txt = open(r"e:\data.txt", "r", encoding="utf-8")
print(data_txt.read())

2.以下是两个数相除的程序:

X=int(input(“x:”))

Y=int(input(“y:”))

S=X/Y

print(“x/y=”,s)

若输入的X不是整数(比如字母或浮点数),程序将终止或者输入的Y是0,程序也将终止。

请对程序进行修改,要求若输入非整数时,给出“输入的数据必须是整数,请重新输入”或Y为0时,给出提示“分母不能为0,请重新输入”,直到数据完全正确为止。

while True:
    try:
        X = int(input("x:"))
        Y = eval(input("y:"))
        S = X / Y
        print("x/y=", S)
    except ZeroDivisionError:
        print("分母不能为零")
    except ValueError:
        print("数据必须是整数")
    f = input("是否继续计算?(y/n)").lower()
    if f == "n":
        break

3.设计一个Circle(圆)类,该类中包括属性r(半径),还包括__init__()、get_p(求周长)、get_area()(求面积)等方法。设计完成后,创建Circle类的对象并测试求周长和面积的功能。

class Circle:
    def __init__(self, r):
        self.r = r

    def get_p(self):
        return 3.14 * 2 * self.r

    def get_area(self):
        return 3.14 * self.r * self.r


n = int(input('请输入圆的半径:'))
c = Circle(n)
print('圆的周长是:', c.get_p())
print('圆的面积是:', c.get_area())

4.定义一个Student类,有下面的属性:姓名、年龄、语文成绩、数学成绩、英语成绩(每个成绩均为整数类型),且有以下的方法:

获取学生的姓名:get_name()

获取学生的年龄: get_age()

返回3门课的最高分:get_course()

定义好类后,定义2个同学测试如下:

Zm=Student(“zhangming”,20,69,88,100)

返回结果:zhangming  20  100 

class Student:
    def __init__(self, name, age, ch, math, eng):
        self.name = name
        self.age = age
        self.ch = ch
        self.math = math
        self.eng = eng

    def get_name(self):
        print(self.name)

    def get_age(self):
        print(self.age)

    def get_course(self):
        z = max(self.ch, self.math, self.eng)
        print(z)


a = Student("zhangming", 20, 69, 88, 100)
a.get_name()
a.get_age()
a.get_course()

5.定义HSStudent(高中生类),继承上题中的Student类,多了化学成绩、生物成绩、历史成绩、政治成绩、物理成绩5个属性,以及以下两个方法:

返回八门课程平均分的方法:get_average()

返回八门课最高分的方法:get_course()

定义好类后,定义2个同学进行测试,输出平均分和最高分

class Student:
    def __init__(self, ch, math, eng):
        self.ch = ch
        self.math = math
        self.eng = eng


class HSStudent(Student):
    def __init__(self, ch, math, eng, hua, sh, li, zh, wu):
        super().__init__(ch, math, eng)
        self.hua = hua
        self.sh = sh
        self.li = li
        self.zh = zh
        self.wu = wu

    def get_average(self):
        sum = (self.ch + self.math + self.eng + self.hua + self.sh + self.li + self.zh + self.wu)
        return sum / 8

    def get_course(self):
        return max(self.ch, self.math, self.eng, self.hua, self.sh, self.li, self.zh, self.wu)


a = HSStudent(11, 34, 25, 36, 58, 25, 47, 88)
print(a.get_average())
print(a.get_course())

更多此内容详见python实现手机通信录和学生细信息管理系统这篇文章

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暖暖的味道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值