day42 今日内容"""1、数据库与表的剩余操作 编码配置、引擎介绍2、数据库字段的操作3、数据库的数据类型4、数据库字段的约束条件"""数据库配置# 通过配置文件统一配置的目的:统一管理 服务端(mysqld) 、客户端(client)# 配置了 mysqld(服务端) 的编码为utf8,那么再创建的数据库,默认编码都采用utf8# 配置流程# 1)在...
day44 今日内容"""1、单表查询2、多表查询3、子查询"""单表查询"""增:insert [into] [数据库名.]表名[(字段1[, ..., 字段n])] values (数据1[, ..., 数据n])[, ..., (数据1[, ..., 数据n])];删:delete from [数据库名.]表名 [条件];改:updata...
day41 数据库"""1、什么是数据库:管理数据的系统 - 安装某种管理数据的系统 - 管理的对象本质是文件2、存储数据的位置:内存、硬盘3、什么是系统:运行在硬件基础上,管理其他软件"""# 数据库的组成"""库:存放多张表 - 文件夹表:包含多条相同结构的记录 - 文件记录:包含多个key-value键值对的一条数据 - 二进制数据字段:描述信息 - 信息本身 == k...
day39 线程锁例子(线程锁)不加锁的情况from threading import Thread, Lockx = 0mutex = Lock()def task(): global x for i in range(100000): x += 1 ''' ==》t1 的 x刚拿到0 保存状态 就被切...
day37 进程同步当多个进程使用同一份数据资源的时候,就会引发数据安全或顺序混乱问题。这时可以采用 lock = Lock() 加锁加锁可以保证多个进程修改同一块数据时,同一时间只能有一个任务可以进行修改,即串行的修改,没错,速度是慢了,但牺牲了速度却保证了数据安全。虽然可以用文件共享数据实现进程间通信,但问题是:效率低(共享数据基于文件,而文件是硬盘上的数据)需要自己加锁处理因...
并发主干内容总结 进程:一个程序运行起来,资源集合.开启进程的过程:操作系统开辟一个内存空间, 把代码放进去, 去运行代码(需要cpu).ps:(如果是python的话会把解释器代码也放进去)特点:进程的内存空间彼此隔离主进程要等待所有的子进程结束(原因是:回收僵尸进程)multiprocessing重要用法:join() 等待子进程结束站在当前进程查看pid查看父进程的pi...
day29 什么是元类二、什么是元类在python中一切皆对象,那么我们用class关键字定义的类本身也是一个对象,负责产生该对象的类称之为元类,即元类可以简称为类的类class Foo: # Foo=元类()pass为什么用元类元类是负责产生类的,所以我们学习元类或自定义类的目的:是为了控制类的产生过程,还可以控制对象的产生过程内置函数execcmd='''x=1print('...
day38 1.什么是线程纠正概念:进程其实不是个执行单位,进程是一个资源单位,每个进程内自带一个线程,线程才是cpu上的执行单位抽象理解:进程是指在系统中正在运行的一个应用程序;线程是系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元。对于操作系统而言,其调度单元是线程。线程:cpu最小的执行单位进程:资源集合/资源单位.线程运行 = 运行代码进程运行 = 各种资源 ...
day31 网络编程演变过程单机架构:不需要联网,如超级玛丽、坦克大战等。C(client)/S(server)架构:客户端直接和服务端交互,如QQ、大型网络游戏等。B(browser)/S(server)架构:客户端嫁接在浏览器上,浏览器和服务器交互,如淘宝、京东等。客户端:用户安装的软件。服务端:统一管理数据库的主机中的软件叫做服务器,再后来服务端不只是管理数据外加处理业务逻辑。服务...
8.23 day18 包一、什么是包?包是模块的一种形式,包的本质就是一个含有.py的文件的文件夹。二、为什么要有包?模块的第一个版本只有10个功能,但是未来在扩展版本的时候,模块名和用法应该最好不要去修改,但是这只是对使用者友好,而由于版本扩展,文件越来越大,模块设计者对模块的管理、维护会越来越复杂,因此我们可以使用包来扩展模块的功能。三、如何用包?3.1 模块和包导入模块发生的三件事:创建...
day30 单例模式什么是单例模式单例模式:基于某种方法实例化多次得到实例是同一个为什么用单例模式当实例化多次得到的对象中存放的属性都一样的情况,应该将多个对象指向同一个内存,即同一个实例用类方法来实现单例模式settings.pyIP = '1.1.1.1'PORT = 3306class Mysql:__instacne = Nonedef __init__(self, i...
8.6 day9 数据类型的分类按存值个数存一个值: 整型/浮点型/字符串存多个值: 列表/字典/元组/集合按有序or无序有序: 字符串/列表/元祖无序: 字典/集合按可变or不可变可变: 列表/字典/集合不可变: 整型/浮点型/字符串/元组python的深浅拷贝牢记: 拷贝/浅拷贝/深拷贝 只针对可变数据类型拷贝: 当lt2为lt的拷贝对象时,lt内的可变类型变化,...
8.8 day11 函数的定义什么是函数在程序中,函数就是具备某一功能的工具,事先将工具准备好就是函数的定义,遇到应用场景拿来就用就是函数的调用为什么用函数如果不使用函数,写程序时将会遇到这三个问题:程序冗长程序的扩展性差程序的可读性差如何使用函数先定义函数,后调用。定义函数:def 函数名(param1、param2……): """ 函数功能的描述信息 ...
8.5 day8 列表类行内置方法1.用途:多个装备、多个爱好、多门课程,甚至是多个女朋友2.定义:[]内可以有多个任意类型的值,逗号分隔元素# my_girl_friend = list(['jason','tank','sean'])my_girl_friend = ['jason', 'tank', 'sean']print(f"my_girl_friend: {my_girl_frie...
8.2 day7 数字类型内置方法为什么要有数据类型?因为我们对于不同类型的变量需要用不同的数据类型去定义整型1.作用:身高,体重,年龄,ID号2.定义方式y = 10id_num = 1231321z = int(10)x = int('10')3.方法'+', '-', '*', '/', '%', '//', '**'pow 开根号开x的r次方:pow(x, 1.0/r)...
8.7 day10 字符编码1.什么是字符编码计算机要想工作必须通电,即用‘电’驱使计算机干活,也就是说‘电’的特性决定了计算机的特性。电的特性即高低电平(人类从逻辑上将二进制数1对应高电平,二进制数0对应低电平),关于磁盘的磁特性也是同样的道理。结论:计算机只认识数字。很明显,我们平时在使用计算机时,用的都是人类能读懂的字符(用高级语言编程的结果也无非是在文件内写了一堆字符),如何能让计算机读懂人类...
8.1 day6 流程控制之while循环一、语法**循环就是一个重复的过程,我们人需要重复干一个活,那么计算机也需要重复干一个活。ATM验证失败,那么计算机会让我们再一次输入密码。这个时候就得说出我们的wile循环,while循环又称为条件循环。while 条件 code 1 code 2 code 3 ...while True: print('*1'...
7.31 day5 格式化输出三种方式1.占位符**程序中经常会有这样场景:要求用户输入信息,然后打印成固定的格式比如要求用户输入用户名和年龄,然后打印如下格式:My name is xxx,my age is xxx.很明显,用逗号进行字符串拼接,只能把用户输入的名字和年龄放到末尾,无法放到指定的xxx位置,而且数字也必须经过str(数字)的转换才能与字符串进行拼接,非常之麻烦,我们来试一试。a...
7.30 day4 1.数字类型整型和浮点型统称为数字类型。一、整型(int)1.1 作用表示人的年龄、各种号码、级别1.2 定义age = 18 # age=int(18)print(id(age))print(type(age))print(age)4530100848<class 'int'>181.3 如何用加减乘除、逻辑判断(大于、小于)二、浮点型(f...
7.29 day3 什么是变量变量从字面意思可以理解成:是变化的量。变量的组成从我们上米昂定义的变量可以看到,变量的组成分为以下三个部分:变量名:变量名用来引用变量值,但凡需要用变量值,都需要通过变量名。赋值符号:赋值变量值:存放数据,用来记录现实世界中的某种状态。name # 报错,无任何意义age = 18height = 185print(age)print(height...