- 博客(36)
- 收藏
- 关注
原创 【进程池与线程池 协程】
先回顾一下吧,之前TCP服务端实现并发的效果,每来一个人就开设一个进程或者线程去处理。当你知道锁的使用枪锁必须要释放锁,其实你在操作锁的时候也极其容易产生死锁现象。一些进程/线程需要等待另外一些进程/线程完毕之后才能运行,类似于发射信号一样。信号量在不同阶段可能对应不同的技术点。在并发编程中信号量指的就是锁!严重切换是否就一定提升效率。
2024-06-07 16:26:45
348
原创 Git的使用
git的使用初始化(创建本地版本控制仓库):git init 添加文件到仓库的暂存区 git add <filename> git add . 从暂存区移除文件 : git rm --cached <filename> 查看版本控制的状态:git status 配置用户名和邮箱: git config --global uer.email"yangjian@163.com" git config --global u
2020-11-12 17:53:44
140
原创 2020-11-12-Vim的使用
Vim~ 命令模式:所有的按键代表一个操作命令- 进入编辑模式:~ i / I / a / A / o / O- 移动光标:~ h / j / k / l —> 配合数字使用~ 0 / $ / w —> 行首 / 行尾 / 下一个单词~ G / gg —> 把光标移动到指定的行~ Ctrl+e / Ctrl+y —> 翻行~ Ctrl+f / Ctrl+b —> 翻页- 编辑内容:~ dd / d0 / d$ / dw —> 删除~ u / Ctr
2020-11-12 08:50:55
184
原创 2020-11-12-软件和服务安装管理
软件和服务安装管理使用包管理工具yum - yellowdog updater modified 查找:yum search nginx 安装:yum install -y nginx 信息:yum info nginx 卸载:yum erase -y nginx 更新:yum update nginx 查看已安装的包:yum list installed yum list installed |grep nginx 附:使用nginx 启动:s
2020-11-12 08:49:48
128
原创 linux-常用命令
计算机系统由硬件(hardware)和软件(software)两部分构成。硬件:运算器、控制器、存储器(RAM)、输入设备、输出设备软件:系统软件和应用软件操作系统(Operating System):直接覆盖在硬件上的软件,提供人机交互的接口(界面)。Windows (Server、Advanced Server、Data Center)Macintosh —> macOSUnix —> AIX / Hp-Ux / SolarisLinux1946 ENIAC —>
2020-11-12 08:47:57
86
原创 2020-11-04-线程安全-锁-队列-多进程和多线程
day8-线程安全-锁-队列-多进程和多线程一、线程安全的起因:多个线程可以同时操作同一个数据解决方法:枷锁LOCK 锁 - RLOCK锁首先要导入锁from threading import Lock,RLock1.保证一个数据对应一个锁对象锁对象.Lock()2.线程在第一次操作数据前加锁锁对象.acquire()3.线程在结束数据操作后解锁锁对象.release()RLOCK锁1.保证一个数据对应一个锁对象锁对象.RLock()2.将对数据进行操作的代码放大要加
2020-11-04 19:42:03
194
原创 2020-11-02-xPathAndCsv
day6-xPathAndCsv一、xPath解析和xml数据格式1.xPath解析原理通过在html或xml网页结构的标签路径去获取指定标签2.xml数据格式(和json数据格式相比安全性高) - 整个内容只用一个节点xml和json一样是一中通用的数据格式,用于多种语言程序之间的数据传输xml和json的比较:xml更安全(方便加密);json更轻量级(传输的时候更快)xml和html一样是以节点(标签)为基本单位拟来提供数据的;例如:# 保存一个商店中书的信息:<bookSto
2020-11-02 20:51:57
154
原创 python中list中的字典某个key去重
python中list中的字典某个key去重当我们写爬虫的时候,经常会遇到json格式的数据格式,通常如下data = [{'name':'小K','score':100}, {'name':'小J','score':98}, {'name':'小Q','score':95}, {'name':'小K','score':100}]很显然名字为小k的数据重复了,我们需要进行去重;通常对list的去重,我们可以用set()函数 如下:data = lis
2020-11-02 08:55:41
1342
原创 2020-10-30-DataAnalysis-bs4-pyQuery-lxml
day-5DataAnalysis一、selenium设置代理from selenium import webdriverfrom selenium.webdriver import ChromeOptionsimport requestsdef get_ip(): url='' response = erquests.get(url) if response.status_code == 200: if response.text[0] == '{':
2020-10-30 20:46:52
83
原创 2020-10-29-SeleniumAndProxy
day4-SeleniumAndProxy一、selenium的基本设置from selenium import webdriverfrom selenium.webdriver import ChromeOptions"""添加设置对象"""options = ChromOptions()"""取消自动检测"""options.add_experimental_option('excludeSwitches', ['enable-automation'])"""取消图片自动加载(提高页面
2020-10-29 17:57:13
364
原创 2020-10-28-Requests及爬虫清单
dey3 -Requests一、Requests基础requests:是python用来发送http请求的一个第三方库1.发送请求获取响应response = requests.get('https://www.baidu.com')2.获取响应内容1)状态码code = response.status_codeprint(code)if code == 200: print('请求成功')else: print('请求失败')2)修改返回数据的编码方式(一般针对
2020-10-28 23:02:43
3166
原创 2020-10-27-css语法选择器-京东项目
day2-京东项目css语法"""1.css写在那儿? 内联样式表:css代码写在标签的style属性中 内部样式表:将css代码写在style标签中 外部样式 表:将css代码写在外部的css文件中,然后在HTML中通过link标签来导入 2.css语法 选择器{属性名1:属性值1,;属性名2:属性值2....} 选择器 - 选中当前需要添加样式的标签(在内联就用不着了) 属性 - 属性名有哪些是固定的(属性值如果是数字大小必须加单位:px(一般都是像素)) 多个属性
2020-10-27 18:49:51
204
1
原创 2020-10-26-request获取数据和HTML基础
day1-request获取数据和HTML基础request的使用import requestsresponse = requests.get('https://www.baidu.com/')print(response) # <Response [200]> 请求成功# 设置文本编码方法(解决打印乱码)response.encoding='utf-8'# 打印请求到的内容print(response.text)HTML基础语法<!--实现一个网页需要用到三个
2020-10-26 17:44:28
480
原创 2020-10-24-继承与内存管理及作业
day19-继承与内存管理及作业1.什么是继承"""继承是让子类直接拥有父类的属性和方法的过程就是继承子类 - 继承者父类 - 被继承者"""2.怎么继承"""class 子类(父类1,父类2,..) 类的说明文档 类的内容 说明;默认情况下,类继承自object:class 类名: == class 类名(object):"""class Person: num = 61 def __init__(self,name='张三',age=18)
2020-10-25 10:57:35
99
原创 2020-10-23-面向对象2
day18-面向对象2对象属性的增删改查class Student: def __init__(self,name,tel,study_id='0001',score=60): self.name = name self.tel = tel self.study_id = study_id self.score = score # 打印一个对象的时候,系统会自动用这个对象去调用__repr__方法,并且获取这个防范的返回值
2020-10-23 18:27:36
83
原创 2020-10-21-面向对象及作业
day17-面向对象及作业类和对象1.什么是类,什么是对象"""类:就是拥有相同功能和相同属性的对象的集合 - 抽象的概念对象:就是类的实例 - 具体表现"""2.定义类 - 用代码描述清楚这个类是拥有哪些相同和哪些相同属性的对象的集合"""1.语法:class 类名: 类的说明文档 类的内容 2.说明class - 关键字;固定写法类名 - 程序员自己命名 要求:是标识符,不是关键字 规范:驼峰命名和首字母大写 见名知
2020-10-21 20:40:10
89
原创 2020-10-20-正则表达式
day16-正则表达式二进制类型/字节(bytes)其他数据转二进制:bytes(数据)"""字符转二进制:字符串.encode(encoding='utf-8')"""print(bytes(10)) # b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'print(bytes(10.5)) # TypeError: cannot convert 'float' object to bytesprint(bytes(True))print(by
2020-10-20 23:05:07
612
原创 2020-10-19-day15-常用模块
day15-常用模块1.数学模块 math(普通数学模块) cmath(复数的数学模块)2.随机模块"""random.randint(m,n) - 产生 [m,n]的随机数random.random() - 产生 [0,1)的随浮点数random.shuffle(序列) - 随机打乱列表中的元素 random.choice(序列) - 从序列中随机获取一个元素"""print(random.random()*100) # 产生[0,100)的小数
2020-10-19 19:38:55
95
原创 2020-10-16-day14-json数据和异常
day14-json数据和异常json数据什么是json数据json是一种数据格式:几乎所有的高级语言都支持这种数据格式的处理,所以json主要用于不同语言之间的交流json格式1)json格式的要求"""1) 一个json有且只有一个数据2) 唯一的这个数据必须是json支持的类型的数据"""2)json支持的数据类型"""1)数字类型(Number) - 所有数字对应的类型,表示的时候直接写,例如:100,12.5,-100,3e42)字符串(String)
2020-10-16 18:35:21
235
2
原创 2020-10-15-包和文件操作及作业
day13-包和文件操作及作业包的使用什么是包包含_________init_____.py文件的文件夹就是包包用来对py文件(模块)进行分类或者封装怎么使用包中的模块import 包名.模块名import 包名.模块名 as 新名from 包名 import 模块名from 包名.模块名 import 变量定制包的_init__ .py文件不管用什么方式导入包或者包中的模块,系统都会去执行_init_文件文件操作数据持久化计算
2020-10-15 20:26:02
70
原创 2020-10-14-装饰器、生成器和模块及作业
day12-装饰器、生成器和模块有参装饰器1.有参装饰器的功能 - 在给函数添加功能的时候可以通过参数控制具体的操作(操作不固定)2.怎么写有参装饰器def 函数名0(装饰器的参数列表) def 函数名1(func): def 函数名2(*args,**kwargs): result = func(*args,**kwargs) 新的功能 return result return
2020-10-14 23:30:43
209
1
原创 2020-10-13-高阶函数和装饰器及作业
day11-高阶函数和装饰器及作业1.什么是实参高阶函数参数是函数的函数就是实参高阶函数2.系统实参高阶函数的应用max/min,sorted,map,reducemax,min实参高阶函数普通用法max(序列,key= 函数) - 通过函数来定制求最大值的方式max(序列)序列 - 需要获取某种最大值对应的序列 ;序列中的元素必须一致,而且元素本身支持比较运算函数 - 有且只有一个参数(指向/代表序列中每一个元素);有一个返回值(求最大
2020-10-13 22:58:47
106
原创 2020-10-12函数进阶(函数返回值、全局变量和局部变量、匿名函数、实参高阶函数和返回值高阶函数
day10函数进阶(函数返回值、全局变量和局部变量、匿名函数、实参高阶函数和返回值高阶函数)函数返回值函数返回值–什么是返回值:返回值是函数内部的数据传递到函数外部的数据(默认情况下函数内部产生的数据,在函数外部不能使用)怎么确定函数返回值:python中每个函数都有返回值,返回值什么就看执行函数体的时候,遇到return关键字后面是什么,如果没有遇到,返回值就是None怎么在函数外部获取函数返回值:函数调用表达式的值就是函数返回值,所有在函数的外部获取调用表达式的
2020-10-12 18:45:41
112
原创 2020-10-09-推导式和函数及作业
day9-推导式和函数–列表元祖字典集合字符串表示方式:[元素1,元素2…](元素1,元素2…)、(元素1,)、元素1,元素2…{键1:值1,键2:值2,…}{元素1,元素2…}、set()‘’、""…容器特点:可变,有序不可变,无序可变,无序可变,无序不可变,有序元素要求:任何数据类型,可以重复任何数据类型,可以重复键:唯一并且不可变;值:任何数据类型唯一不可变有效的字符(普通字符、转义字符)元素的增删改查:增:list.ap
2020-10-09 19:36:30
157
3
原创 2020-09-30-字符串
day8-字符串字符串的操作in 和 not in字符串1 in 字符串2 - 判断字符串1是否是字符串2的子串(判断字符串2是否包含字符串1)print('a'in 'abc') # Trueprint('ab' in 'abc') # Trueprint('ac' in 'abc') # False相关函数len strstr1 = 'hello world'print(len(str1))str2 = '\tabc\n123'str3 = r'
2020-09-30 19:56:21
125
1
原创 2020-09-29-集合和字符串及作业
day7-集合和字符串集合什么是集合集合是容器型数据类型,将{}作为容器的标志,里面多个元素用逗号隔开:{元素1,元素2…}集合是可变的(支持增删改查),集合是无序的(不支持下标操作)元素是不可变类型,唯一的:1)空集合x = {} # 空字典s1 = set() # 空集合print(type(x),type(s1)) # # <class 'dict'> <class 'set'>2)元素是不可变的s2 = {10,'abc',(1,2)}
2020-09-29 21:02:01
284
原创 2020-09-28-元祖和字典-及作业
day6-元祖和字典元祖什么是元祖(tuple)元祖是不可变的列表元祖是容器型数据类型,将()作为容器标志,里面多个元素用逗号隔开:(元素1,元素2…)元祖不可变(不支持元素的增删改);元祖是有序的(支持下标的操作)元素:任何数据类型,并且可以重复t1 = (1,3,'abc',85)print(type(t1), t1) # <class 'tuple'> (1,3,'abc',85)只有一个元素的元祖如果元祖中有且只有一个元素,那么唯一的元素的后面必须
2020-09-28 20:46:38
486
原创 2020-09-27-列表的删除-切片-相关操作-相关方法
day5-列表的删除-切片-相关操作-相关方法列表的删除练习:删除指定分数列表中所有低于60分的成绩坑一:直接遍历用remove删除元素-- 删不干净(因为遍历的时候没有把所有元素遍历出来)scores = [98, 45, 34, 89, 23, 67, 23, 9, 54, 100, 78]# scores = scores.copy() # scores1 = scores.copy() # scores1 = scores[:]; scores1 = scores*1; score
2020-09-27 23:15:03
100
原创 2020-09-25--数字和列表-及作业
day4 - 数字和列表数字python中和数字相关的类型:int(整型)、float(浮点型)、bool(布尔)、complex(复数)int(整型) – 所有整数对应的类型python 中整数支持的4中写法:十进制数、二进制数、八进制数、十六进制数基数程序中表示其他进制转换十进制0 - 9直接写:1,2,52,36,0二进制0 和 10b/0B: 0b1011bin(数字)八进制0 - 70o/0O: 0o157
2020-09-25 23:08:58
690
原创 2020-09-24-循环 + 作业练习
day3-循环-(for循环-while循环-continue和break-else)–及作业python中的循环有两种:for循环和while循环for 循环"""语法:for 变量 in 序列: 循环体说明:for/in - 关键字,固定写法变量 - 可以是任意变量;一般写一个新的变量序列 - Python中容器性数据类型;例如:字符串、列表、字典、元祖、集合、迭代器、生成器、range...冒号 - 固定写法循环太 - 和for保持一个
2020-09-24 22:53:52
287
原创 2020-09-23-运算符和分支结构
day2-运算符和分支结构python中支持的运算符:数学运算符、比较运算符、逻辑运算符、赋值运算符、位运算(了解)数字运算符:+(加法运算)、-(减法运算)、*(乘法运算)、/(除法运算)、%(取余、取模)、//(取整)、**(幂运算)1)+、-、、/ 和数学中的 +、-、、÷的功能是一样的% - 取余、取模(数学中叫求余数)// - 整除(商取整)** - 幂运算x % y -> 求 x 除以 y 的余数x // y -> x 除以y 的商 向
2020-09-23 23:17:33
232
原创 2020-09-22-python语言基础和变量
day1-python语言基础和变量python基础语法语句(一条有效的程序)一条语句占一行,一行结束后不用写分号;如果一行要写多个语句,与句之间必须使用分号隔开print('你好')print('世界');print('千锋')注释 注释就是代码中不参与编译执行的说明性文字(不影响程序功能)1)单行注释:在一行文字的最前面加 ## 在控制台打印 hello worldprint('hello world') # 在控制台打印 hello world2)多行注释:将
2020-09-22 19:30:03
96
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人