Python——面向对象案列

 1.

class User(object):
 #重写__int__初始化方法,该方法用来初始化属,在构建方法的时候,这个方法会自动触发,用来初始化属性
    def __init__(self): 
        #name = “”  这是一个局部变量
        #self类似指针 this
        #self.name类的属性
        print("构建对象时触发了")
        self.name="潘先森"
        self.age=21
        self.gender="男"
        self.tel="15882657456"

    def study(self):
        print("我爱学习")

print("马上触发了")
u=User()
print("触发结束了")
print(u.name,"\t",u.gender,"\t",u.age,"\t",u.tel)
u.age+=1 #直接修改本对象的age属性
print(u.age)
u.study()

2.

class User(object):
    #重写__int__初始化方法,该方法用来初始化属
    #因为在构建对象的时候,才能确定对象的属性值,我们就可以将这些值进行传递
    def __init__(self,name,age,gender,tel):
        self.name=name
        self.age=age
        self.gender=gender
        self.tel=tel

    def study(self):
        print("我爱学习")
        print("我是"+self.name+",我爱学习")

    #tostring方法一致
    def __str__(self):
        return "name="+self.name+",age="+str(self.age)+",gender="+self.gender+",tel="+self.tel


u=User("潘先森",20,"男","185894965")
#打印<__main__.User object at 0x000001920985AFD0> 所以正常打印的对象输出的是内存的地址
# 在列表、字典这些对象打印的时候时候直接输出的就是对象的内容,因为这些对象重写了__str__(sef)
print(u)
u.study()

3.定义学员信息类,包含姓名、成绩属性,定义成绩打印方法(90分及以上显示优秀,80分及以上显示良好,70分及以上显示中等,60分及以上显示合格,60分以下显示不及格)

Python——面向对象案列_第1张图片

class Student():
    # 2、定义学员对象属性
    def __init__(self, name, score):
        self.name = name  # 所有对象的名字来自哪里
        self.score = score

    # 3、定义一个方法,用于打印学员的成绩等级
    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},不及格')


# 4、实例化对象
name1 = input('请输入姓名:')
score1 = int(input('请输入成绩:'))
tom = Student(name1, score1)
tom.print_grade()

4.小明体重75.0公斤,小明每次跑步会减掉0.50公斤,小明每次吃东西体重增加1公斤

  • 对象:小明

  • 属性:姓名、体重

  • 方法:跑步、吃东西

Python——面向对象案列_第2张图片

# 1、定义Person类
class Person():
    # 2、初始化对象属性,name和weight
    def __init__(self, name, weight):
        self.name = name
        self.weight = weight

    # 3、定义一个__str__方法打印对象的信息
    def __str__(self):  # str方法返回return信息
        return f'姓名:{self.name},目前体重:{self.weight}KG'

    # 4、定义一个run方法代表跑步
    def run(self):
        self.weight -= 0.5

    # 5、定义一个eat方法代表吃饭
    def eat(self):
        self.weight += 1


# 6、实例化对象
xiaoming = Person('小明', 75.0)
print(xiaoming)

# 7、吃饭
xiaoming.eat()
print(xiaoming)

# 8、减肥跑步
xiaoming.run()
print(xiaoming)

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

class Prime:
    def __init__(self, start_value, number):
        self.start_value = start_value
        self.number = number

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


m = int(input("请输入起始值m:"))
k = int(input("请输入需要的素数个数k:"))
prime1 = Prime(m, k)
prime1.prime_number()

你可能感兴趣的:(python,python,开发语言,linux)