python面向对象程序设计案例

9.5.1.例:定义学员信息类、包含姓名、成绩属性。定义成绩打印方法,打印等级成绩(90以上为优秀,80以上为良好、70以上为中等、60以上为及格、60以下为补考)

●实体:学员

●属性:姓名、成绩

●方法:打印成绩

#1.创建学员类
class Student():
    #定义学员的属性
    def __init__(self,name,score):
        self.name=name
        self.score=score

    def print_grade(self):
        if self.score>=90:
            print(f'学员姓名:{self.name},学员成绩:{self.score},优秀')
        elif self.score>=80:
            print(f'学员姓名:{self.name},学员成绩:{self.score},良好')
        elif self.score>=70:
            print(f'学员姓名:{self.name},学员成绩:{self.score},中等')
        elif self.score>=60:
            print(f'学员姓名:{self.name},学员成绩:{self.score},及格')
        else:
            print(f'学员姓名:{self.name},学员成绩:{self.score},补考')


name1=input('请输入性名:')
score1=int(input('请输入成绩:'))

tom=Student(name1,score1)
tom.print_grade()

9.5.2.例2:小明体重102公斤,每次跑步减掉0.5公斤,没吃饭增加1公斤

●实体:小明

●属性:姓名、体重

●方法:

        跑步:体重减少0.5

        吃饭:体重增加1公斤

#1.创建学员类
class Person():
    #定义学员的属性
    def __init__(self,name,weight):
        self.name=name
        self.weight=weight

    def run(self):
        self.weight-=0.5

    def eat(self):
        self.weight+=1

    def __str__(self):
        return f'姓名:{self.name},目前体重:{self.weight}KG'


xiaoming=Person('小明',120)

print(xiaoming)     #利用str魔术方法返回信息

xiaoming.eat()
print(xiaoming)
xiaoming.run()
print(xiaoming)

9.5.3.例3:编写Prime类实现输出大于m且紧随m的k个素数

实体:数字

●属性:m k

●方法:判断实现大于m且紧随m的k个素数

class Prime():
    def __init__(self,m,k):
        self.m=m
        self.k=k

    def prime_number(self):
        count=0
        i=self.m+1
        while count<self.k :
            for j in range(2,i):
                if i%j==0:
                    break
            else:
                count+=1
                print(i,end=' ')
            i+=1




m=int(input('请输入起始值:'))
k=int(input('请输入查找个数:'))

prime1=Prime(m,k)
prime1.prime_number()

9.5.4.例4:编写Mysort类实现整数升序排序

实体:list

●属性:list len

●方法:选择性升序排序

class Mysort():
    def __init__(self, list1):
        self.list1 = list1

    def selection_sort(self):
        if len(self.list1) == 0:
            return '数据不能为空'
        self.list1 = list(self.list1)
        self.list1 = [int(self.list1[i]) for i in range(len(self.list1))]

        #选择性排序
        for i in range(len(self.list1) - 1):  # 有n个数一共进行n-1次比较
            for j in range(i + 1, len(self.list1)):
                if self.list1[i] > self.list1[j]:
                    self.list1[i], self.list1[j] = self.list1[j], self.list1[i]
        return self.list1

li = input('请输入需要排序的序列:')
mysort1 = Mysort(li)
print(mysort1.selection_sort())

  • 9
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

流年ꦿ

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

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

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

打赏作者

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

抵扣说明:

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

余额充值