- 博客(36)
- 收藏
- 关注
原创 python数组和队列
如果一个列表只包含数值,那么使用array.array会更加高效,数组不仅支持所有可变序列操作(.pop、.insert、.extent等),而且还支持快速加载项和保存项的方法(.fromfile、.tofile等)创建array对象时要提供类型代码,它是一个字母,用来确定底层使用什么C类型存储数组中各项,并且指定类型后,不允许向数组中添加与指定类型不同的值。'b'创建、保存、加载一个大型浮点数数组处理大型数值时使用数组的。
2024-08-17 23:15:36
864
原创 python中丰富的序列
这是一种python分隔约定,这样做的好处有:1) 当只指定停止位置时,容易判断切片或区间的长度,如:range(3)和my_list[:3]的长度均产生3项;2)同时指定起始和停止位置时,容易计算长度,做减法即可:stop-start;3)方便在索引x处把一个序列拆分成两部分而不产生重合,如:my_list[:x]和my_list[x:]
2024-08-11 23:44:28
634
原创 python元组的两种用法
元组可以用作没有字段名称的记录:元组中的每一项都对应一个字段的数据,项的位置决定了数据的意义。因此将元组作为字段的容器使用时,项数通常是固定的,那么顺序就变得十分重要了。其中:1、%格式化运算符理解元组结构,会将每一项都当做不同的字段;2、for循环知道如何获取元组中单独的每一项,我们将不感兴趣的项赋值给虚拟变量_,虚拟变量匹配值但不绑定值;3、记录东京市信息以及print函数中使用的%中,都将元组中各项的值赋值给对应是变量/占位符,这两处都使用到了。
2024-07-30 23:09:17
406
原创 python特殊方法的重要用途
有几种特殊方法可以使用户对象响应+、*等运算符,接下来通过实现一个二维向量类来对此进行说明。一个简单的二维向量应实现向量加法、计算向量的模、向量的标量积的运算示例使用了__repr__、__abs__、__add__、__mul__等特殊方法为Vector类实现了上述的运算。其中__add__、__mul__这两个方法创建并返回一个新的Vector实例,没有修改运算对象,只是读取self、other,这是中缀运算符的预期行为,即创建新对象,不修改运算对象。
2024-07-24 23:28:52
630
原创 一摞python风格的纸牌
1.__len__和__getitem__的实现把所有工作委托给一个list对象,即self._cards。在实现__len__和__getitem__两个特殊方法后,FrenchDeck的行为就像标准的python序列一样,受益于语言核心特性(如迭代和切片)和标准库。2.特殊方法是供解释器调用的而非你自己,如:len(user_object)的是__len__方法,并没有user_object.__len__()这种写法。
2024-07-21 21:16:21
285
原创 web学习笔记Day2--一键安装nginx、日志、配置文件
回顾昨天的学习,思考只要不启动,代码在磁盘里面其实没有什么影响,不会发生冲突;如果启动了,如果没有占用相同的端口也不会发生冲突。冲突的点就是默认想抢占80端口号也可以在机器里编译安装多个nginx,只要不使用相同的端口,就不会冲突。
2023-08-28 09:42:46
188
原创 web学习笔记Day1--相关概念、nginx介绍(HTTP、反向代理)、编译安装nginx
nginx是一个web服务器软件,支持HTTP协议,可以做反向代理(负载均衡),将用户的访问流量转发到后端的服务器去。
2023-08-26 22:38:11
208
原创 在linux-CentOS7.9中搭建DHCP服务器
动态主机配置协议,是应用层的协议,负责为客户机动态分配TCP/IP信息,包括ip地址、子网掩码、默认网关、首选DNS服务器等。客户机请求ip地址(DHCPDiscover) -> 服务器相应请求(DHCPOffer) -> 客户机选择ip地址(DHCPRequest) -> 服务器确认租约(DHCPAck)UUID="e605fdb1-4998-467b-b659-84e12fecab31":网络连接的唯一标识,一个硬件会对应一个编号,这个编号会自动生成,不需要修改。
2023-08-26 11:35:02
773
原创 python基础面试题
深浅拷贝只有在容器类型中包含可变数据类型的时候才会有区别浅拷贝只会拷贝最外层数据的引用,它里面可变数据类型的改变会影响原对象深拷贝会对容器类型里面的可变数据类型做一次全新的copy,只会拷贝值,生成一个全新的可变数据类型,它里面的修改不会影响原对象面向对象中的两个重要的概念:类和对象。类就是具有相同属性(描述对象的具体信息)或方法(对象具备的功能)的对象的集合;对象就是一个实实在在的例子,某个类实例化之后的结构体。
2023-08-22 15:24:12
118
原创 Python内存管理
Python的内存管理以引用计数为主。引用计数增加的场景如下:1.对象被创建并赋值给某个变量2.变量间相互引用,相当于变量指向了同一个对象3.变量作为参数传入某个函数中4.将对象放入某个容器对象中引用计数减少的场景如下:1.对象的引用变量被销毁2.对象的引用被赋值给其他对象3.变量离开作用域,如:函数执行完成4.对象被从容器对象中销毁,或整个容器被销毁sys.getrefcount()函数可以查看对象的引用计数,但是调用此函数时,会临时增加一个引用计数,得到的结果比预期多一次,如下图。
2023-08-21 21:41:11
46
原创 Python并发编程
对比两种方式运行的结果来看,当有多个任务时,使用多线程执行效率会高许多可以对run方法进行重写,在启动线程时实现定制功能#继承threading.Thread父类#执行父类的__init__#重写run方法#通过自定义的线程类创建线程,并执行线程t1.start()t2.start()对run方法进行重写p1.start()p2.start()
2023-08-20 23:09:16
143
原创 Python 容器类型--list、tuple、dict、set
方式一lst1 = []#方式二#list()为工厂函数,可以把其他数据类型转换为list#若在list()中传递的是可迭代对象时,可挨个存入列表t1 = ()t2 = (1, ) #初始元组只有一个元素时,后面要打逗号,没有逗号为int类型t3 = (1)
2023-08-16 20:13:32
1380
原创 搭建基于keepalived+GTID的半同步主从复制MySQL集群
4台MySQL服务器:搭建主从复制的集群,一个master服务器(MySQL-master),两个slave服务器(MySQL-slave1、MySQL-slave2),一个延迟备份服务器(delay-backup)--将备份操作在一定延迟时间内执行,以解决备份对源数据库服务器性能的影响2台mysqlrouter服务器:安装keepalived软件,实现高可用的读写分离服务1台ansible中控服务器:实现对MySQL整个集群里的服务器进行批量管理。
2023-08-15 17:02:59
373
原创 docker镜像的制作
images里到底有什么?操作系统、核心代码、系统工具、系统库、运行时的环境为什么要制作镜像,github上不是有很多镜像吗?不能完全满足我们的要求;不够安全,会有安全隐患制作镜像小的优点:1.用户下载快2.存储消耗的磁盘空间小3.运行容器时消耗的内存小制作小镜像的思想:1.使用基础镜像小2.少使用RUN、COPY、ADD、WORKDIR(这些指令会增加层数)3.使用镜像启动容器后,再在里面安装软件,使用卷挂载数据镜像分层的思想:一个镜像是由很多层数据组成。
2023-08-14 00:09:09
52
原创 mysql中的日志
为什么需要日志?1.用于排错2.用来做数据分析3.了解程序的运行情况,了解MySQL的性能MySQL中日志的存放目录为数据目录。
2023-07-19 22:06:49
82
原创 linux系统的开机启动流程
按完开机键后,控制权交给主板,主板里的BIOS程序,会检测硬件的好坏,然后根据启动顺序才能把控制权交给硬盘,硬盘再去读取软件,加载到内存里面去。先补充相关知识:1.与关机有关的命令:init 0poweroffHaltshutdown (默认)1min后关机shutdown -h now 立刻关机shutdown -c 取消关机2.了解开机启动流程有什么意义?3.快照的作用:对虚拟机当前的状态做个备份,保留虚拟机的状态。
2023-07-03 21:14:05
779
2
原创 进程间的几种通信方式
进程之间的用户空间地址都是独立的,一般来说是不能相互访问的,但是内核空间是每个进程共享的,所以进程之间的通信都必须通过内核。进程通信IPC从路径上可分为直接通信和间接通信。直接通信是建立链路进行通信,一条链路恰好对应一对通信进程,每对进程之间只有一条链路存在;间接通信是共享一个消息队列,只有进程共享了一个共同的消息队列才能建立链路,链路可以与许多进程相关联。
2023-06-29 22:05:29
251
2
原创 使用Python操作数据库
安装数据库:yum install mariadb-server mariadb -y。其中mariadb-server表示服务端,mariadb表示客户端,默认连接本机的3306端口。检查数据库是否安装好了:rpm -qa|grep mariadb。其中rpm -qa命令是将所有已经安装的软件包列出来,grep命令是将mariadb相关的包过滤出来。启动mariadb服务:systemctl start mariadb。检查mariadb服务是否启动:ps -ef|grep mariadb。
2023-06-25 22:19:43
2647
原创 linux笔记--用户、组、权限
1.保存用户信息:/etc/passwd#各字段的含义--用户名:密码保留字段(无实际含义):用户id:所属基本组id:用户说明信息:用户家目录:用户登录shell#用户组id:用户的唯一标识#所属基本组id:表明用户的基本组是谁2.保存用户密码:/etc/shadowsumeng1:!!#第二个字段为密码字段3.组信息文件:/etc/group4.家目录:/home--普通用户的家目录存放在该目录下,root用户的家目录为/root5.家目录的模板文件:/etc/skel。
2023-06-10 22:27:41
342
1
原创 go--结构体
go语言不支持面向对象编程,因此使用结构体来实现Python中的class,可以在结构体中定义多个字段(属性),为结构体实现方法、实例化等。结构体--struct,描述一系列具有相同类型或不同类型组成的数据集合。实例化结构体:实例化的时候不需要为每个字段都赋值,没有显性赋值的变量被赋予默认值结构体方法的实现:传递值类型:func (s Student) change_schools()传递引用类型:func (s *Student) change_schools()
2023-05-28 16:06:30
58
原创 linux笔记--计划任务
脚本:帮助我们去完成某些事情的工具计划任务:帮助我们提前计划某个时间点去执行脚本或某个任务,不需要人定时定点去执行,提升了工作效率,解放了人力计划任务背后的crond进程:crond守护进程:一直在内存里运行的进程,除非人为停止,不然会一直运行,crond服务会每隔1分钟去检查linux系统里的所有用户的计划任务。不论用户是否登录,它的计划任务都会执行,crond进程会到/var/spool/cron目录下检查用户的计划任务文件,然后执行。
2023-04-15 17:33:02
233
原创 go笔记--基本数据类型
r:表示一个回车(从当前的最前面开始输出,覆盖前面的内容)%X -- 整型以十六进制方式显示,字母显示为大写。len()函数统计的是字符串所占用字节数,其中中文字符占3个字节。注意:使用反引号定义字符串时,字符串会原样输出,不进行转义。%x -- 整型以十六进制方式显示。%b -- 整型以二进制方式显示。%o -- 整型以八进制方式显示。%v -- 按值本身输出。%T -- 输出值的类型。截取格式:str[start:end]\t:表示一个制表符。\n:表示一个换行符。\\:表示反斜杠本身。
2023-04-09 22:07:14
56
1
原创 Python与go语言的异常处理
断言异常,当 assert 关键字后的条件为假时,程序运行会停止并抛出 AssertionError 异常,常用于测试上,如下图。名称错误,在被访问的标识符未在本地或全局范围内定义时引发,如下图。字典中不存在所需要的key而引发错误,如下图。参数的值不适合而引发错误,如下图。不管有没有异常,不管异常有没有捕获,都会执行。脚本缩进异常时引发,如下图。Python中遇到错误异常,程序就终止了。对象属性错误,如下图。内置包errors--产生错误对象。异常发生时不终止程序,做特殊处理。
2023-04-07 22:49:21
319
原创 创建基于vite的vue项目
3.验证是否安装好:打开Windows的cmd命令行,输入npm --version,输出版本信息则安装成功,如下图所示。在src下新建plugins/nutui.js,以后需要增加组件只需要在该文件中添加即可。2.检验是否安装好:在cmd命令行中输入yarn -version,若输出版本信息则表示安装成功,如下图所示。node.js自带npm包管理工具,yarn也是nodejs下的包管理工具,可以根据自身选择适合的工具。//export导出,只有导出了,才能让别的文件进行import。
2023-04-05 21:45:20
5218
5
原创 go笔记--基本语法、基本输入输出
-与fmt.Scan()一样用空格分隔分别传给变量,但fmt.Scanln()以换行符来结束本次输入。每个执行的go程序,都需要有一个main包,main包里需要有一个main函数。--接收用户的输入,用空格分隔分别传给变量,敲完所需的输入才会结束。go语言属于函数式编程,代码由函数来组织,函数也可以作为参数传递。--严格按照指定形式输入,若格式未按指定形式输入,赋值会出现错误。--自动添加换行符和空格分隔符。bufio -- 也可以接受输入输出。--原样输出,不换行。fmt -- 标准输入输出包。
2023-04-02 15:19:20
982
1
原创 Python练习--购物系统
3、用户根据商品编号购买商品,购买时检测余额是否够,够的话直接结算,不够的话清除购物车内的商品并提醒重新加购。拓展:将注册过的用户信息写入文件,下次执行程序时,可通过读取文件获得已注册过的用户信息。1、使用系统需要登录验证,注册时需要填写购物的预算信息。2、用户可以任意查看商品信息和已加购的商品信息。4、可随时退出,退出时打印已购买商品和余额。要求:将功能封装为函数,用尽可能友好的方式输出。
2023-04-01 16:56:01
245
1
原创 Python笔记--数值类型、字符串类型、布尔类型
定义--单引号,双引号,三引号#使用三引号定义可以换行str3 = """helloworld"""str()也属于内建函数 -- 类型转换函数建议:不要把内建函数作为变量名,若使用内建函数名作为变量名,这个函数就无法使用了str(123)print(str)
2023-03-28 21:48:07
321
1
原创 Python笔记--基本语法、基本输入输出
从键盘接收用户名和密码,如果用户名是“sumeng”,密码是“123456”,就提示登录成功,否则登录失败。在pycharm中选择code选项中的reformat code,可自动将代码改为PEP8风格。6.折行确保每一行不超过128个字符,使用续行符时不超过128字符。快捷键:在pycharm中,选中要注释的内容按Ctrl+/,一次可注释多行。接收用户从键盘输入两个数,分别求取这两个数的和、差、积。python使用缩进区分代码块,严格缩进,同级语句块缩进要一致。4.中文可以当变量名,但不建议这样使用。
2023-03-24 21:34:07
221
1
原创 linux笔记--查找命令
usr:unix system resource,存放linux里的重要文件,相当于Windows里的c:\program file。which命令:去PATH变量指定的路径下查找linux命令,从PATH变量左边的路径开始查找,如果没找到,就从下一个路径里查找,以此类推。grep命令:文本过滤的命令,根据某个匹配的字符串去查找内容,若找到了,默认将整行输出到屏幕。| 管道:将前面一个命令的输出送给后面的命令作为输入,传递数据,是进程与进程之间的通信方式。bin:binary二进制,存放系统的一些指令。
2023-03-22 22:04:05
80
1
原创 linux笔记--vim编辑器
vim编辑器:创建或修改文本文件vi与vim:vi:类Unix系统中默认的文本编辑器vim:vi编辑器的增强版本。
2023-03-21 21:50:59
90
1
原创 linux笔记--文件内容操作和历史命令
> 追加输出重定向:将在屏幕的输出重新定义到输入到文件里,如果文件不存在就新建,如果文件存在不覆盖原文件里的内容,只是在文件末尾追加内容。> 输出重定向:将在屏幕的输出重新定义到输入到文件里,如果文件不存在就新建,如果存在就覆盖原文件里的内容,能达到创建新文件的效果。/etc/hostname文件是用来存放主机名,/etc/centos-release文件存放的是centos的版本。~/.bash_logout文件:当用户注销退出系统的时候,会执行这个文件里的命令。
2023-03-20 22:18:03
2450
1
原创 linux笔记--文件操作命令
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)-rw-r--r--. 1 root root 129 3月 6 20:29 p.sh。③.ctime:change time改变时间--改变文件属性(归属,权限,大小等)的时间。②.mtime:modify time修改时间--改动文件里内容的时间。补充:①.atime:access time访问时间--查看过这个文件的时间。
2023-03-18 17:41:57
142
1
原创 linux笔记--目录操作命令
补充:- 引导短格式选项(单个字符),如-a。-a,-all选项:do not ignore entries starting with .④.-y选项 -- 表示直接安装,不需要询问yes/no。②.ls 绝对路径 => 查看绝对路径下的文件夹里的内容,与当前位于哪个工作目录无关。-- 引导长格式选项(多个字符),如-all。-h选项:以可读的格式显示(human-readable)④.ls -a 路径 =>查看路径下的所有文件,包括隐藏文件。补充:①.yum -- linux里软件管理的命令。
2023-03-18 14:28:31
5376
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人