
Python入门
Python入门
帅兰
工作了没时间更新了,有需要帮助的私聊留言哟~
展开
-
MySQL约束条件
sailan1. not null 与 default2. unique1. not null 与 default设置插入数据时,是否可为空,not null 为不可空,default设置默认值当插入数据时如果未主动设置,则自动添加默认值;create table t1 (x int not null);mysql> desc t1;+-------+---------+------+-----+---------+-------+| Field | Type | Null | K原创 2020-09-03 09:15:52 · 192 阅读 · 0 评论 -
MySQL数据库初步入门
sailan一、数据库软件的由来二、数据库概述2.1 什么是数据库(DataBase,简称DB)2.2 数据库管理系统(DataBase Management System,简称DBMS)2.3 数据库服务器、数据管理系统、数据库、表与记录的关系2.4 数据库管理技术发展史三、一、数据库软件的由来数据想要永久保存都是存于硬盘,文件则是操作系统提供给我们操作数据的接口,一个文件只能存在于一台机器上,如果暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件都运行在一台机器上,那么用文件存取数据,原创 2020-08-31 21:24:51 · 503 阅读 · 0 评论 -
Python-并发编程-协程
sailan一、什么是协程二、引入协程使用情景三、greenlet、gevent、asyncio3.1 greenlet3.2 gevent3.3 asyncio一、什么是协程协程:是单线程下的并发,又称微线程,纤程。英文名Coroutine。协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度的。注意:python的线程属于内核级别的,即由操作系统控制调度(如单线程遇到io或执行时间过长就会被迫交出cpu执行权限,切换其他线程运行)单线程内开启协程,一旦遇到io,就会从应用程序级别(原创 2020-08-27 16:41:32 · 172 阅读 · 0 评论 -
Python-并发编程-线程
sailan一、进程一、进程通过前面操作系统方面我们了解到程序自己是不能直接运行的原创 2020-08-25 16:19:03 · 271 阅读 · 0 评论 -
Python-并发编程-进程
sailan一、什么是进程二、进程和程序的区别三、并发与并行及串行四、进程的创建五、进程的终止6、进程的状态一、什么是进程进程就是正在执行的程序,执行程序的过程可以说是一个任务,负责执行任务的则是CPU。二、进程和程序的区别程序没执行仅仅只是一堆代码,进程则指的是程序的运行过程。三、并发与并行及串行并发: 是伪并行,即看起来是同时运行。单个cpu+多道技术就可以实现并发,(并行也属于并发)并行: 多个任务是真的在同时运行,只有多个cpu才有并行的概念单核下,可以利用多道技术,多个核,每个核也原创 2020-08-21 16:59:17 · 170 阅读 · 0 评论 -
Python-从操作系统引入进程及并发概念
sailan一、进程是什么二、操作系统一、进程是什么顾名思义,进程即是程序执行的过程,进程是对正在运行程序的一个抽象理解。进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一。操作系统的其他所有内容都是围绕进程的概念展开的。所以想要真正了解进程,必须事先了解操作系统。二、操作系统精简的说的话,操作系统就是一个协调、管理和控制计算机硬件资源和软件资源的控制程序。操作系统所处的位置如下图;...原创 2020-08-20 19:42:10 · 213 阅读 · 0 评论 -
Python-猴子补丁
sailan什么是猴子补丁使用解析什么是猴子补丁生活中衣服破了洞,我们不想就这样将其丢掉,就会打个补丁缝缝补补讲究着用,这种理解带入程序中也是这样,个别功能有问题,但我们并不想将其重构或丢掉,只想将其个别功能替换,这就是打补丁的概念,为啥称呼为猴子补丁这就不得而知了,但我们要知道打补丁是种补救措施,并不一定是好事不要滥用;使用解析程序中某个功能使用不理想效率低等,我们给它换成其它效率高的,这就等于打上补丁了,它是直接将你程序的某一功能换成其它的,这是一种思想/解决方案,例如Python中的内置j原创 2020-08-20 17:05:31 · 226 阅读 · 0 评论 -
Python-垃圾回收机制
sailan一、垃圾回收机制是什么二、为什么要垃圾回收机制三、理解GC原理知识储备1. 堆区与栈区2. 直接引用与间接引用四、垃圾回收机制原理分析1. 引用计数2. 引用计数的问题及解决方案2.1 循环引用2.2 标记清除2.3 效率问题2.4 分带回收详见老师博客老猿取精一、垃圾回收机制是什么Python解释器的一种机制,它会回收不可用的变量值所占的内存空间。二、为什么要垃圾回收机制程序运行过程中会占用大量的内存空间,而对于一些无用的数据占用的内存空间如果不及时清理会导致内存溢出以致程序崩溃,因此原创 2020-08-20 16:10:51 · 246 阅读 · 0 评论 -
Python-元类-单例
sailan一、元类解析1、什么是元类2、class关键字创建类的底层流程二、自定义元类1、定义元类2、自定义类来控制类的产生3、自定义元类来控制类的调用三、单例四、属性查找详见e鸡欧n老师的博客一、元类解析1、什么是元类在Python中一切皆是对象,所有的对象都是实例化或者说调用类而得到的(调用类的过程称为类的实例化),一切皆为对象,那么类本质也是一个对象,既然所有的对象都是调用类得到的,那么类必然也是调用了另一个类得到的,这个类称为元类;# 元类=》OldboyTeacher类=》objcl原创 2020-08-18 17:14:35 · 343 阅读 · 0 评论 -
Python-网络编程
sailan一、c/s架构二、osi七层三、套接字编程(socket)1、什么是socket2、套接字发展史及分类一、c/s架构C指的是client(客户端软件),S指的是Server(服务端软件),服务器负责数据的管理,客户机负责完成与用户的交互任务。主要特点是交互性强、具有安全的存取模式、响应速度快、利于处理大量数据。但是C/S结构缺少通用性,系统维护、升级需要重新设计和开发,增加了维护和管理的难度,进一步的数据拓展困难较多。优点:能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交原创 2020-08-17 10:11:36 · 187 阅读 · 0 评论 -
作业-选课系统
sailan一、作业需求二、项目根目录文件一览startconfsettingscoresrcadminteacherstudentdbdb_handlermodelsinterfaceadmin_interfaceteacher_interfacestudent_interfacecommon_interfacelibcommon一、作业需求readme作业要求:选课系统角色:学校、学生、课程、讲师要求:1. 创建北京、上海 2 所学校2. 创建linux , python , go 3个原创 2020-08-12 21:28:53 · 318 阅读 · 0 评论 -
Python-异常处理
帅兰1、什么是异常处理2、异常的处理1、什么是异常处理异常是错误发生的信号,一旦程序出错就会产生一个异常如果该异常没有被处理,该异常就会被抛出来,程序的运行随即终止错误又分两种:语法错误: 若出现,执行程序不会执行,须要执行前修正;逻辑错误: 程序可以执行,运行中出现才会抛出。异常信息由三部分组成具体哪一行代码抛出的异常异常的种类常用异常AttributeError 试图访问一个对象没有的属性,比如foo.x,但是foo没有属性xIOError 输入/输出异常;基本上是无法打原创 2020-08-10 18:39:15 · 111 阅读 · 0 评论 -
Python-反射及内置方法
sailan一、反射二、内置方法一、反射反射(reflection)机制被视为Python这类动态语言的关键。反射机制指的是在程序的运行状态中对于任意一个类,都可以知道这个类的所有属性和方法;对于任意一个对象,都能够调用他的任意方法和属性。这种动态获取程序信息以及动态调用对象的功能称为反射机制。python中实现反射非常简单,程序运行过程中,如果我们获取一个不知道存有何种属性的对象,若想操作其内部属性,可以先通过内置函数dir来获取任意一个类或者对象的属性列表,列表中全为字符串格式;>>原创 2020-08-09 22:14:42 · 280 阅读 · 0 评论 -
Python-多态性
sailan一、多态性一、多态性多态是指一类事物具有多种形态,例如动物有多种形态:猫、狗、猪class Animal: # 同一类的事物:动物 def talk(self): passclass Cat(Animal): # 猫 def talk(self): print('喵喵喵')class Dog(Animal): # 狗 def talk(self): print('汪汪汪')class Pig(Animal):原创 2020-08-09 22:02:38 · 278 阅读 · 0 评论 -
Python-继承
帅兰一、继承简单介绍二、继承与抽象三、属性查找四、继承的实现原理1、棱形问题2、 继承原理3、深度优化和广度优化4、Python Mixins机制一、继承简单介绍继承是一种新建类的方式,,新建的类称之为子类或派生类,被继承的类称之为父类、基类、超类,Python中支持多继承,子类会遗传父类的属性,所以继承是用来解决类与类之间代码冗余问题;class ParentClass1: #定义父类 passclass ParentClass2: #定义父类 passclass SubC原创 2020-08-06 19:19:10 · 222 阅读 · 0 评论 -
Python-面向对象之封装
帅兰1、封装2、隐藏1、封装封装就是指的是把数据和功能整合起来,封装类与对象我们可以较严格的控制它们的访问,做到隐藏它们和开放关联访问的接口。注意:在定义类或者初始化对象时,在属性前加__,就会将该属性隐藏起来;但该隐藏起始只是一种变形,并没有真的隐藏起来,只是检测语法时自动变成了“_类名__属性名”的形式;该变形操作是在类定义阶段扫描语法时发生的变形,类定义之后添加的__开头的属性不会发生变形;该隐藏是对外不对内。2、隐藏Python中Class可以采用双下划线开头的方式将原创 2020-08-05 18:37:17 · 304 阅读 · 0 评论 -
Python-常用模块shelve、shutil
sailan1、shelve模块2、shutil模块1、shelve模块shelve模块比pickle模块简单,只有一个open函数,返回类似字典的对象,可读可写;key必须为字符串,而值可以是python所支持的数据类型import shelvef = shelve.open(r'sheve.txt')f['stu1_info'] = {'name': 'egon', 'age': 18, 'hobby': ['piao', 'smoking', 'drinking']}f['stu2_in原创 2020-08-04 18:56:01 · 173 阅读 · 0 评论 -
Python-面向对象编程思想
摔烂一、面向对象简单解析二、类与对象1、类与对象解析2、案例解析三、属性访问1、类属性与对象属性2、属性查找顺序与绑定方法一、面向对象简单解析我们之前学过面向过程实现,它的核心即是过程两字,即就是先干啥后干啥,最后在干啥,基于这个思想编程就像是设计流水线,将复杂的流程问题流程化进而简单化,缺点就是拓展性较差牵一动则全身;而面向对象编程思想核心则是对象两字,对象可以把它当成一个盛放数据和功能的容器,基于这个思想写程序就像在整合工具\程序,优点数据等分开存放,拓展行性强,缺点也很明细,会较大的提升编程的复原创 2020-08-04 18:38:59 · 340 阅读 · 0 评论 -
Python-正则模块
sailan1、正则模块是啥2、常用匹配模式(元字符)3、re模块提供方法介绍1、正则模块是啥正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法。或者说:正则就是用来描述一类事物的规则。(在Python中)它内嵌在Python中,并通过 re 模块实现。正则表达式:由一系列特殊字符拼接而成的表达式/规则,该表达式用于从一个大字符串中匹配出符合规则的子字符串。2、常用匹配模式(元字符)\w 匹配字母数字及下划线\W 匹配非字母数字下划线# \wprint(r原创 2020-08-03 17:04:52 · 598 阅读 · 0 评论 -
Python-常用模块random
import randomprint(random.random()) #(0,1)----float 随机取大于0且小于1之间的小数print(random.randint(1,3)) #[1,3] 大于等于1且小于等于3之间的整数print(random.randrange(1,3)) #[1,3) 大于等于1且小于3之间的整数print(random.choice([1,'23',[4,5]])) # 1或者23或者[4,5] 随机选一个print(random.sam原创 2020-07-30 15:31:49 · 116 阅读 · 0 评论 -
Python-时间模块time、datetime
sailan1、时间模块time、datetime1.1 三种时间格式解析1.2 时间格式间的转换二级目录三级目录1、时间模块time、datetime1.1 三种时间格式解析时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。格式化的时间字符串(Format String)结构化的时间(struct_time):struct_time元组共有9个元素共九个元素:(年原创 2020-07-30 15:18:51 · 195 阅读 · 0 评论 -
Python-序列化\反序列化以及json、pickle,hashlib模块
sailan1、序列化和反序列化2、为什么要序列化?3、json、pickle1、序列化和反序列化eval是Python内置方法可以将一个字符串转成python对象,不过,eval方法是有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型的时候,eval就不管用了,eval的重点还是通常用来执行一个字符串表达式,并返回表达式的值。我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化,都是一个意思。2、为什么要序列化?持久保存状态在断电或重启程序之前将程序原创 2020-07-29 19:04:36 · 216 阅读 · 0 评论 -
Python-包的使用
摔烂一、包是什么二、包的使用一、包是什么当模块数目的增多,把所有模块不加区分地放到一起也是非常不合理的,Python为我们提供了一种把模块组织到一起的方法,即就是创建一个包。包就是一个含有__init__.py文件的文件夹,文件夹内可以组织子模块或者子包,# 例如:pool/ #顶级包├── __init__.py ├── futures #子包│ ├── __init__.py│ ├── process.py│ └──原创 2020-07-29 18:48:13 · 399 阅读 · 0 评论 -
ATM机+购物车Python试写
sailan项目目录代码# start.pyimport osimport sys# 配置启动文件的环境变量base_path = os.path.dirname(__file__) # 获取根目录路径sys.path.append(base_path) # 将路径加入py环境变量# 调用视图层的run函数到这边执行from core import srcif __name__ == '__main__': src.run()# src.pyfrom int原创 2020-07-28 22:31:34 · 221 阅读 · 0 评论 -
Python-软件开发目录规范
为了提高程序的可读性与可维护性,我们应该为软件设计良好的目录结构,这与规范的编码风格同等重要。软件的目录规范并无硬性标准,只要清晰可读即可,假设你的软件名为foo,推荐目录结构如下Foo/|-- core/| |-- core.py||-- api/| |-- api.py||-- db/| |-- db_handle.py||-- lib/| |-- common.py||-- conf/| |-- settings.py||-- run.py|--原创 2020-07-25 20:08:49 · 281 阅读 · 0 评论 -
Python-模块
一 模块介绍在Python中,一个py文件就是一个模块,文件名为mk.py模块名则是mk,导入模块可以引用模块中已经写好的功能,程序中的模块可以被重复使用。好处使用模块既保证了代码的重用性,又增强了程序的结构性和可维护性。另外除了自定义模块外,我们还可以导入使用内置或第三方模块提供的现成功能,这种“拿来主义”极大地提高了我们程序员的开发效率。二 模块的使用2.1 import语句有如下示范文件#文件名:foo.pyx=1def get(): print(x)def change():原创 2020-07-24 00:35:18 · 197 阅读 · 0 评论 -
Python-匿名函数
一、匿名函数匿名函数lambda 对比使用def关键字创建的是有名字的函数,使用lambda关键字创建则是没有名字的函数,即匿名函数,语法如下# lambda 参数1,参数2,...: expression# def用于定义有名函数# func=函数的内存地址def func(x,y): return x+yprint(func)# lamdab用于定义匿名函数print(lambda x,y:x+y)# 调用匿名函数# 方式一:res=(lambda x,y:原创 2020-07-23 23:53:24 · 327 阅读 · 1 评论 -
Python-函数的递归调用
帅兰一、递归调用解析1、什么是递归调用2、死递归3、递归调用两个阶段4、案例一、递归调用解析1、什么是递归调用即就是说在调用一个函数的过程中,函数内部又调用另一个函数,而函数的递归调用指的是在调用一个函数的过程中又直接或间接地调用该函数本身。# 直接def foo(): print('hhh') foo()foo()# 间接def dar(): print('hhh') foo()def foo(): print('哈哈哈') dar()原创 2020-07-23 22:53:10 · 512 阅读 · 0 评论 -
Python-面向过程
帅兰一、面向过程编程思想一、面向过程编程思想编程思想/范式面向过程的编程思想:核心是"过程"二字,过程即流程,指的是做事的步骤:先什么、再什么、后干什么基于该思想编写程序就好比在设计一条流水线优点: 复杂的问题流程化、进而简单化缺点: 扩展性非常差面向过程的编程思想应用场景解析:不是所有的软件都需要频繁更迭:比如编写脚本即便是一个软件需要频繁更迭,也不并不代表这个软件所有的组成部分都需要一起更迭...原创 2020-07-22 19:03:30 · 251 阅读 · 0 评论 -
Python-生成式及表达式
帅的大自然一、列表等生成式1、列表生成式一、列表等生成式1、列表生成式列表生成式是python为我们提供的一种简化代码的解决方案,用来快速生成列表,语法如下[expression for item1 in iterable1 if condition1for item2 in iterable2 if condition2...for itemN in iterableN if conditionN]#类似于res=[]for item1 in iterable1: if转载 2020-07-22 18:49:45 · 246 阅读 · 0 评论 -
Python-迭代器及生成器
一、迭代器1、迭代器是什么怎么用迭代器指的是迭代取值的工具,迭代是一个重复的过程,每次重复都是基于上一次的结果而继续的,单纯的重复并不是迭代;迭代器是用来迭代取值的工具,而涉及到把多个值循环取出来的类型有:列表、字符串、元组、字典、集合、打开文件 l=['egon','liu','alex'] i=0 while i < len(l): print(l[i]) i+=1上述迭代取值的方式只适用于有索引的数据类型:列表、字符串、元组;为了解决基于索引迭代器取值的原创 2020-07-22 16:10:26 · 137 阅读 · 0 评论 -
Python-装饰器
帅兰一、什么是装饰器二、无参装饰器三、有参装饰器一、什么是装饰器器指的是工具,可以定义成成函数;装饰指的是为其他事物添加额外的东西点缀;合到一起的解释:装饰器指的定义一个函数,该函数是用来为其他函数添加额外的功能。开放封闭原则:开放:指的是对拓展功能是开放的封闭:指的是对修改源代码是封闭的装饰器就是在不修改被装饰器对象源代码以及调用方式的前提下为被装饰对象添加新功能函数装饰器又分为,无参装饰器和有参装饰两种,二者的实现原理一样,都是’函数嵌套+闭包+函数对象’的组合使用的产物。二、无参原创 2020-07-21 22:35:51 · 105 阅读 · 0 评论 -
Python-函数对象及闭包函数
sailan一、函数对象1、函数对象简单解析二、闭包函数1、什么是闭包函数2、为何要有闭包函数一、函数对象1、函数对象简单解析指的是函数可以被当做’数据’来处理,在python中定义个最简单的函数如下:def func(): print('我真帅')func()当代码执行遇到def以后,会现在内存中生成一个函数对象,这个函数对象被定义为这个函数的名字。当我们调用函数时就要指定函数的名字,通过函数名才能找到这个函数地址。 函数的代码段在定义时是不会执行的,只有当这个函数被调用时,函数内部的原创 2020-07-21 21:25:48 · 104 阅读 · 0 评论 -
Python-名称空间与作用域
帅兰一、名称空间1、内置名称空间2、全局名称空间3、局部名称空间4、加载与查找顺序二、作用域1、两种作用域2、作用域与名字查找的优先级3、globals()与nonlocal()的使用一、名称空间名称空间即存放名字与对象映射/绑定关系的地方。例如 x=3,Python会申请内存空间存放对象3,然后将名字x与3的绑定关系存放于名称空间中,del x表示清除该绑定关系。在程序执行期间最多会存在三种名称空间如下;1、内置名称空间伴随python解释器的启动/关闭而产生/回收,因而是第一个被加载的名称空间原创 2020-07-20 19:56:32 · 124 阅读 · 0 评论 -
Python-函数的参数
帅兰一、形参与实参介绍二、形参与实参的具体使用1、位置参数2、关键字参数3、默认参数待补充一、形参与实参介绍函数的参数分为形式参数和实际参数,简称形参和实参:形参 即在定义函数时,括号内声明的参数。形参本质就是一个变量名,用来接收外部传来的值。(相当于变量名)实参 即在调用函数时,括号内传入的值,值可以是常量、变量、表达式或三者的组合:(相当于变量值)# 1:实参是常量res=my_min(1,2)# 2:实参是变量a=1b=2res=my_min(a,b)# 3:实参是表达式原创 2020-07-19 03:13:30 · 266 阅读 · 0 评论 -
Python-函数的基本使用
帅兰一、函数基础概念1、什么是函数2、为什么要有函数3、函数的使用原则二、函数的定义1、函数语法2、定义和调用时发生的事3、定义函数的三种参数格式三、调用函数的三种形式式及返回值1、函数的调用2、调用的三种形式3、返回值 (return)小结一、函数基础概念1、什么是函数函数其实就相当于具备某一功能的工具;我们完全可以从现实生活中找到类似简化程序设计的方案,比如一个修理工会事先准备好螺丝刀、锤子等工具,这样在进行修理的过程中,需要用到拧螺丝的功能时就直接拿来螺丝刀使用,需要用到锤击物体的功能时就直接原创 2020-07-19 02:47:25 · 138 阅读 · 0 评论 -
Python-文件处理
帅兰一、文件是什么二、文件的基础操作1、打开文件2、绝度路径与相对路径3、资源回收与with的上下文管理4、指定操作文本文件的字符编码二、文件的操作模式控制文件读写内容的模式一、文件是什么 应用程序运行过程中产生的数据最先都是存放在内存里的,想永久保存下来,必须要保存到硬盘。应用程序若想操作硬件必须通过操作系统,而文件就是操作系统提供给应用程序来操作硬盘的一种虚拟概念,用户或应用程序对文件的操作,就是向操作系统发起调用,然后由操作系统完成对硬盘的具体操作。二、文件的基础操作1、打开文件# 1.原创 2020-07-15 19:01:58 · 148 阅读 · 0 评论 -
Python-解释器执行文件的三个阶段
摔烂1、 python解释器执行文件的前两个阶段执行py文件的前两个阶段就是python解释器读文本文件的过程,与文本编辑读文本文件的前两个阶段没有任何区别,要保证读不乱码,则必须将python解释器读文件时采用的编码方式设置为文件当初写入硬盘时的编码格式,如果没有设置,python解释器则才用默认的编码方式,在python3中默认为utf-8,在python2中默认为ASCII。我们可以通过指定文件头来修改默认的编码:# 在文件首行写入包含#号在内的以下内容# coding: 当初文件写入硬盘原创 2020-07-15 15:31:12 · 533 阅读 · 0 评论 -
Python-深浅copy
摔烂浅copy: 就是把列表第一层的内存地址不加区分完全copy一份新的列表。对于不可变类型的赋值,都是产生了新值,让原列表的索引指向新的内存地址,并不会影响新的copy列表。list1 = ['111', '222', [333, 444]]list2 = list1.copy()print(list2) # ['111', '222', [333, 444]]print(id(list1)) # 49482504print(id(list2)) # 49347528print(id原创 2020-07-13 20:09:02 · 136 阅读 · 0 评论 -
Python入门-基本数据类型进阶(list,dict,tuple,set)
摔烂一、列表1、定义2、类型转换3、使用(正取or反取)4、切片(顾头不顾尾,步长)5、长度(len)6、成员运算(in和not in)7、添加元素(append,extend,insert)8、删除(del,remove,pop)9、其他(reverse,sort,clear,count,index)二、元祖1、作用2、定义3、类型转换4、取用5、切片(顾头不顾尾,步长)6、长度7、成员运算三、字典1、定义2、类型转换3、使用3、长度4、成员运算5、删除(popitem,del,pop)6、键keys()原创 2020-07-13 19:33:20 · 359 阅读 · 0 评论