Python语法小白入门(四)

简介: Python语法小白入门

13.封装继承多态

01.封装

  • 封装:提高程序的安全性,将数据(属性)和行为(方法)包装到类对象中。
  • 继承:提高代码的复用性
  • 多态:提高程序的可扩展性和可维护性
    封装的实现:
class Student:
    def __init__(self,name,age):
        self.name=name
        self.__age=age  #年龄不希望在类的外部被使用,所以加了两个_
    def show(self):
        print(self.name,self.__age)
stu=Student('张三',20)
stu.show()
#在类的外面使用name与age
print(dir(stu))
print(stu._Student__age)

02.继承

继承:

  • 如果一个类没有继承任何类,则默认继承object
  • Python支持多继承
  • 定义子类时,必须在其构造函数中调用父类的构造函数
class  子类类名 (父类1,父类2):
       pass
class Person(object):
    def __init__(self,name,age):
         self.name=name
         self.age=age
    def info(self):
        print(self.name,self.age)
class Student(Person):
    def __init__(self,name,age,stu_no):
        super().__init__(name,age)
        self.stu_no=stu_no
class Teacher(Person):
    def __init__(self,name,age,teachofyear):
        super().__init__(name,age)
        self.teachofyear=teachofyear
stu=Student('张三',20,'1001')
teacher=Teacher('李四',34,23)
stu.info()
teacher.info()

03.方法重写

class Teacher(Person):
    def __init__(self,name,age,teachofyear):
        super().__init__(name,age)
        self.teachofyear=teachofyear
    def info(self):
        super().info()
        print('教龄是'+self.teachofyear)

04.Object类


Object类:


object类是所有类的父类,因此所有类都有object类的属性和方法。

内置函数dir()可以查看指定对象所有属性

Object有一个_str_()方法,用于返回一个对于"对象的描述",对应于内置函数str()经常用于print()方法,帮我们查看对象的信息,所以我们经常会对__str__()进行重写


05.多态的实现


多态:多态就是‘具有多种形态’,它指的是:即便不知道一个变量所引用的对象到底是什么类型,仍然可以通过这个变量调用方法,在运行过程中根据变量所引用对象的类型,动态决定调用哪个对象中的方法。


class Animal(object):
    def eat(self):
        print('动物会吃')
class Dog(Animal):
    def eat(self):
        print('狗吃骨头...')
class Cat(Animal):
    def eat(self):
        print('猫吃鱼...')
class Person:
    def eat(self):
        print('人吃五谷杂粮')
#定义一个函数
def fun(obj):
    obj.eat()
#开始调用函数
fun(Cat())
fun(Dog())
fun(Animal())

06.特殊属性


  • dict:获得类对象或实例对象所绑定的所有属性和方法的字典


x.__dict__


特殊方法:

  • len():通过重写_len_()方法,让内置函数len()的参数可以是自定义类型
  • add():通过重写_add_()方法,可使用自定义对象具有"+"功能
  • new():用于创建对象
  • init():对创建的对象进行初始化


07.类的赋值与浅拷贝

#变量的赋值
class CPU:
    pass
cpu1=CPU()
cpu2=cpu1

变量的赋值操作:只是形成两个变量,实际上还是指向同一个对象

浅拷贝:Python拷贝一般都是浅拷贝,拷贝时,对象包含的子对象内容不拷贝,因此,源对象与拷贝对象会引用同一个子对象

#类的浅拷贝
disk=Disk()
computer =Computer(cpu1,disk)
#浅拷贝
import copy
computer2=copy.copy(computer)
  • 深拷贝:使用copy模块的deepcopy函数,递归拷贝对象中包含的子对象,源对象和拷贝对象所有的子对象也不相同


#深拷贝
computer3=copy.deepcopy(computer)


14.模块和包


01.模块


模块:


模块英文为Modules

函数与模块的关系(一个模块中可以包含Nduoge函数)

在Python中一个扩展名为.py的文件就是一个模块

使用模块的好处:方便其它程序和脚本的导入并使用

避免函数名和变量名冲突

提高代码的可维护性

提高代码的可重用性


02.模块的导入


创建模块:新建一个.py文件,名称尽量不要与Python自带的标准模块名称相同

导入模块:import 模块名

from 模块名称 import 函数/变量/类


import math #关于数学运算
print(math.pi)
from math import pi
print(pi)

03.Python中的包


包是一个分层次的目录结构,它将一组功能相近的模块组织在一个目录下

作用:代码规范、避免模块名称冲突

包与目录的区别:包含__init__.py文件的目录称为包

目录里通常不包含_init_.py文件

包的导入

import 包名.模块名

使用from … import可以导入包,模块,变量等等


04.Python中常用的内容模块


sys:与Python解释器及其环境操作相关的标准库

time:提供与时间相关的各种函数的标准库

os:提供了访问操作系统服务功能的标准库

calendar:提供与日期相关的各种函数的标准库

urllib:用于读取来自网上(服务器)的数据标准库

json :用于使用JSON序列化和反序列化对象

re :用于在字符串中执行正则表达式匹配和替换

math:提供标准算数运算函数的标准库

decimal:用于进行精准控制运算精度、有效数位和四舍五入操作的十进制运算

logging:提供了灵活的记录事件、错误、警告和调试信息等日志信息的功能


05.第三方模块的安装及使用


pip install 模块名


import 模块名


import time
import schedule
def job():
    print('哈哈-----')
schedule.every(3).seconds.do(job)
while True:
    schedule.run_pending()
    time.sleep(1)


15.文件读写


01.编码格式介绍


  • 常见的字符编码格式
    Python的解释器使用的是Unicode(内存)
    .py文件在磁盘上使用UTF-8存储(外存)


02.文件读写的原理


  • 文件的读写俗称"IO操作"
  • 内置函数open()创建文件对象


file=open('a.txt','r')
print(file.readlines())//结果是一个列表
file.close()


03.常用的文件打开模式


文件的类型:

文本文件:存储的是普通“字符”文本,默认为unicode字符集,可以使用记事本程序打开

二进制文件:把数据内容用“字节”进行存储,无法用记事本打开,必须使用专用的软件打开,举例:MP3音频文件,jpg图片,doc文档等

r:以只读模式打开文件,文件的指针会放在文件的开头

w:以只写模式打开文件,如果文件不存在则创建,如果文件存在,则覆盖原有内容,文件指针放在文件的开头

a:以追加模式打开文件,如果文件不存在则创建,文件指针在文件开头,如果文件存在,则在文件末尾追加内容,文件指针在原文件末尾

b:以二进制方式打开文件,不能单独使用,需要与共它模式一起使用,rb,或者wb

+:以读写方式打开文件,不能单独使用,需要与其它模式一起使用,a+


04.文件对象常用方法


read([size]):从文件中读取size个字节或字符的内容返回。若省略[size],则读取到文件末尾,即一次读取文件所有内容

readline():从文本文件中读取一行内容

readlines():把文本文件中每一行都作为独立的字符串对象,并将这些对象放入列表返回

write(str):将字符串str内容写入文件

writelines(s_list):将字符串列表s_list写入文本文件,不添加换行符

seek(offset[,whence]):把文件指针移动到新的位置,offset


05.with语句(上下文管理器)


with语句可以自动管理上下文资源,无论什么原因跳出with块,都能保证文件正确的关闭,以此来达到释放资源的目的。


with open('a.txt','r') as file :
    print(file.read())


文件的复制:


with open('logo.png','rb') as src_file:
    with open('copy2logo.png','wb') as target_file:
        target_file.write(src_file.read())


06.os模块的常用函数


  • os模块是Python内置的与操作系统功能和文件系统相关的模块,该模块中的语句的执行结果通常与操作系统有关,在不同的操作系统上运行,得到的结果可能不一样。
  • os模块与os.path模块对于目录或文件进行操作
import os
os.system('notepad.exe')
#直接调用可执行文件
os.startfile('C://qq.exe')


getcwd():返回当前的工作目录

listdir(path):返回指定路径下的文件和目录信息

mkdir(path[,mode]):创建目录

makedirs(path1/path2…[,mode]):创建多级目录

rmdir(path):删除目录

removedirs(path1/path2…):删除多级目录

chdir(path):将path设置为当前工作目录

os.path模块操作目录相关函数:


abspath(path):用于获取文件或目录的绝对路径

exists(path):用于判断文件或目录是否存在,如果存在返回True,否则返回False

join(path,name):将目录与目录或者文件名拼接起来

splitext():分离文件名和扩展名

basename(path):从一个目录提取文件名

dirname(path):从一个路径中提取文件路径,不包括文件名

isdir(path):用于判断是否为路径


16.学生信息管理系统


功能:


添加学生及成绩信息

将学生信息保存到文件中

修改和删除学生信息

查询学生细腻些

根据学生成绩进行排序

统计学生的总分


01.项目打包


安装第三方模块


pip install PyInstaller


  • 执行打包操作


pyinstaller  -F E:\video\studentsys\stusystem.py
相关文章
|
1天前
|
开发者 Python
Python入门:8.Python中的函数
### 引言 在编写程序时,函数是一种强大的工具。它们可以将代码逻辑模块化,减少重复代码的编写,并提高程序的可读性和可维护性。无论是初学者还是资深开发者,深入理解函数的使用和设计都是编写高质量代码的基础。本文将从基础概念开始,逐步讲解 Python 中的函数及其高级特性。
Python入门:8.Python中的函数
|
1天前
|
存储 索引 Python
Python入门:6.深入解析Python中的序列
在 Python 中,**序列**是一种有序的数据结构,广泛应用于数据存储、操作和处理。序列的一个显著特点是支持通过**索引**访问数据。常见的序列类型包括字符串(`str`)、列表(`list`)和元组(`tuple`)。这些序列各有特点,既可以存储简单的字符,也可以存储复杂的对象。 为了帮助初学者掌握 Python 中的序列操作,本文将围绕**字符串**、**列表**和**元组**这三种序列类型,详细介绍其定义、常用方法和具体示例。
Python入门:6.深入解析Python中的序列
|
1天前
|
程序员 UED Python
Python入门:3.Python的输入和输出格式化
在 Python 编程中,输入与输出是程序与用户交互的核心部分。而输出格式化更是对程序表达能力的极大增强,可以让结果以清晰、美观且易读的方式呈现给用户。本文将深入探讨 Python 的输入与输出操作,特别是如何使用格式化方法来提升代码质量和可读性。
Python入门:3.Python的输入和输出格式化
|
1天前
|
机器学习/深度学习 人工智能 算法框架/工具
Python入门:1.Python介绍
Python是一种功能强大、易于学习和运行的解释型高级语言。由**Guido van Rossum**于1991年创建,Python以其简洁、易读和十分工程化的设计而带来了庞大的用户群体和丰富的应用场景。这个语言在全球范围内都被认为是**创新和效率的重要工具**。
Python入门:1.Python介绍
|
1天前
|
缓存 算法 数据处理
Python入门:9.递归函数和高阶函数
在 Python 编程中,函数是核心组成部分之一。递归函数和高阶函数是 Python 中两个非常重要的特性。递归函数帮助我们以更直观的方式处理重复性问题,而高阶函数通过函数作为参数或返回值,为代码增添了极大的灵活性和优雅性。无论是实现复杂的算法还是处理数据流,这些工具都在开发者的工具箱中扮演着重要角色。本文将从概念入手,逐步带你掌握递归函数、匿名函数(lambda)以及高阶函数的核心要领和应用技巧。
Python入门:9.递归函数和高阶函数
|
1天前
|
存储 SQL 索引
Python入门:7.Pythond的内置容器
Python 提供了强大的内置容器(container)类型,用于存储和操作数据。容器是 Python 数据结构的核心部分,理解它们对于写出高效、可读的代码至关重要。在这篇博客中,我们将详细介绍 Python 的五种主要内置容器:字符串(str)、列表(list)、元组(tuple)、字典(dict)和集合(set)。
Python入门:7.Pythond的内置容器
|
1天前
|
存储 Linux iOS开发
Python入门:2.注释与变量的全面解析
在学习Python编程的过程中,注释和变量是必须掌握的两个基础概念。注释帮助我们理解代码的意图,而变量则是用于存储和操作数据的核心工具。熟练掌握这两者,不仅能提高代码的可读性和维护性,还能为后续学习复杂编程概念打下坚实的基础。
Python入门:2.注释与变量的全面解析
|
1月前
|
存储 开发者 Python
python基本语法
Python的基本语法简洁而强大,支持多种编程范式,包括面向对象编程和函数式编程。通过掌握变量和数据类型、操作符、控制结构、函数、类和模块等基本概念,可以有效地编写高效、可读的Python代码。无论是初学者还是经验丰富的开发者,Python都提供了丰富的工具和库来满足各种编程需求。
70 13
|
1天前
|
知识图谱 Python
Python入门:4.Python中的运算符
Python是一间强大而且便捷的编程语言,支持多种类型的运算符。在Python中,运算符被分为算术运算符、赋值运算符、复合赋值运算符、比较运算符和逻辑运算符等。本文将从基础到进阶进行分析,并通过一个综合案例展示其实际应用。
|
1月前
|
存储 数据挖掘 数据处理
Python Pandas入门:行与列快速上手与优化技巧
Pandas是Python中强大的数据分析库,广泛应用于数据科学和数据分析领域。本文为初学者介绍Pandas的基本操作,包括安装、创建DataFrame、行与列的操作及优化技巧。通过实例讲解如何选择、添加、删除行与列,并提供链式操作、向量化处理、索引优化等高效使用Pandas的建议,帮助用户在实际工作中更便捷地处理数据。
47 2

热门文章

最新文章

推荐镜像

更多