- 博客(56)
- 收藏
- 关注
原创 python 虚拟环境
使用虚拟环境,创建一个完全独立的局部python环境,在此环境中,安装所有与这个项目相匹配的库。一个项目使用一个局部的独立的python环境;互相之间没有干扰。这个局部的独立的python环境就称为虚拟环境。完全模拟系统全局python环境的使用...
2023-07-11 17:38:11
168
原创 python 包和模块 三方包
标准模块有时不能满足我们的需求时使用三方模块标准模块由官方发布,使用可靠,有健全的使用文档说明三方模块由网友提供,更新不及时安装方式:源码安装,自己手动去某个地方下载,再安装到本地。包管理器安装,更加简单的自动化的为用户安装管理包和模块,只需要一个或几个命令就可以完成常见已发布三方包和模块的形式源码,单文件模块,多文件模块,由包管理工具发布的项目。基于distutils工具发布的项目特性,包含setup.py。setuptools也是基于distutils.egg,setuptool
2021-07-10 00:47:54
476
原创 python 包和模块
基本概念模块为了使代码更容易维护,提高代码重用价值;可以将一组相关功能的代码写入一个单独的py文件中,供别人导入使用,这个py文件就被称作是一个模块包包是一个有层次的文件目录结构,它定义了由n个模块或n个子包具体表现形式:包含__init__.py 文件的目录,这个目录下一定得有这个__init__.py文件和其它模块或子包库参照其他编程语言的一个喊法完成一点功能的代码集合具体表现可以是一个模块,也可以是包框架一个架构层面的概念从库功能角度来看,解决一个开放性问题而设计的具有一定约束
2021-07-07 22:44:57
665
3
原创 【12月原创】基于 stm32 LL 库移植 RT-Thread Nano
RT-Thread Nano 移植主要包含Kernel部分和添加控制台与Finsh 这两部分,主要参考文档中心的内容。准备工作STM32Cube_FW_F1_V1.6.0开发是直接在STM32Cube_FW_F1_V1.6.0\Projects\STM32F103RB-Nucleo\Examples_LL\GPIO\GPIO_InfiniteLedToggling 这个工程上进行移植的。RealThread.RT-Thread.3.1.3.pack在MDK移植有介绍。Xshell-7.0.005
2020-12-26 19:59:29
751
原创 快速上手ARM体系结构
快速上手ARM体系结构MDK5 安装 patch课程芯片选择为 sansumg S3C2440A, MDK5 需要安装 Legacy SupportMDK5 新建工程需要选择 Legacy Device Database,才有S3C2440ABuild TargetBuild 出错,需要修改linkerError: L6630E.\Objects\test.axf: Error: L6630E: Invalid token start expected number or ( but
2020-10-18 15:50:40
312
原创 Python 面向对象 类的设计原则
面向对象遵循的原则:SOLIDS(Single Responsibility Rrinciple)单一职责原则,一个类只负责一项职能。好处:易于维护,写出高内聚的代码,易于代码复用O(Open Closed Principle)开放封闭原则,对扩展开放,对修改关闭。易于维护,保证代码安全性以及扩展性通过基类,以及抽象类等方案进行方法的统一L(Liskov substitution Principle)里氏替换原则,使用基类引用的地方必须能使用继承类的对象防止代码出现不可预知的错误,方便针
2020-09-24 20:35:02
174
原创 Python 面向对象 三大特性 综合案例
class Dog(object): def __init__(self, name, age = 1): self.name = name self.age = age def eat(self): print('名字是{}, 年龄{}岁的小狗在吃饭'.format(self.name, self.age)) def play(self): print('名字是{}, 年龄{}岁的小狗在玩'.format(
2020-09-24 19:59:21
200
原创 Python 面向对象 抽象类和抽象方法
抽象类一个抽象出来的类,并不是某一个具体的类,不能直接创建实例的类,创建会报错抽象方法抽象出来的一个方法,不具备具体实现,不能直接调用,子类不实现会报错python 中的实现无法直接支持,需要借助一个模块 import abc设置类的元类为 abc.ABCMeta使用装饰器修饰抽象方法 @abc.abstractmethodimport abcclass Animal(object, metaclass=abc.ABCMeta): @abc.abstractmethod
2020-09-21 20:25:10
243
原创 Python 面向对象 三大特性 多态
多态:一个类所延申的多种形态调用时的多种状态:在继承的前提下,使用不同的子类,调用父类的同一个方法,产生不同的功能python当中,没有真正意义的多态,也不需要多态
2020-09-21 20:09:17
98
原创 Python 面向对象 三大特性 继承
概念一个类拥有另外一个类的资源的方式之一并不是资源的复制,变成双份资源,而是资源的使用权资源指非私有的属性和方法分类单继承class Animal: passclass Dog(Animal): pass多继承class Animal: passclass xxx: passclass Dog(Animal, xxx): pass...
2020-09-20 16:42:35
213
原创 Python 面向对象 三大特性 封装
概念将一些属性和相关方法封装在一个对象中对外隐藏内部具体实现细节,内部实现,外界不需要关心。外界只需要根据内部提供的接口去使用就可以。好处:使用起来更加方便因为已经把很多相关的功能,封装成一个整体类似于像外界提供一个工具箱针对不同的场景,使用不同的工具箱就可以保证数据的安全针对安全级别高的数据,可以设置为私有可以控制数据为只读,外界无法修改也可以拦截数据的写操作,进行数据校验和过滤利于代码的维护如果后期,功能代码需要维护,则直接修改这个类内部代码即可只要保证接口名
2020-09-09 20:52:18
114
原创 Python 面向对象 小节案例
计算器通过类属性的方式:# 计算器 实现一些基本操作,加减乘除运算,以及打印结果操作class Caculator: __result = 0 @classmethod def first_value(cls, v): cls.__result = v @classmethod def jia(cls, n): cls.__result += n @classmethod def jian(
2020-09-08 21:16:21
242
原创 Python 面向对象 内存管理机制
存储方面在 python 中万物皆对象,不存在基本数据类型所有数据类型,都会在内存中开辟一块空间进行存储。会根据不同的类型以及内容,开辟不同的空间大小进行存储。返回该空间的地址给外界接收(称为‘引用’),用于后续对这个对象的操作,可以通过id()函数获取内存地址(10进制)通过hex()函数可以查看对应的16进制地址class Person(object): passp = Person()print(p)print(id(p))print(hex(id(p)))<
2020-08-31 21:30:30
257
原创 Python 面向对象 生命周期方法
生命周期概念指的是一个对象,从诞生到消亡的过程。当一个对象被创建时,会在内存中分配相应的内存空间进行存储。当一个对象不在使用,为了节约内存,就把这个对象释放。监听对象生命周期__new__当我们创建一个对象是用于给这个对象分配内存的方法。通过拦截这个方法,可以修改对象的创建过程。比如,单例设计模式class Person: def __new__(cls, *args, **kwargs): print('新建了一个对象,但是被我拦截了') pass
2020-07-12 21:13:38
408
原创 Python 面向对象 装饰器
class check(): def __init__(self, func): self.f = func def __call__(self, *args, **kwargs): print('登陆验证') self.f()def fashuoshuo(): print('发说说') fashuoshuo = check(fashuoshuo)fashuoshuo()登陆验证发
2020-07-12 20:31:25
149
原创 Python 面向对象 描述器
概念可以描述一个属性操作的对象定义定义方式1 propertyclass Person(): def __init__(self): self.__age = 10 def get_age(self): return self.__age def set_age(self, value): if value < 0: value = 0 self.__age =
2020-07-05 20:17:04
152
原创 Python 面向对象 补充 方法相关
私有化方法class Person(object): __age = 18 def __run(self): print('pao')内置特殊方法生命周期方法其他内置方法:信息格式化操作,调用操作,索引操作,切片操作,迭代器,描述器生命周期方法信息格式化操作__str__面向用户使用class Person(object): def __init__(self, n, a): self.name = n self.
2020-07-05 10:19:19
328
原创 Python 面向对象 补充 属性相关
私有化属性Python 并没有真正的私有化支持,但是可以使用下划线完成伪私有化的效果。类属性和实例属性遵循相同的规则。x公有属性类内部访问子类内部访问模块内其他位置访问类访问实例访问跨模块访问import 形式导入from 模块 import * 形式导入class Animal: x = 10 def test(self): ...
2020-05-04 21:09:45
140
原创 Python 面向对象 补充类相关
元类创建类对象的类 typenum = 10print(num.__class__)s = 'abc'print(s.__class__)class Person: passp = Person()print(p.__class__)print(int.__class__)print(str.__class__)print(Person.__class__)...
2020-05-03 17:13:40
256
原创 Python 面向对象 方法相关
方法的概念描述一个目标的行为动作和函数非常类似,最主要的区别为调用方式class Person: def eat2(self): print(1) print(2) print(3)p = Person()p.eat2()方法的划分划分依据:方法的第一个参数必须要接收的数据类型不管是哪一种类型的方法,都必须存储在类当中,...
2020-05-02 15:51:12
192
原创 Python 面向对象 属性相关
什么是对象对象是具体物体,拥有属性,拥有行为python 是一门特别彻底的面向对象编程(OOP)的语言面向对象:在解决问题的时候,关注的是解决问题的每一个过程面向对象:在解决问题的时候,关注的是解决问题所需要的对象面向对象本身是对面向过程的封装面向对象最重要的:按照功能对象进行划分找到对象,确定对象的属性和行为类某一个具体对象特征的抽象作用:根据抽象的类,生产具体的对象...
2020-05-02 09:39:47
450
1
原创 Python 函数高级
函数的使用描述直接在函数体的最上面使用三个双引号对注释说明的信息:函数的功能参数返回值def caculate(a, b): """ :param a: :param b: :return: """ passhelp(caculate)Help on function caculate in module main:cac...
2020-04-19 21:37:20
120
原创 Python 文件操作
打开相对路径:相对于哪一个目录下面的指定文件。python文件所在目录。r如果文件不存在则会报错。以只读的方式打开文件,这是默认模式。文件的指针将会放在文件的开头。f = open('a.txt','r')content = f.read()print(content)f.close()w以只写的方式打开文件文件的指针将会放在文件的开头,所以写入的新内容会覆盖文件...
2020-04-19 21:36:49
258
原创 Pyhton 函数作用域
变量的作用域Python 是静态作用域,变量的作用域源于它在代码中的位置。在不同的位置,可能有不同的命名空间。命名空间是作用域的体现形式。LEGBL-local函数的命名空间当前整个函数体范围E-Enclosing function locals外部嵌套函数的命名空间作用范围:闭包函数G-Global全局命名空间作用范围:当前模块(文件)B-Builtin内建模块命名...
2020-04-11 20:10:01
127
原创 Python 递归函数
函数A内部,继续调用函数A传递和回归求阶乘def jiecheng(n): if n == 1: return 1 return n * jiecheng(n - 1)result = jiecheng(4)print(result)24
2020-04-11 19:30:57
101
原创 Python 生成器
生成器是一个特殊的迭代器(迭代器的抽象层级更高)。所以拥有迭代器的特性:惰性计算数据,节省内存能够记录状态,并通过next()函数,访问下一个状态具有可迭代特性创建方式生成器表达式把列表推导式[]修改为()l = (i for i in range(1, 10000) if i % 2 == 0)print(next(l))print(next(l))print(l.__...
2020-04-11 19:22:59
105
原创 Python 装饰器
在函数名以及函数体不改变的前提下,给一个函数附加一些额外的代码。面向对象,具有开放封闭原则,已经写好的代码,尽可能不要修改。如果想要新增功能,在原先代码基础上,单独进行扩展。函数应该具有单一职责。def checkLogin(func): def inner(): print('登录验证') func() return innerdef f...
2020-04-11 17:52:22
125
原创 Python 函数 闭包
在函数嵌套的前提下,内层函数引用了外层函数的变量(包括参数),外层函数,又把内层函数,当做返回值进行返回,内层函数所引用外层变量称为闭包。def test(): a = 10 def test2(): print(a) return test2newFunc = test()newFunc()10应用场景:外层函数,根据不同的参数,来...
2020-04-11 10:56:50
105
原创 Python 函数的参数和返回值
关键字参数可以指明参数名称,不需要严格按照顺序。def mySum(num1, num2): print(num1, num2)mySum(num2 = 5, num1 = 6)6 5不定长参数*args函数体中可以直接以元组变量的方式使用该参数def mySum(*t): print(t, type(t)) result = 0 for v i...
2020-04-07 20:07:44
195
1
原创 Python时间日历
time时间戳import timeresult = time.time()print(result)1586164385.9268625获取时间元组time.localtime([seconds])seconds 为可选的时间戳,默认为当前时间import timeresult = time.localtime()print(result)time.struct_t...
2020-04-06 17:57:23
220
原创 Python 集合
概念无序的,不可随机访问的,不可重复的元素集合与数学中的集合概念类似,可对其进行交,并,差,补等逻辑运算分为可变集合和非可变集合,set为可变,frozenset为不可变集合,无法修改。定义可变集合s = {1, 2, 3}s = set('abc')s = set([1, 2, 3])s = set((1, 2, 3)))print(s, type(s)){1, 2, 3...
2020-04-06 17:10:32
1048
原创 Python字典
fromkeys(S, v=None)d = dict.fromkeys('abc', 666)print(d){‘a’: 666, ‘b’: 666, ‘c’: 666}key 不能重复,必须为不可变类型。增dic[key] = value删deldel dic[key]key 必须存在。pop删除指定键值对,返回对应的值dic.pop(key[, default]...
2020-04-06 10:32:02
156
原创 Python元组
t = (1)y = (1,)print(type(t), type(y))<class ‘int’> <class ‘tuple’>从列表转换元组:l = [1, 2, 3, 4]changTuple = tuple(l)print(changTuple, type(changTuple))元组不能被增加,删除,修改。查获取单个元素: tuple[...
2020-04-05 11:29:50
86
原创 Python 列表
文章目录列表生成式列表推导式增append()insert()extend()乘法运算加法运算删del语句popremove改查index()count()获取多个元素遍历遍历枚举对象使用迭代器进行遍历可迭代对象迭代器判定比较排序内建函数 sorted列表对象方法list.sort乱序反转列表生成式range(stop) [0, 1, …, stop - 1]range(start, sto...
2020-04-04 21:55:07
235
原创 Python 数据类型
数值整数(int)二进制 0b八进制 0o十进制十六进制 0xnum = 0x11浮点数(float)168.21.682e2复数(complex)a+jb complex(a,b)a,b 都是浮点数进制转换转换为2进制:bin()转换为8进制:oct()转换为10进制:int()转换为16进制:hex()数学函数内建函数(不需要导入),vscode ctr...
2020-03-31 21:29:35
115
原创 Python 水仙花数
水仙花数while True: num = input('请输入一个3位数') num = int(num) if not (100 <= num <= 999): print('你输入的数据无效,直接退出程序') exit() baiwei = num // 100 shiwei = num % 100 //...
2020-03-31 20:07:12
413
原创 Python 循环
while + elsenum = 0while num < 10: num += 1 print(num)else: print('循环完毕') print(num)break 语句不会执行 else.python 没有 do while.for + elsename = 'adfdafdasfasd'for c in name: ...
2020-03-29 17:33:58
188
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人