| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> Python知识库 -> Python(下) -> 正文阅读 |
|
|
[Python知识库]Python(下) |
函数函数的定义与调用函数就是执行特定任务以完成特定功能的一段代码 函数的创建
函数的调用
函数的参数传递函数调用的参数传递 2、关键字实参:根据形参名称进行实参传递 函数参数传递的内存分析在函数调用过程中,进行参数的传递 函数的返回值1、如果函数没有返回值【函数执行完毕之后,不需要给调用处提供数据】,return可以省略不写 函数参数定义默认值参数函数定义时,给形参设置默认值,只有与默认值不符的时候才需要传递实参 个数可变的位置参数定义函数时,可能无法事先确定传递的位置实参个数时,使用可变的位置参数 个数可变的关键字形参定义函数时,无法实现确定传递的关键字实参的个数时,使用可变的关键字形参 函数的参数总结
变量的作用域程序代码能访问该变量的区域 递归函数递归函数:如果在一个函数的函数体内调用了该函数本身,这个函数就称为递归函数 雯波纳契数列
Bugbug的由来bug的常见类型1、粗心导致的语法错误:SyntaxError 多个except结构捕获异常的顺序按照先子类后父类的顺序,为了避免遗漏可能出现的异常,可以在最后增加BaseException try…except…else结构如果try块中没有抛出异常,则执行else块,如果try中抛出异常,except块 try…except…else…finally结构finally块无论是否发生异常都会被执行,能常用来释放try块中申请的资源 Python中常见的异常类型
traceback模块使用traceback模块打印异常信息
PyCharm开发环境调试断点程序运行到此处,暂时挂起,停止执行。此时可以详细观察程序的运行情况,方便做出进一步判断 进入调试视图方式: (2)右键单击编辑区:点击:debug‘模块名’ 面向对象编程
类与对象类类是过个类似事物组成的群体的统称。能够帮助我们快速理解和判断事物的性质 数据类型不同的数据类型属于不同的类;使用内置函数查看数据类型 对象Python中一切皆对象 类的创建类名单词的首字母大写,其余小写
对象的创建对象的创建称为类的实例化
类属性、类方法、静态方法类属性:类中方法外的变量称为类属性,被该类的所有对象共享 动态绑定属性和方法Python是动态语言,在创建对象之后,可以动态的绑定属性和方法
面向对象的三大特征封装:提供程序的安全性 封装及其实现将数据(属性)和行为(方法)包装到类对象中。在方法内部对属性进行操作,在类对象的外部调用方法。
继承及其实现
如果一个类没有继承任何类,则默认继承object 方法重写如果子类对继承自父类的某个属性或方法不满意,可以在子类中对其进行重新编写 object类object类是所有类的父类,因此所有类都有object类的属性和方法 多态及其实现多态就是“具有多种形态”,指的是:即便不知道一个变量所引用的对象到底是什么类型,仍然可以通过这个变量调用方法,在运行过程中根据变量所引用对象的类型,动态决定调用哪个对象中的方法 静态语言与动态语言关于多态的区别: 特殊属性和特殊方法
|
| 名称 | 描述 |
|---|---|
| class | 输出对象所属的类 |
| bases | 输出父类的元组 |
| base | — |
| mro | 输出类的层次结构 |
| subclasses() | 输出子类的列表 |
class Person(object):
def __init__(self,name,age):
print('__init__被调用了',self的id值为:{0}.format(id(self)))
self.name=name
self.age=age
def __new__(cls,*args,**kwargs):
print('__new__被调用执行了,cls的id值为{0}'.format(id(cls)))
obj=super().__new__(cls)
print('创建的对象的id为:{0}'.format(id(obj)))
return obj
print('object这个类对象的id为:{0}'.format(id(object)))
print('Person这个类对象的id为:{0}'.format(id(Person)))
p1=Person('张三',20)
print('p1这个Person类的实例对象的id:{0}'.format(id(p1)))
变量的赋值:只是形成两个变量,实际上还是指向同一个对象
浅拷贝:Python拷贝一般是浅拷贝,使用copy模块的copy函数,拷贝时,对象包含的子对象内容不拷贝,因此,源对象与拷贝对象会引用同一个子对象
深拷贝:使用copy模块的deepcopy函数,递归拷贝对象中包含的子对象,源对象和拷贝对象所有的子对象也不相同
一个模块中可以包含N多个函数
在Python中一个扩展名为.py的文件就是一个模块
使用模块的好处:方便其他程序和脚本的导入并使用;避免函数名和变量名冲突;提高代码的可维护性和可重用性
创建模块:新建一个.py文件,名称尽量不要与Python自带的标准模块名称相同
导入模块:
import 模块名称[as 别名]
from 模块名称 import 函数/变量/类
在每个模块的定义中都包括一个记录模块名称的变量__name__,程序可以检查该变量,以确定他们在哪个模块中执行。如果一个模块不是被导入到其他程序中执行,那么它可能在解释器的顶级模块中执行。顶级模块的__name__变量的值为__main__
if __name__='__main__':
pass
包是一个分层次的目录结构,他将一组功能相近的模块组织在一个目录下
作用:代码规范;避免模块名称冲突
包与目录的区别:包含__init__.py文件的目录称为包;目录里通常不包含__init__.py文件
import 包名.模块名
使用import方式进行导入时,只能跟包名或模块名
使用form…import方式进行导入时,可以导入包/模块/函数/变量等

pip install 模块名#安装
import 模块名#使用
import schedule
import time
def job():
print('哈哈-----')
schedule.every(3).seconds.do(job)
while True:
schedule.run_pending()
time.sleep(1)
Python的解释器使用的是Unicode(内存)
.py文件在磁盘上使用UTF-8存储(外存)

文件的读写俗称“IO操作”
文件读写操作流程:

操作原理:


内置函数open()创建文件对象

file=open(filename [,mode,encoding])

文件的类型
按文件中数据的组织形式,文件分为以下两大类:
1、文本文件:存储的是普通“字符”文本,默认为unicode字符集,可以使用记事本程序打开
2、二进制文件:把数据内容用“字节”进行存储,无法用记事本打开,必须使用专用的软件打开


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

类实现了特殊方法__enter__(),exit()称为该类对象遵守了上下文管理器协议
该类对象的示例对象,称为上下文管理器
OS模块是Python内置的与操作系统功能和文件系统相关的模块,该模块中的语句的执行结果通常与操作系统有关,在不同的操作系统上运行,得到的结果可能不一样
OS模块与os.path模块用于对目录或文件进行操作
import os
os.system('notepad.exe')#打开记事本
os.system('calc.exe')#打开计算器

import os
path=os.getcwd()
lst_files=os.walk(path)
for dirpath,dirname,filename in lst_files:
'''print(dirpath)
print(dirname)
print(filename)
print('----------------')
'''
for dir in dirname:
print(os.path.join(dirpath,dir))
print('-----------------------')
for file in filename:
print(os.path.join(dirpath,file))

本文章内容为观看哔哩哔哩视频所记笔记:https://www.bilibili.com/video/BV1wD4y1o7AS
|
|
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/27 22:26:10- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |