Python基础知识

学习目标:

  • 一周掌握python入门知识

学习内容:

目录

1.面向过程和面向对象区别

2.面向对象三大特性

3.类和对象

4.定义类和创建对象

5.self讲解

6.在类外添加属性和获取属性

7.在类内获取属性

8.魔法方法

9.魔法方法之init方法

10.魔法方法之str方法

11.魔法方法之del方法

12.魔法方法综合练习

13.综合练习

14.减肥练习

15.定义类的3种方式


1.面向过程和面向对象区别

  了解到面向对象与面向过程的本质区别,面向过程本质是步骤,面向对象本质是对象。

而面向对象就是是一种编程思维(找一个对象帮你干活)

2.面向对象三大特性

三大特性: 封装  继承  多态
​
封装: 把属性和方法隐藏到类中,对外提供公共的接口
​
继承: 子类默认能够使用父类的属性和方法
​
多态: 同一种事物不同的形态

3.类和对象

类:  是一类事物的统称,是一个抽象的概念
​
对象: 是类的具体体现,是一个实际存在的事物
​
类和对象的关系: 先定义类,再根据类去创建对象

4.定义类和创建对象

知识点:

定义类的格式:  class 类名(): ...
​
创建对象的格式: 对象名 = 类名()
​
对象调用类中普通方法:  对象名.方法名()

示例:

# 1.定义类 : class 类名(): 代码
class Person():
    # 类中的方法其实就是一个函数
    # 稍微有点特殊,形参第一个位置是self
    def study(self):
        print('学习Python使我快乐')
​
​
# 2.根据类创建对象 : 对象名 = 类名()
zs = Person()
​
# 3.测试打印对象名效果: 0x:000001EW0UD73D90 16进制的地址
print(zs)  # <__main__.Person object at 0x000001EE07D73D90>
# 3.1 打印地址: id
print(id(zs))  # 2561959411088  10进制的地址
​
# 4.对象调用类中的方法:  对象名.方法名()
zs.study()​

5.self含义

知识点:

self: 自我本身
​
位置: 类中普通方法形参的第一个位置
​
作用: 哪个对象调用该方法,self就代表哪个对象

示例:

# 1.定义类 : class 类名(): 代码
class Person():
    # 类中的方法其实就是一个函数
    # 稍微有点特殊,形参第一个位置是self
    # self: 哪个对象调用该方法,self就代表哪个对象
    def study(self):
        # 5.打印self看下指向的是哪个对象? 调用该函数的对象
        print('self:',self)
        print('Python使我快乐')
​
# 2.根据类创建对象 : 对象名 = 类名()
cx = Person()
tw = Person()
​
# 3.测试打印对象名效果: 0x:000001EE07D73D90 16进制的地址
print('cx:',cx)  # <__main__.Person object at 0x000001EE07D73D90>
print('tw:',tw)  # __main__.Person object at 0x00000212BEBF00D0>
​
# 4.对象调用类中的方法:  对象名.方法名()
cx.study()
tw.study()
​

6.在类外添加属性和获取属性

知识点:

在类外添加属性格式: 对象名.属性名 = 值
​
在类外获取属性格式: 对象名.属性名

示例:

# 1.定义类
class Person():
    # 定义方法(本质就是一个函数)
    def study(self):
        print('学习python使我快乐')
​
​
# 2.根据类创建对象,注意类名后的括号必须加上
zs = Person() # 类似出生,有了生命了
print(zs)
# 2.1 给cx对象设置姓名属性
cx.name = '崔小'
cx.age = 18
​
# 3.获取zs对象的姓名
print(f'姓名:{zs.name},年龄:{zs.age}')
zs.study()
​
​
​

7.在类内获取属性

知识点:

在类内添加属性格式: self.属性名 = 值   一般都是和init魔法方法中配合使用
​
在类内获取属性格式: self.属性名

示例:

# 1.定义类
class Person():
    # 定义方法(本质就是一个函数)
    # self带表当前对象cyy
    def study(self):
       
        # 类内获取属性: 建议用self在类内获取: self.属性名
        # 此处age和name都报黄:提示你Person类中没有找到,不影响结果,
        # 稍后解决这个问题:在类内添加属性配合init魔法方法使用
        print(f'{self.age}岁的{self.name}正在学习...')
​
​
# 2.根据类创建对象,注意类名后的括号必须加上
cyy = Person()
print(cyy)
# 2.1 类外给zs对象设置姓名属性
cyy.name = '崔丫丫'
cyy.age = 18
​
# 3.类外获取cx对象的姓名
# print(f'姓名:{cyy.name},年龄:{cyy.age}')
cyy.study()
​

8.魔法方法

知识点:

书写:  _ _方法名_ _(self): 代码...
​
执行:  自动调用不需要手动调用
​
常见的魔法方法:
​
__init__方法: 执行时机: 创建对象的时候  对象名 = 类名()
​
__str__方法:  执行时机: 打印对象的时候  print(对象名)
​
__del__方法:  执行时机: 删除对象的时候  del 对象名      或者 程序正常结束的时候

9.魔法方法之init方法

知识点:

_ _init_ _魔法方法:
​
执行时机:  创建对象的时候自动调用
​
作用: 初始化对象(给对象的属性赋初始值)

示例:

# 1.定义类
class Person():
    # 魔法方法init: 创建对象的时候自动调用
    def __init__(self, name, age):
        # 在类内添加属性:self.属性名 = 值
        self.name = name
        self.age = age
​
​
# 2.1创建对象
cyy = Person('崔丫丫', 18)  # 代码到此行会自动执行init魔法方法
# 3.1获取姓名和年龄
print(cyy.name, cyy.age)
​
# 2.2创建对象
zs = Person('张三', 28)  # 代码到此行会自动执行init魔法方法
# 3.2获取姓名和年龄
print(zs.name, zs.age)
​

10.魔法方法之str方法

知识点:

_ _str_ _魔法方法:
​
执行时机:  打印对象名的时候
​
作用: 默认打印对象名打印出来的地址,如果类中写了str方法,打印对象的时候打印的是str返回的字符串

示例:

# 1.定义类
class Person():
    # 魔法方法init: 创建对象的时候自动调用
    def __init__(self, name, age):
        # 在类内添加属性:self.属性名 = 值
        self.name = name
        self.age = age
    # 魔法方法之str: 打印对象的时候自动调用
    def __str__(self):
        # 必须返回字符串类型
        return f'{self.name}的年龄是:{self.age}'
​
​
# 2.1创建对象
cyy= Person('崔丫丫', 18)  # 代码到此行会自动执行init魔法方法
# 3.1获取姓名和年龄
print(cyy) # 代码执行到此行会自动打印str方法返回的字符串
​
# 2.2创建对象
zs = Person('张三', 28)  # 代码到此行会自动执行init魔法方法
# 3.2获取姓名和年龄
print(zs) # 代码执行到此行会自动打印str方法返回的字符串
​
​

11.魔法方法之del方法

知识点:

_ _del_ _魔法方法:
​
执行时机: 手动删除对象的时候,或者程序正常结束后
​
作用: 记录删除日志

示例:

演示手动删除指定对象情况:

# 1.定义类
class Person():
    # 注意: 删除对象的时候执行或者程序正常结束的时候执行
    # 记录了下删除日志
    def __del__(self):
        print(f'{self}对象被删除了,del自动执行了')
​
​
# 2.创建对象
cyy= Person()
​
# 3.删除对象
print(cyy)
del cyy  # 删除对象的时候能够自动执行del魔法方法
print(cyy) # 此行报错 NameError: name 'cyy' is not defined
​
print('我是程序的最后一行...')
​

演示程序正常结束删除所有对象情况:

# 1.定义类
class Person():
    def __init__(self,name,age):
        self.name = name
        self.age = age
    # 注意: 删除对象的时候执行或者程序正常结束的时候执行
    def __del__(self):
        print(f'{self.name}对象被删除了,del自动执行了')
​
​
# 2.创建对象
zs = Person('张三',18)
​
ls = Person('李四',28)
​
print('我是程序的最后一行...') # 程序正常结束后del会自动执行
​
​

12.魔法方法综合练习

示例:

# 1.定义类
class Person():
    # init初始化魔对象法方法
    def __init__(self, name, age):
        print('init执行了...')
        self.name = name
        self.age = age
​
    # str返回字符串魔法方法
    def __str__(self):
        return f'{self.name}的年龄:{self.age}'
​
    # del删除日志魔法方法
    def __del__(self):
        print(f'{self.name}对象被删除了...')
​
​
# 2.创建对象(默认自动执行init方法)
cyy = Person('崔丫丫', 18)
​
# 3.打印对象(默认自动执行str方法)
print(cyy)
​
# 4.1程序正常结束后del自动执行
# 4.2删除对象(默认自动执行del方法)
del cyy
​

13.综合练习1

需求:

根据学生成绩0-100判断

(95分及以上优秀,80分及以上良好,75分及以上中等,60分及以上合格,60分以下不及格)

示例:

#  要求用面向对象的方式去解题
# 分析步骤:  类    属性   方法
# 类:学生类Student
class Student():
    # 属性: 姓名name  分数score
    def __init__(self, name, score):
        self.name = name
        self.score = score
​
    # 方法: 判断成绩的方法 grade()
    def grade(self):
        if self.score >= 0 and self.score <= 100:
            # 95分及以上优秀,
            if self.score >= 95:
                print(f'{self.name}的成绩{self.score}:优秀')
            # 80分及以上良好,
            elif self.score >= 80:
                print(f'{self.name}的成绩{self.score}:良好')
            # 75分及以上中等,
            elif self.score >= 75:
                print(f'{self.name}的成绩{self.score}:中等')
            # 60分及以上及格,
            elif self.score >= 60:
                print(f'{self.name}的成绩{self.score}:及格')
            # 60分以下不及格
            else:
                print(f'{self.name}的成绩{self.score}:不及格')
        else:
            print('成绩有误!')
​
# 创建学生对象传入姓名和分数
s = Student('崔丫丫',49)
# 调用判断成绩的方法
s.grade()
​

14.减肥练习

需求:

崔丫丫体重55.0公斤,崔丫丫每次跑步会减掉0.50公斤,崔丫丫每次吃东西体重增加1公斤

示例:

# 崔丫丫体重75.0公斤,崔丫丫每次跑步会减掉0.50公斤,崔丫丫每次吃东西体重增加1公斤
# 分析步骤  类:Person   属性:姓名name  体重weight   方法: 跑步方法run()  吃东西方法eat()
# 1.定义类
class Person():
    # 属性:姓名name  体重weight
    def __init__(self, name, weight):
        self.name = name
        self.weight = weight
​
    # str方法打印对象的时候打印的是返回的字符串
    def __str__(self):
        return f'姓名:{self.name},体重:{self.weight}公斤'
​
    # 方法: 跑步  1次 -0.5
    def run(self):
        print(f'{self.name}跑步减掉0.50公斤')
        self.weight -= 0.5  # self.weight= self.weight-0.5
​
    # 方法: 吃东西
    def eat(self):
        print(f'{self.name}吃东西体重又增加1公斤...')
        self.weight += 1
​
​
# 2.创建对象
cyy = Person('崔丫丫', 55)
print(xm)
# 3.调用run方法
cyy.run()
print(xm)
# 4.调用eat方法
cyy.eat()
print(xm)
​

15.定义类的3种方式

知识点:

 python3.x版本之前: 旧式类  必须手动继承object类才是新式类
 
 python3.x版本:默认都是新式类   pyhont3.x定义类默认都是继承了object类

示例:

class Student1(object):
    pass
​
​
class Student2():
    pass
​
​
class Student3:
    pass
​
# 创建对象类名后的括号是不能省略的!!!
s1 = Student1()
print(s1)
s2 = Student2()
print(s2)
s3 = Student3()
print(s3)
​
​


学习时间:

  • 周一至周五晚上 9 点—晚上6点
  • 周六上午 9 点-上午 11 点
  • 周日下午 3 点-下午 6 点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值