摘要: 1、什么是多对多两张表之间是一个双向的多对一关系,称之为多对多如何实现?建立第三张表,该表中有一个字段fk左表的id,还有一个字段是fk右表的idcreate table author( id int primary key auto_increment, name char(16));create 阅读全文
posted @ 2018-09-22 21:43 不沉之月 阅读(458) 评论(0) 推荐(0)
摘要: 1、把所有数据都存放于一张表的弊端 1、表的组织结构复杂不清晰 2、浪费空间 3、扩展性极差2、寻找表与表之间的关系的套路 举例:emp表 dep表 步骤一: part1: 1、先站在左表emp的角度 2、去找左表emp的多条记录能否对应右表dep的一条记录 3、翻译2的意义: 左表emp的多条记录 阅读全文
posted @ 2018-09-22 21:42 不沉之月 阅读(305) 评论(0) 推荐(0)
摘要: delete from tb1;强调:上面的这条命令确实可以将表里的所有记录都删掉,但不会将id重置为0,所以收该条命令根本不是用来清空表的,delete是用来删除表中某一些符合条件的记录delete from tb1 where id > 10;如果要清空表,使用truncate tb1;作用:将 阅读全文
posted @ 2018-09-22 21:42 不沉之月 阅读(105) 评论(0) 推荐(0)
摘要: #primary key:单单从约束角度去看,primary key就等同于not null unique#强调(******)1、一张表中必须有,并且只能有一个主键2、一张表中都应该有一个id字段,而且应该把id字段做成主键create table t17( id int primary key, 阅读全文
posted @ 2018-09-22 21:41 不沉之月 阅读(994) 评论(0) 推荐(0)
摘要: #unique:限制字段的值唯一#单列唯一create table t16( id int unique, name char(16));# 联合唯一create table server( id int unique, ip char(15), port int, unique(ip,port)) 阅读全文
posted @ 2018-09-22 21:39 不沉之月 阅读(212) 评论(0) 推荐(0)
摘要: #not null + defaultcreate table t15( id int, name char(16) not null, #not null 不能为空 sex enum('male','female','other') not null default "male" #default 阅读全文
posted @ 2018-09-22 21:37 不沉之月 阅读(3311) 评论(0) 推荐(0)
摘要: 作用与分类:枚举enum,多选一个集合set,多选多测试create table teacher( id int, name char(16), sex enum('male','female','others'), hobbies set('play','read','music','piao') 阅读全文
posted @ 2018-09-22 21:36 不沉之月 阅读(1367) 评论(0) 推荐(0)
摘要: 1、作用:时间相关2、分类:date:1999-01-27time: 11:11:11datetime:1999-01-27 11:11:11year:19993、测试create table student( id int, name char(16), born_year year, birth 阅读全文
posted @ 2018-09-22 21:35 不沉之月 阅读(211) 评论(0) 推荐(0)
摘要: # 查看sql_modemysql> show variables like "%sql_mode%";+ + +| Variable_name | Value |+ + +| binlogging_impossible_mode | IGNORE_ERROR || block_encryption 阅读全文
posted @ 2018-09-22 21:34 不沉之月 阅读(293) 评论(0) 推荐(0)
摘要: 作用:存储身高、体重、薪资分类:float (*****)double (**)decimal (**)测试:#相同点#1、对于三者来说,都能存放30位小数,#不同点:1、精度的排序从低到高:float,double,decimal2、float与double类型能存放的整数位比decimal更多c 阅读全文
posted @ 2018-09-22 21:34 不沉之月 阅读(190) 评论(0) 推荐(0)
摘要: 1、作用:姓名,地址,描述类的信息2、分类:char 定长varchar 变长3、测试:字符的宽度限制单位是字符个数create table t12(x char(4)); # 超出4个字符则报错,不够4个字符则用空格补全成4个字符create table t13(y varchar(4));# 超 阅读全文
posted @ 2018-09-22 21:34 不沉之月 阅读(783) 评论(0) 推荐(0)
摘要: 二 基本数据类型之整型:1、作用:id号,各种号码,年龄,等级2、分类:tinyint(**)int (*****)bigint(***)3、测试:默认整型都是有符号的create table t1(x tinyint);insert into t1 values(128),(-129);creat 阅读全文
posted @ 2018-09-22 21:33 不沉之月 阅读(428) 评论(0) 推荐(0)
摘要: 一 创建表的完整语法create table 表名(字段名1 类型[(宽度) 约束条件],字段名2 类型[(宽度) 约束条件],字段名3 类型[(宽度) 约束条件]);#解释:类型:使用限制字段必须以什么样的数据类型传值约束条件:约束条件是在类型之外添加一种额外的限制# 注意:1. 在同一张表中,字 阅读全文
posted @ 2018-09-22 21:32 不沉之月 阅读(1850) 评论(0) 推荐(0)
摘要: 1、文件夹(库) 增 create database db1 charset utf8; 改 alter database db1 charset gbk; 查 查看所有库的库名 show databases; 单独查看某一个库的信息 show create database db1; 删 drop 阅读全文
posted @ 2018-09-22 21:31 不沉之月 阅读(128) 评论(0) 推荐(0)
摘要: 1、数据库相关概念 数据库服务器(本质就是一个台计算机,该计算机之上安装有数据库管理软件的服务端) 数据库管理管理系统RDBMS(本质就是一个C/S架构的套接字软件) 库(文件夹) 》数据库 表(文件) 记录:抽取一个事物所有典型的特征/数据 egon,18,180,male,True 数据 nam 阅读全文
posted @ 2018-09-22 21:30 不沉之月 阅读(127) 评论(0) 推荐(0)
摘要: 1、安装2、加环境变量3、把mysqld软件做成系统服务 注意:制作之前先把mysqld关掉 C:\Windows\system32>tasklist |findstr mysqld mysqld.exe 8372 Console 2 454,916 K C:\Windows\system32>ta 阅读全文
posted @ 2018-09-22 21:30 不沉之月 阅读(147) 评论(0) 推荐(0)
摘要: 第一部分 MYSQL数据库 第一章:数据库介绍 第二章:基本管理 第三章:基本的SQL语句 第四章:创建表的完整语法 第五章:整型类型 第六章:补充sql_mode 第七章:浮点型 第八章:字符类型 第九章:日期类型 第十章:枚举与集合类型 第十一章:not null与default 第十二章:un 阅读全文
posted @ 2018-09-22 18:00 不沉之月 阅读(305) 评论(0) 推荐(0)
摘要: '''1. 目标: 在线程下实现并发 并发(多个任务看起来是同时执行就是并发):切换+保存状态2. 协程: 协程是单线程实现并发 注意:协程是程序员意淫出来的东西,操作系统里只有进程和线程的概念(操作系统调度的是线程) 在单线程下实现多个任务间遇到IO就切换就可以降低单线程的IO时间,从而最大限度地 阅读全文
posted @ 2018-09-22 17:39 不沉之月 阅读(105) 评论(0) 推荐(0)
摘要: from gevent import monkey;monkey.patch_all()from gevent import spawn,joinall #pip3 install geventimport timedef play(name): print('%s play 1' %name) t 阅读全文
posted @ 2018-09-22 17:39 不沉之月 阅读(116) 评论(0) 推荐(0)
摘要: 客户端: 阅读全文
posted @ 2018-09-22 17:38 不沉之月 阅读(208) 评论(0) 推荐(0)
摘要: '''from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutorimport time,random,osdef task(name,n): print('%s%s is running' %(name,os.getpi 阅读全文
posted @ 2018-09-22 17:38 不沉之月 阅读(170) 评论(0) 推荐(0)
摘要: 客户端: 阅读全文
posted @ 2018-09-22 17:37 不沉之月 阅读(134) 评论(0) 推荐(0)
摘要: import queue# queue.Queue() #先进先出# q=queue.Queue(3)# q.put(1)# q.put(2)# q.put(3)# print(q.get())# print(q.get())# print(q.get())# queue.LifoQueue() # 阅读全文
posted @ 2018-09-22 17:36 不沉之月 阅读(92) 评论(0) 推荐(0)
摘要: from threading import Thread,Eventimport timeevent=Event()def light(): print('红灯正亮着') time.sleep(3) event.set() #绿灯亮def car(name): print('车%s正在等绿灯' %n 阅读全文
posted @ 2018-09-22 17:35 不沉之月 阅读(89) 评论(0) 推荐(0)
摘要: # 信号量是控制同一时刻并发执行的任务数from threading import Thread,Semaphore,current_threadimport time,randomsm=Semaphore(5)def task(): with sm: print('%s 正在上厕所' %curre 阅读全文
posted @ 2018-09-22 17:34 不沉之月 阅读(103) 评论(0) 推荐(0)
摘要: from threading import Thread,Lockimport timemutex=Lock()x=100def task(): global x # mutex.acquire() temp=x time.sleep(0.1) x=temp-1 # mutex.release()i 阅读全文
posted @ 2018-09-22 17:33 不沉之月 阅读(99) 评论(0) 推荐(0)
摘要: from threading import Thread,Lock,active_count,RLockimport time# mutexA=Lock()# mutexB=Lock()obj=RLock() #递归锁的特点:可以连续的acquiremutexA=objmutexB=objclass 阅读全文
posted @ 2018-09-22 17:33 不沉之月 阅读(142) 评论(0) 推荐(0)
摘要: # 守护线程会在本进程内所有非守护的线程都死掉了才跟着死# 即:# 守护线程其实守护的是整个进程的运行周期(进程内所有的非守护线程都运行完毕)# from threading import Thread,current_thread# import time### def task():# prin 阅读全文
posted @ 2018-09-22 17:32 不沉之月 阅读(146) 评论(0) 推荐(0)
摘要: # 主进程等子进程是因为主进程要给子进程收尸# 进程必须等待其内部所有线程都运行完毕才结束# from threading import Thread# import time## def task(name):# print('%s is running' %name)# time.sleep(3 阅读全文
posted @ 2018-09-22 17:31 不沉之月 阅读(147) 评论(0) 推荐(0)
摘要: #1\ 计算密集型应该使用多进程# from multiprocessing import Process# from threading import Thread## import time# # import os# # print(os.cpu_count())## def task1(): 阅读全文
posted @ 2018-09-22 17:30 不沉之月 阅读(182) 评论(0) 推荐(0)
摘要: #1、线程的开启速度快# from threading import Thread# from multiprocessing import Process# import time## def task(name):# print('%s is running' %name)# time.slee 阅读全文
posted @ 2018-09-22 17:30 不沉之月 阅读(166) 评论(0) 推荐(0)
摘要: from threading import Threadimport time#方式一def task(name): print('%s is running' %name) time.sleep(3) print('%s is done' %name)if __name__ == '__main_ 阅读全文
posted @ 2018-09-22 17:29 不沉之月 阅读(84) 评论(0) 推荐(0)
摘要: 01 什么是线程 进程其实不是一个执行单位,进程是一个资源单位 每个进程内自带一个线程,线程才是cpu上的执行单位 如果把操作系统比喻为一座工厂 在工厂内每造出一个车间 》启动一个进程 每个车间内至少有一条流水线 》每个进程内至少有一个线程 线程=》单指代码的执行过程 进程-》资源的申请与销毁的过程 阅读全文
posted @ 2018-09-22 17:27 不沉之月 阅读(107) 评论(0) 推荐(0)
摘要: '''1 GIL:全局解释器锁 GIL本质就是一把互斥锁,是夹在解释器身上的, 同一个进程内的所有线程都需要先抢到GIL锁,才能执行解释器代码2、GIL的优缺点: 优点: 保证Cpython解释器内存管理的线程安全 缺点: 同一进程内所有的线程同一时刻只能有一个执行, 也就说Cpython解释器的多 阅读全文
posted @ 2018-09-22 17:26 不沉之月 阅读(227) 评论(0) 推荐(0)
摘要: #IPC:进程间通信,有两种实现方式#1、pipe:#2、queue:pipe+锁from multiprocessing import Queue# q=Queue(3) #先进先出#注意:#1、队列占用的是内存空间#2、不应该往队列中放大数据,应该只存放数据量较小的消息# 掌握的# q.put( 阅读全文
posted @ 2018-09-22 17:25 不沉之月 阅读(107) 评论(0) 推荐(0)
摘要: '''1 什么是生产者消费者模型 生产者:比喻的是程序中负责产生数据的任务 消费者:比喻的是程序中负责处理数据的任务 生产者->共享的介质(队列)<-消费者2 为何用 实现了生产者与消费者的解耦和,生产者可以不停地生产,消费者也可以不停地消费 从而平衡了生产者的生产能力与消费者消费能力,提升了程序整 阅读全文
posted @ 2018-09-22 17:25 不沉之月 阅读(241) 评论(0) 推荐(0)
摘要: '''1、守护进程 守护进程其实就是一个“子进程” 守护=》伴随 守护进程会伴随主进程的代码运行完毕后而死掉2、为何用守护进程 关键字就两个: 进程: 当父进程需要将一个任务并发出去执行,需要将该任务放到一个子进程里 守护: 当该子进程内的代码在父进程代码运行完毕后就没有存在的意义了,就应该 将该子 阅读全文
posted @ 2018-09-22 17:24 不沉之月 阅读(152) 评论(0) 推荐(0)
摘要: #互斥锁:可以将要执行任务的部分代码(只涉及到修改共享数据的代码)变成串行#join:是要执行任务的所有代码整体串行from multiprocessing import Process,Lockimport jsonimport osimport timeimport randomdef chec 阅读全文
posted @ 2018-09-22 17:24 不沉之月 阅读(151) 评论(0) 推荐(0)
摘要: # from multiprocessing import Process# import time## x=100# def task():# global x# x=0# print('done')# if __name__ == '__main__':# p=Process(target=ta 阅读全文
posted @ 2018-09-22 17:21 不沉之月 阅读(542) 评论(0) 推荐(0)
摘要: #1、join# from multiprocessing import Process# import time## def task(name):# print('%s is running ' %name)# time.sleep(3)# print('%s is done ' % name) 阅读全文
posted @ 2018-09-22 17:21 不沉之月 阅读(224) 评论(0) 推荐(0)
摘要: # # 方式一:# from multiprocessing import Process# import time## def task(x):# print('%s is running' %x)# time.sleep(3)# print('%s is done' %x)## if __nam 阅读全文
posted @ 2018-09-22 17:20 不沉之月 阅读(104) 评论(0) 推荐(0)
摘要: 1、串行: 一个任务完完整整地运行完毕后,才能运行下一个任务2、并发 看起来多个任务是同时运行的即可,单核也可以实现并发3、并行: 真正意义上多个任务的同时运行,只有多核才实现并行4、cpu的功能: cpu是用来做计算,cpu是无法执行IO操作的,一旦遇到io操作,应该让cpu去执行别的任务5、多道 阅读全文
posted @ 2018-09-22 17:19 不沉之月 阅读(166) 评论(0) 推荐(0)
摘要: 1、什么是进程 进程指的就是一个正在运行的程序,或者说是程序的运行过程,即进程是一个抽象的概念 进程是起源于操作系统的,是操作系统最核心的概念,操作系统所有其他的概念都是围绕进程展开的 多道技术2、为何要进程 并发3、如何用进程 开启进程的两种方式 阅读全文
posted @ 2018-09-22 17:19 不沉之月 阅读(117) 评论(0) 推荐(0)
摘要: 客户端: 阅读全文
posted @ 2018-09-22 17:18 不沉之月 阅读(174) 评论(0) 推荐(0)
摘要: 客户端: 阅读全文
posted @ 2018-09-22 17:16 不沉之月 阅读(202) 评论(0) 推荐(0)
摘要: 客户端:import socketphone=socket.socket(socket.AF_INET,socket.SOCK_STREAM)phone.connect(('127.0.0.1',8080)) # 指定服务端ip和端口while True: # msg=input('>>: ').s 阅读全文
posted @ 2018-09-22 17:15 不沉之月 阅读(111) 评论(0) 推荐(0)
摘要: 客户端: 阅读全文
posted @ 2018-09-22 17:13 不沉之月 阅读(369) 评论(0) 推荐(0)
摘要: 客户端: 阅读全文
posted @ 2018-09-22 17:13 不沉之月 阅读(202) 评论(0) 推荐(0)
摘要: 补充 struct: 客户端: 阅读全文
posted @ 2018-09-22 17:11 不沉之月 阅读(472) 评论(0) 推荐(0)
摘要: 客户端 阅读全文
posted @ 2018-09-22 17:09 不沉之月 阅读(144) 评论(0) 推荐(0)
摘要: 一 简单版 客户端: 阅读全文
posted @ 2018-09-22 17:06 不沉之月 阅读(252) 评论(0) 推荐(0)
摘要: 应用层 应用层 与其它计算机进行通讯的一个应用,它是对应应用程序的通信服务的。例如,一个没有通信功能的字处理程序就不能执行通信的代码,从事字处理工作的程序员也不关心OSI的第7层。但是,如果添加了一个传输文件的选项,那么字处理器的程序就需要实现OSI的第7层。示例TELNET,HTTP,FTP,NF 阅读全文
posted @ 2018-09-22 17:02 不沉之月 阅读(141) 评论(0) 推荐(0)
摘要: #TypeError:int类型不可迭代for i in 3: pass#ValueErrornum=input(">>: ") #输入helloint(num) #NameErroraaa #IndexErrorl=['egon','aa']l[3] #KeyErrordic={'name':'e 阅读全文
posted @ 2018-09-22 17:00 不沉之月 阅读(96) 评论(0) 推荐(0)
摘要: '''1、什么是单例模式 单例模式:基于某种方法实例化多次得到实例是同一个2、为何用单例模式 当实例化多次得到的对象中存放的属性都一样的情况,应该将多个对象指向同一个内存,即同一个实例3、如何用'''# 单例模式实现方式一:import settingsclass Mysql: __instacne 阅读全文
posted @ 2018-09-22 16:31 不沉之月 阅读(115) 评论(0) 推荐(0)
摘要: class Mymeta(type): n=444 def __call__(self, *args, **kwargs): obj = self.__new__(self) # self=Foo # obj = object.__new__(self) # self=Foo self.__init 阅读全文
posted @ 2018-09-22 16:30 不沉之月 阅读(92) 评论(0) 推荐(0)
摘要: '''class Mymeta(type): #但凡继承了type的类才能称之为自定义的元类,否则就是只是一个普通的类 passclass OldboyTeacher(object): #OldboyTeacher=Mymeta('OldboyTeacher',(object,),{...}) sc 阅读全文
posted @ 2018-09-22 16:29 不沉之月 阅读(163) 评论(0) 推荐(0)
摘要: '''1、什么是元类 在python中一切皆对象,那么我们用class关键字定义的类本身也是一个对象 负责产生该对象的类称之为元类,即元类可以简称为类的类 class Foo: # Foo=元类() pass2、为何要用元类 元类是负责产生类的,所以我们学习元类或者自定义元类的目的 是为了控制类的产 阅读全文
posted @ 2018-09-22 16:28 不沉之月 阅读(189) 评论(0) 推荐(0)
摘要: #1、__str__方法# class People:# def __init__(self,name,age):# self.name=name# self.age=age## #在对象被打印时,自动触发,应该在该方法内采集与对象self有关的信息,然后拼成字符串返回# def __str__(s 阅读全文
posted @ 2018-09-22 16:27 不沉之月 阅读(100) 评论(0) 推荐(0)
摘要: '''1、什么是反射 通过字符串来操作类或者对象的属性2、如何用 hasattr getattr setattr delattr'''class People: country='China' def __init__(self,name): self.name=name def eat(self) 阅读全文
posted @ 2018-09-22 16:26 不沉之月 阅读(86) 评论(0) 推荐(0)
摘要: class Foo: passobj=Foo()print(isinstance(obj,Foo))# 在python3中统一类与类型的概念# d={'x':1} #d=dict({'x':1} #)# print(type(d) is dict)# print(isinstance(d,dict) 阅读全文
posted @ 2018-09-22 16:25 不沉之月 阅读(76) 评论(0) 推荐(0)
摘要: '''1、绑定方法 特性:绑定给谁就应该由谁来调用,谁来调用就会将谁当作第一个参数自动传入 《《《精髓在于自动传值》》》 绑定方法分为两类: 1.1 绑定给对象方法 在类内部定义的函数(没有被任何装饰器修饰的),默认就是绑定给对象用的 1.2 绑定给类的方法: 在类内部定义的函数如果被装饰器@cla 阅读全文
posted @ 2018-09-22 16:24 不沉之月 阅读(141) 评论(0) 推荐(0)
摘要: #property装饰器用于将被装饰的方法伪装成一个数据属性,在使用时可以不用加括号而直接引用# class People:# def __init__(self,name,weight,height):# self.name=name# self.weight=weight# self.heigh 阅读全文
posted @ 2018-09-22 16:23 不沉之月 阅读(89) 评论(0) 推荐(0)
摘要: '''1、什么封装 封:属性对外是隐藏的,但对内是开放的 装:申请一个名称空间,往里装入一系列名字/属性2、为什么要封装 封装数据属性的目的 首先定义属性的目的就是为了给类外部的使用使用的, 隐藏之后是为了不让外部使用直接使用,需要类内部开辟一个接口 然后让类外部的使用通过接口来间接地操作隐藏的属性 阅读全文
posted @ 2018-09-22 16:22 不沉之月 阅读(126) 评论(0) 推荐(0)
摘要: '''1 什么是多态 多态指的是同一种事物的多种形态 水-》冰、水蒸气、液态水 动物-》人、狗、猪2 为和要用多态 多态性: 继承同一个类的多个子类中有相同的方法名 那么子类产生的对象就可以不用考虑具体的类型而直接调用功能3 如何用'''import abcclass Animal(metaclas 阅读全文
posted @ 2018-09-22 16:21 不沉之月 阅读(222) 评论(0) 推荐(0)
摘要: #coding:utf-8'''1、菱形继承 当一个子继承多个父类时,多个父类最终继承了同一个类,称之为菱形继承2、菱形继承的问题: python2区分经典类与新式类,如果子的继承是一个菱形继承,那么经典类与形式的区别为? 经典类下查找属性:深度优先查找 新式类下查找属性:广度优先查找'''clas 阅读全文
posted @ 2018-09-22 16:17 不沉之月 阅读(172) 评论(0) 推荐(0)
摘要: # 在子派生的新方法中重用父类功能的两种方式# 方式一:与继承无关#指名道姓法,直接用:类名.函数名# class OldboyPeople:# school = 'oldboy'## def __init__(self, name, age, sex):# self.name = name# se 阅读全文
posted @ 2018-09-22 16:17 不沉之月 阅读(166) 评论(0) 推荐(0)
摘要: '''1、什么是组合 组合就是一个类的对象具备某一个属性,该属性的值是指向另外外一个类的对象2、为何用组合 组合也是用来解决类与类直接代码冗余问题的3、如何用组合class OldboyPeople: school = 'oldboy' def __init__(self, name, age, s 阅读全文
posted @ 2018-09-22 16:16 不沉之月 阅读(113) 评论(0) 推荐(0)
摘要: '''1、什么是继承 继承是一种新建类的方式,新建的类称为子类,被继承的类称为父类 继承的特性是:子类会遗传父类的属性 强调:继承是类与类之间的关系2、为什么用继承 继承的好处就是可以减少代码的冗余3、如何用继承 在python中支持一个类同时继承多个父类 在python3中 如果一个类没有继承任何 阅读全文
posted @ 2018-09-22 16:15 不沉之月 阅读(122) 评论(0) 推荐(0)
摘要: #派生:子类中新定义的属性,子类在使用时始终以自己的为准class OldboyPeople: school = 'oldboy' def __init__(self,name,age,sex): self.name = name #tea1.name='egon' self.age = age # 阅读全文
posted @ 2018-09-22 16:15 不沉之月 阅读(105) 评论(0) 推荐(0)
摘要: #在python3中统一了类与类型的概念,类就是类型class OldboyStudent: school='oldboy' def __init__(self, x, y, z): #会在调用类时自动触发 self.name = x #stu1.name='耗哥' self.age = y #st 阅读全文
posted @ 2018-09-22 16:14 不沉之月 阅读(148) 评论(0) 推荐(0)
摘要: class OldboyStudent: school='oldboy' def __init__(self, x, y, z): #会在调用类时自动触发 self.name = x #stu1.name='耗哥' self.age = y #stu1.age=18 self.sex = z #st 阅读全文
posted @ 2018-09-22 02:09 不沉之月 阅读(106) 评论(0) 推荐(0)
摘要: xxx=33333class OldboyStudent: school = 'oldboy' # xxx=2222 yyy=333 count=0 def __init__(obj, name, age, sex): # print(OldboyStudent.yyy) # print(obj.y 阅读全文
posted @ 2018-09-22 02:08 不沉之月 阅读(228) 评论(0) 推荐(0)
摘要: '''# 例1class OldboyStudent: school='oldboy' def choose_course(self): print('is choosing course')stu1=OldboyStudent()stu2=OldboyStudent()stu3=OldboyStu 阅读全文
posted @ 2018-09-22 02:08 不沉之月 阅读(140) 评论(0) 推荐(0)
摘要: '''类:种类、分类、类别 对象是特征与技能的结合体,类是一系列对象相似的特征与技能的结合体 强调:站的角度不同,总结出的类是截然不同的 在现实世界中:先有的一个个具体存在的对象,然后随着人类文明的发展才了分类的概念 在程序中:必须先定义类,后调用类来产生对象站在老男孩选课系统的角度,先总结现实世界 阅读全文
posted @ 2018-09-22 02:07 不沉之月 阅读(126) 评论(0) 推荐(0)
摘要: 面向过程编程 核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么然后干什么。。。 基于该思想编写程序好比在设计一条流水线,是一种机械式的思维方式 优点:复杂的问题流程化、进而简单化 缺点:扩展性差面向对象编程 核心对象二字,对象是特征与技能的结合体 基于该思想编写程序就好比是在创造一个世界 阅读全文
posted @ 2018-09-22 02:06 不沉之月 阅读(205) 评论(0) 推荐(0)
摘要: import shelve# dic1={'pwd':'alex3714','age':18,'sex':'male'}# dic2={'pwd':'alex3715','age':73,'sex':'male'}d=shelve.open('db.txt',writeback=True)# # d 阅读全文
posted @ 2018-09-22 01:59 不沉之月 阅读(78) 评论(0) 推荐(0)
摘要: configparser 配置文件解析模块 何为配置文件? 运行程序时一些参数需要用户来决定,这些参数称之为配置信息,配置信息通常就放在一个文件中 为什么要配置文件? 一些参数我们不能再代码中写死,这样扩展性太低,修改需求时必须修改源 代码,太麻烦 配置文件主要内容 section option 常 阅读全文
posted @ 2018-09-22 01:57 不沉之月 阅读(93) 评论(0) 推荐(0)
摘要: 什么是xml 是一种标记语言(计算机能识别的文本) xml有什么用 制定了一种文本书写规范,使得计算机能够轻松识别这些数据 就和python一样 为什么不直接⽤python语言来进行传输,计算机识别起来太费劲(语法太多,变化太复杂)所以需一种更加简单的解决方案 xml语法标准 一、任何的起始标签都必 阅读全文
posted @ 2018-09-22 01:53 不沉之月 阅读(393) 评论(0) 推荐(0)
摘要: shutil 模块 非常简便的文件操作 压缩包处理模块 shutil.copyfileobj 拷贝文件 提供两个文件对象 长度表示缓冲区大小 shutil.copyfile (src, dst) 拷贝文件 提供两个文件路径 shutil.copymode () 拷贝文件权限 提供两个文件路径 shu 阅读全文
posted @ 2018-09-22 01:46 不沉之月 阅读(114) 评论(0) 推荐(0)
摘要: '''1 什么是hash hash是一种算法,该算法接受传入的内容,经过运算得到一串hash值 如果把hash算法比喻为一座工厂 那传给hash算法的内容就是原材料 生成的hash值就是生产出的产品2、为何要用hash算法 hash值/产品有三大特性: 1、只要传入的内容一样,得到的hash值必然一 阅读全文
posted @ 2018-09-22 01:42 不沉之月 阅读(164) 评论(0) 推荐(0)
摘要: 一 生成随机验证码 阅读全文
posted @ 2018-09-22 01:37 不沉之月 阅读(251) 评论(0) 推荐(0)
摘要: 什么是subprocess sub 子 process 进程 作用 用于执行shell命令常用⽅方法高级用法 Popen p1 = subprocess.Popen("ls",shell=True,stdout,stdin,st derr) 开启子进程去执行命令 了解 什么是进程 如果给了stdou 阅读全文
posted @ 2018-09-22 01:35 不沉之月 阅读(105) 评论(0) 推荐(0)
摘要: 1 sys.argv 命令行参数List,第一个元素是程序本身路路径 2 sys.exit(n) 退出程序,正常退出时exit(0) 3 sys.version 获取Python解释程序的版本信息 4 sys.maxint 大的Int值 5 sys.path 返回模块的搜索路径,初始化时使用PYTH 阅读全文
posted @ 2018-09-22 01:32 不沉之月 阅读(57) 评论(0) 推荐(0)
摘要: re模块 re是 Regular Expression的简称表 示正则表达式什么是正则表达式? 表达式指的是某些带有特殊含义的符号或者符 号组成的式子 正则表达式是对字符进行处理的逻辑公式,是用 特殊字符或者一些特殊字符的组合,组成一个规则 字符串,这个规则字符串用来表达对字符的过滤逻辑支持的字符及 阅读全文
posted @ 2018-09-22 01:23 不沉之月 阅读(103) 评论(0) 推荐(0)
摘要: path模块 os.path.abspath(path) 返回path规范化的绝对路径 os.path.split(path) 将path分割成目录和文件名二元组返回 os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第 一个元素 os. 阅读全文
posted @ 2018-09-22 01:21 不沉之月 阅读(125) 评论(0) 推荐(0)
摘要: 一 random模块运用import random# print(random.random())# print(random.randint(1,3))# print(random.randrange(1,3))# print(random.choice([1,'egon',[1,2]]))# p 阅读全文
posted @ 2018-09-22 01:13 不沉之月 阅读(121) 评论(0) 推荐(0)
摘要: time模块 该模块内部使用的时当前平台的c库 每个平台的c库⽀持的⽅法可能略有不同 时间三种格式 1. 时间戳 2.本地时间 3.gm (UTC)世界统⼀时间 格式化时间 time.strftime ("") print (time.strftime("%Y-%m-%d %H:%M:%S")) p 阅读全文
posted @ 2018-09-22 01:05 不沉之月 阅读(163) 评论(0) 推荐(0)
摘要: 一 json注意点# json格式不能识别单引号,全都是双引号import json# with open('db1.json','rt',encoding='utf-8') as f:# json.load(f)# json.loads('{"name":"egon"}')# with open( 阅读全文
posted @ 2018-09-22 01:01 不沉之月 阅读(118) 评论(0) 推荐(0)
摘要: # import logging# 进行基本的日志配置# logging.basicConfig(filename='access.log',# format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',# da 阅读全文
posted @ 2018-09-22 00:58 不沉之月 阅读(136) 评论(0) 推荐(0)
摘要: '''1、什么是模块 模块是一系列功能的集合体 常见的模块形式(自定义模块、第三方模块、内置模块): 1、一个module.py文件就是一个模块,文件名是module.py,而模块名是module 2、一个包含有__init__.py文件的文件夹也是模块 3、已被编译为共享库或DLL的C或C++扩展 阅读全文
posted @ 2018-09-22 00:57 不沉之月 阅读(151) 评论(0) 推荐(0)
摘要: 1、什么是包 包是模块的一种形式,包的本质就是一个含有__init__.py文件的文件夹2、为什么要有包3、如何用包 导入包就是在导包下的__init__.py import ... from ... import... 主义的问题: 1、包内所有的文件都是被导入使用的,而不是被直接运行的 2、包内 阅读全文
posted @ 2018-09-22 00:57 不沉之月 阅读(94) 评论(0) 推荐(0)
摘要: '''面向过程编程 核心过程二字,过程指的是解决问题的步骤,即先干什么、再干什么、然后干什么... 基于该思想编写程序就好比在设计一条流水线,是一种机械式的思维方式 优点 复杂的问题流程化、进而简单化 缺点 扩展性极差'''# 接收用户输入用户名,进行用户名合法性校验,拿到合法的用户名def che 阅读全文
posted @ 2018-09-22 00:56 不沉之月 阅读(262) 评论(0) 推荐(0)
摘要: '''1、什么是函数 函数就是具备某一特定功能的工具2、为什么用函数 减少重复代码 增强程序的扩展性 增强可读性3、如何用函数 1、函数的使用原则:先定义后调用(*****) 定义阶段:只检测语法不执行代码 调用阶段:执行函数代码 2、定义阶段与调用阶段: 2.1:语法 (*****) def fu 阅读全文
posted @ 2018-09-22 00:26 不沉之月 阅读(147) 评论(0) 推荐(0)
摘要: # 掌握# res='你好'.encode('utf-8')# print(res)## res=bytes('你好',encoding='utf-8')# print(res)# 参考ASCII表将数字转成对应的字符# print(chr(65))# print(chr(90))# 参考ASCII 阅读全文
posted @ 2018-09-22 00:23 不沉之月 阅读(80) 评论(0) 推荐(0)
摘要: # 有名函数:基于函数名重复使用# def func():# print('from func')# func()# func()# func()# 匿名函数:没有绑定名字的下场是用一次就回收了# def func(x,y): #func=函数的内存地址# return x + y# res=(la 阅读全文
posted @ 2018-09-22 00:22 不沉之月 阅读(96) 评论(0) 推荐(0)
摘要: '''1 什么是函数递归 函数递归调用(是一种特殊的嵌套调用):在调用一个函数的过程中,又直接或间接地调用了该函数本身 递归必须要有两个明确的阶段: 递推:一层一层递归调用下去,强调每进入下一层递归问题的规模都必须有所减少 回溯:递归必须要有一个明确的结束条件,在满足该条件时结束递推 开始一层一层回 阅读全文
posted @ 2018-09-22 00:21 不沉之月 阅读(150) 评论(0) 推荐(0)
摘要: 一 三元表达式# 条件成立时的返回值 if 条件 else 条件不成立时的返回值# def max2(x,y):# if x > y:# return x# else:# return y# x=10# y=20# res=x if x > y else y# print(res)二 列表生成式# 阅读全文
posted @ 2018-09-22 00:20 不沉之月 阅读(128) 评论(0) 推荐(0)
摘要: '''1 什么是生成器?在函数内但凡出现yield关键字,再调用函数就不会执行函数体代码,会返回值一个值,该值称之为生成器 生成器本质就是迭代器2、为什么要有生成器? 生成器是一种自定义迭代器的方式3、如何用生成器'''# def func():# print('first1')# print('f 阅读全文
posted @ 2018-09-22 00:15 不沉之月 阅读(140) 评论(0) 推荐(0)
摘要: '''1、什么是迭代器 迭代器即迭代取值的工具 迭代: 迭代是一个重复的过程,每一次重复都是基于上一次的结果而来的 单纯的重复并不是迭代 while True: print('1111') 迭代: l=['a','b','c'] def iterator(item): i=0 while i < l 阅读全文
posted @ 2018-09-22 00:14 不沉之月 阅读(123) 评论(0) 推荐(0)
摘要: 一 装饰器'''1、什么是装饰器 器指的是工具,而程序中的函数就具备某一功能的工具 装饰指的是为被装饰器对象添加额外功能 就目前的知识来看: 定义装饰器就是定义一个函数,只不过该函数的功能是用来为 其他函数添加额外的功能 其实: 装饰器本身其实可以是任意可调用的对象 被装饰的对象也可以是任意可调用的 阅读全文
posted @ 2018-09-22 00:13 不沉之月 阅读(319) 评论(0) 推荐(0)