自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 socket编程---TCP发送与接收数据

TCP与UDP介绍TCP客户端讲解TCP服务端讲解TCP需要注意事项文件下载器案例TCP协议介绍当应用程序希望通过TCP与另一个应用程序通信时,它会发送一个通信请求。这个请求必须被送到一个确切的地址。在双方“握手”之后,TCP将在两个应用程序之间建立一个全双工(full-duplex)的通信。这个全双工的通信将占用两个计算机之间的通信路线,直到它被一方或双方关闭为止。三次握手• 初版,四次握手进化,三次握手数据传输四次挥手TCP特点• 面向连接• 可靠传输• TCP采

2020-06-30 07:54:54 1066

原创 mysql高级进阶---触发器实战--给新用户发邮件

触发器触发器( trigger )用于监视某种情况并触发某种操作,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,而是由事件来触发。例如,当对某张表进行insert. delete、 update操作时就会触发执行它。#创建触发器语法CREATE TRIGGER trigger_name trigger._time trigger_event ON table_name FOR EACH ROW trigger_stmt参数说明:trigger_name :触发器名称trigger_t

2020-06-28 20:50:06 343 1

原创 scrapy框架进阶三

Scrapy log信息的认知Scrapy shellScrapy settings说明和配置Scrapy CrawlSpider说明1.Scrapy log信息的认知Scrapy shellScrapy shell是一个交互终端,我们可以在未启动spider的情况下尝试及调试代码,也可以用来测试XPath表达式使用方法:scrapy shell https://www.baidu.com/response.url:当前相应的URL地址response.request.url:当前

2020-06-26 17:34:22 242

原创 mysql高级进阶----存储过程实战:给指定用户发送邮件通知

大家好,我是天空之城,今天给大家带来,mysql高级进阶----存储过程实战:给指定用户发送邮件通知第一步,测试数据和描述需求drop table if exists user info;drop table if exists email_ info;create table user info( id int not null auto increment primary key, name varchar(30), email varchar(50));insert into us

2020-06-26 07:18:21 196

原创 通过python带你打造udp聊天软件

大家好,我是天空之城。今天给大家带来,通过python带你打造udp聊天软件。udp是位于ip网络层之上的运输层,类似于tcp协议,再往上就是socket抽象层和用户应用层。socket又称为套接字,简单理解就是两个节点之间为了通信,在各自家里装了一部电话可以实现通信,只管发送,不管接收。但这与tcp的双向传输是不同的。首先,自己先下载安装一个网络调试助手小软件。第一部分,通过pycharm发送数据def main(): # 1.创建套接字 udp_s = socket.sock

2020-06-24 23:48:15 1230

原创 爬虫进阶-----scrapy框架初探二

课堂复习●1你要知道怎样创建一 个scrapy项目scrapy startproject xXX●2你要知道怎么创建一个爬虫项目。先要进入到scrapy这个路径下。生成一个爬虫项目scrapy genspider demo xxx.com。几个文件1>爬虫文件(allowed_ domainsstart urls开始的可以修改的parse函数写爬虫的逻辑xpath)。返回的数据yield scrapy.Request(url=url,callback=None,meta=None)。s

2020-06-24 19:50:30 288

原创 python画图之matplotlib基础快速入门

matplotlib是数据分析三剑客之一其中需要理解figure(画布)、axes(坐标系)、axis(坐标轴)三个基本概念,画布就是创建一个画图的基本区域,坐标系就是一个画布中分割为多个小的画图区域,称为坐标系(例如一个画布中可以同时放三张图),而坐标轴就是具体每一个画图的小区域的x轴,y轴,z轴了。以下代码部分来自公众号‘数据分析与统计学之美’,号主也是相当的厉害,还经常分享小福利,有需要的可以加他。导入相关库import numpy as npimport pandas as pdim

2020-06-23 23:04:16 491

原创 mysql高级进阶----存储过程的基本运用

存储过程存储过程( Stored Procedure )是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行,类似于编程语言中的方法或函数。存储过程的优点:1.存储过程是对SQL语句的封装,增强可复用性2.存储过程可以隐藏复杂的业务逻辑、商业逻辑3.存储过程支持接收参数,并返回运算结果存储过程的缺点:1.存储过程的可移植性较差,如果更换数据库,要重写存储过程2.存储过程难以调试和扩展3.无法使用Explain对存储过程进行

2020-06-23 22:11:33 202

原创 python高级进阶----元类以及迭代器生成器

内容getattr__与__getattribute属性描述符创建元类metaclass属性迭代器与生成器__getattr__和__getattribute__魔法函数• __getattr__是当类调用一个不存在的属性时才会调用getattr魔法函数,他传入的值item就是你这个调用的不存在的值。• getattribute__则是无条件的优先执行,所以如果不是特殊情况最好不要用__getattribute。class User(object): def __init__(se

2020-06-23 21:37:49 121

原创 mysql高级进阶----视图

大家好,我是天空之城。视图是一个虚拟表(可理解为报表),其内容由select查询语句定义。和真实的表一样,视图也包含行和列,对视图的操作与对表的操作基本一致。视图中的数据是在使用视图时动态生成,视图中的数据都存储在基表中。将sql封装成视图,简化了复杂的查询,更容易理解。可读性重用性安全性视图是一个虚拟表,其内容由select查询语句定义。和真实的表一样,视图也包含行和列,对视图的操作与对表的操作基本一致。 视图中的数据是在使用视图时动态生成,视图中的数据都存储在基表中。视图表的数据变化会影响

2020-06-22 06:34:53 302

原创 1-3Python垃圾回收及性能分析

内容• 实例方法名字的字符串调用方法• 垃圾回收(上)• 垃圾回收(下)• 调试和性能分析• 经典的参数错误通过实例方法名字的字符串调用方法我们有三个图形类 Circle,Triangle,Rectangle他们都有一个获取图形面积的方法,但是方法名字不同,我们可以实现一个统一的获取面积的函数,使用每种方法名进行尝试,调用相应类的接口class Triangle: def __init__(self,a,b,c): self.a,self.b,self.c = a,

2020-06-20 17:15:51 114

原创 1-2类与对象深度问题及解决技巧

内容• 如何派生内置不可变类型并修改其实例化行为• 创建大量实例节省内存• Python中的with语句• 创建可管理的对象属性• 类支持比较操作• 环状数据结构中管理内存如何派生内置不可变类型并修改其实例化行为练习需求我们想自定义一种新类型的元组,对于传入的可迭代对象,我们只保留其中int类型且值大于0的元素需求,定义IntTuple类>>> IntTuple([2,-2,"jr",["x","y"],4])(2,4)回顾__new__以下代码,执行结果为:

2020-06-20 12:42:36 103

原创 python高级编程----深入类与对象

内容• 鸭子类型和多态• 抽象基类(abc模块)• 使用isinstance和type的区别• 类属性和实例属性• 类属性和实例属性查找顺序• Python对象的自省机制• super函数鸭子类型与多态鸭子类型多态的概念是应用于Java和C#这一类强类型语言中,而Python崇尚"鸭子类型"动态语言调用实例方法时不检查类型,只要方法存在,参数正确,就可以调用。这就是动态语言的“鸭子类型”,它并不要求严格的继承体系,一个对象只要“看起来像鸭子,走起路来像鸭子”,那它就可以被看做是鸭子。

2020-06-20 06:52:22 135

原创 小福利,python打造聊天机器人

大家好,我是天空之城,今天给大家带来,调用图灵机器人来打造聊天机器人。首先大家要去图灵机器人官网http://www.tuling123.com注册一个账号,得到一个api接口,然后下面进行调用就可以了# coding = utf8import requests# 去图灵机器人官网注册后会生成一个apikey,可在个人中心查看KEY = '你的api接口'while True: msg = input('你好啊:') apiUrl = 'http://www.tuling1

2020-06-18 19:10:58 296

原创 mysql高级进阶----分区表

1.了解什么是分区表2.了解分区表的好处3.熟悉分区表的几种类型4.掌握分区表的操作分区表就是按照某种规则将同一张表的数据分段划分到多个位置存储。对数据的分区存储提高了数据库的性能,被分区存储的数据在物理上是多个文件,但在逻辑上仍然是一个表,对表的任何操作都跟没分区之前一-样。在执行增、删、改、查等操作时,数据库会自动找到对应的分区,然后执行操作。 MySQLM5.1.3开始支持分区( Partition )。在MySQL 8.0中,只有InnoDB和NDB两个存储引擎支持分区。MySQL支

2020-06-17 19:32:59 133

原创 MySQL高级进阶---事务控制

大家好,我是天空之城。今天带来,MySQL高级进阶—事务控制。了解什么是事务控制熟悉事务的特性掌握事务控制的使用事务( Transaction )是指作为一一个逻辑工作单元执行的一系列操作,这些操作要么全部成功,要么全部失败。事务确保对多个数据的修改作为一个单元来处理。在MySQL中,只有使用了Innodb存储引擎的数据库或表才支持事务。事务用于维护数据库的完整性,保证成批的sq|语句要么都执行,要么都不执行(要么都成功,要么都失败)。事务用于 管理INSERT、UPDATE和DELETE

2020-06-17 18:55:36 297

原创 MySQL学习笔记---覆盖索引

大家好,我是天空之城。覆盖索引又称之为索引覆盖,即select的数据列只从索引中就能得到,不必读取数据行,也就是只需扫描索引就可以得到查询结果。关于覆盖索引的几点说明:1.使用覆盖索引,只需要从索引中就能检索到需要的数据,而不要再3描数据表;2.索引的体量往往要比数据表小很多,因此只读取索引速度会非常快,也会极大减少数据访问量;3. MySQL的查询优化器会在执行查询前判断, 是否有一个索引可以覆盖所有的查询列;4.并非所有类型的索引都可以作为覆盖索引,覆盖索引必须要存储索引列的值。像哈希索引,

2020-06-17 07:24:21 151

原创 mysql学习笔记---复合索引前导列特性

大家好,我是天空之城,今天学习复合索引前导列特性在MySQL中,如果创建了复合索引(name, salary, dept),就相当于创建了(name, salary, dept)、(name, salary)和(name)三个索引,这被称为复合索弓|前导列特性,因此在创建复合索引时应该将最常用作查询条件的列放在最左边,依次递减。未使用索引select * from employee where salary= 8800;select * from employee where dept='部门]A'

2020-06-15 23:21:24 246

原创 mysql学习笔记---索引的使用---索引的基本使用

大家好,我是天空之城,给大家带来,mysql学习笔记—索引的基本使用1.了解索引及其作用2.熟悉常见的索引|种类3.掌握索引的基本使用4.掌握索引的实战经验索引是一种特殊的数据结构,类似于图书的目录,它能够极大地提升数据库的查询效率。如果没有索引,在查询数据时必须扫描表中的所有记录才能找出符合条件的记录,这种全表扫描的查询效率非常低。```show index from employee\G;查看索引create index idx_name on employee(name);建立索引

2020-06-14 23:43:36 161

原创 数据分析与挖掘----pandas模块的介绍

大家好,我是天空之城,今天给大家带来,pandas模块的介绍1.掌握外部数据的读取;2.如何快速地认知数据的概览信息;3. 数据子集的筛选与清洗4.数据的汇总处理5.数据的合并与连接数据表的合并与连接...

2020-06-14 23:11:02 144

原创 数据分析与挖掘-----numpy模块来构造数组

大家好,我是天空之城,今天给大家带来,通过numpy模块来构造数组1.数组的构造及其优势;2.常用的数学函数与统计函数;

2020-06-14 22:48:42 159

原创 数据分析与挖掘---匿名函数与自定义函数

大家好,我是天空之城,今天给大家带来,匿名函数与自定义函数。1.理解匿名函数的定义和用法;2.掌握自定义函数的使用技巧;作用:为了定制化的需求为了降低代码的重复编写定义匿名函数,可以用lambda关键字定义。通过lambda构造的函数可以没有名称,最大特点是“一气呵成”,即在自定义匿名函数时,所有代码可在一行内完成。lambda parameters : function expressionlambda为匿名函数的关键起始词parameters是函数的形参,多个参数之间用英文状态的

2020-06-14 18:14:12 137

原创 数据分析---for循环,while循环,正则表达式

大家好,我是天空之城,今天给大家带来,数据分析—for循环,while循环,正则表达式正则表达式正则表达式的定义正则表达式是指专门用于描述或刻画字符串内在规律的表达式。正则表达式的使用场景无法通过切片将字符串的子串返回借助于replace方法无法完成非固定值或非固定位置值的替换借助于split方法无法按照多种值实现字符串的分割匹配中括号中一个字符...

2020-06-14 15:02:15 569 1

原创 数据分析与挖掘---列表,元组,字典的构造与方法

大家好,我是天空之城一,列表的构造列表是一种存储数据的容器,借助于一对方括号构造列表对象。构成列表的元素没有任何限制,可以是任何类型的数据,也可以是任何结构的数据。列表属于序列对于序列而言,前文介绍的字符串索引|和切片的使用方法在列表上同样适用。列表是可变对象借助于列表的append和extend方法可以实现列表元素的增加,所不同的是append在列表尾部增加一个元素,而extend可以增加多个元素。列表的其他方法list. countlist. indexlist. sort二,元

2020-06-14 11:41:04 461

原创 数据分析与挖掘---字符串的构造和方法

大家好,我是天空之城,今天给大家带来,数据分析与挖掘—字符串的构造和方法1.字符串的构造单引号:字符串中含有双引号时;双引号:字符串中含有单引号时;三引号 :字符串中既含有单引号又含有双引号时 ,或需要多行显示时;2.字符串属于序列正向单索引|1、正向单索引指的是只获取列表中的某一个元素 ,并且是从左到右的方向索取对应位置下的元素,可以使用[index]表示。2、需要注意的是,索引值index是从0开始的,所以索引值与实际元素的位置正好差1。负向单索引1.负向单索引|是指在正向单索引的基

2020-06-14 08:22:36 460

原创 schedule模块的运用

import scheduleimport time#引入schedule和timedef job(): print("I'm working...")#定义一个叫job的函数,函数的功能是打印'I'm working...'schedule.every(10).minutes.do(job) #部署每10分钟执行一次job()函数的任务schedule.every().hour.do(job) #部署每×小时执行一次job()函数的任务sched

2020-06-14 07:34:39 375

转载 小福利,运用scrapy爬虫框架高效爬取数据和存储数据

大家好,我是天空之城,今天给大家带来,运用scrapy爬虫框架高效爬取数据和存储数据。Scrapy的用法0.创建Scrapy项目1定 义item(数据)2创建 和编写spiders文件3修改settings.py文件4运行Scrapy爬 虫写代码:明确目标分析过程代码实现(逐步)以爬取豆瓣图书为演示https://book.douban.com/top250豆瓣Top250图书一共有10页,每页有25本书籍。我们的目标是:先只爬取前三页书籍的信息,也就是爬取前75本书籍的信息(包含

2020-06-13 21:41:48 392

原创 python爬虫笔记,urllib.request模块的运用方法

1. urllib.request模块1.1 版本python2 :urllib2、urllibpython3 :把urllib和urllib2合并,urllib.request1.2 常用的方法urllib.request.urlopen(" 网址") 作 :向网 站发起 一个请求并 获取响应字节流 = response.read()字符串 = response.read().decode("utf-8")urllib.request.Request" 网址",headers="字典")

2020-06-13 21:21:57 695

转载 小福利,带大家用python一起学做词云图

大家好,我是天空之城,今天给大家带来,用python一起学做词云图感谢博友【刘一手emm】,原文链接在最后import pandas as pdimport matplotlib.pyplot as pltimport numpy as npfrom wordcloud import WordCloudimport jiebaimport cv2 as cv# 读入图片背景# 对于中文词云首先使用jieba来中文分词,然后还要记得指定font_path设置字体识别# 想要的话还能设置

2020-06-13 14:25:01 3220

转载 带附件的邮件的发送方法

感谢博友「Samaritan·J」import smtplib# smtplib 用于邮件的发信动作from email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartfrom email.header import Headerfrom email.mime.application import MIMEApplication# 处理任意二进制文件if __name__ == '__main_

2020-06-13 07:49:42 1239

转载 mysql学习笔记--索引的使用--查询分析器explain

大家好,我是天空之城,今天给大家带来,mysql学习笔记–索引的使用explain命令可以查看SQL语句的执行计划。当explain与SQL语句- 起使用时,MySQL将显示来自优化器的有关语句执行计划的信息。也就是说, MySQL解释了它将如何处理语句,包括有关如何联接表以及以何种顺序联接表的信息。explain能做什K ?1.分析出表的读取顺序2.数据读取操作的操作类型3.哪些索引可以使用4.哪些索引被实际使用5.表之间的引用6.每张表有多少行被优化器查询explain的使用很简单,

2020-06-12 23:47:03 196

原创 学习笔记--多进程的知识介绍

大家好,我是天空之城,今天给大家带来,多进程的知识介绍进程简介import multiprocessingimport threadingimport timedef demo1(): while True: print('--1--') time.sleep(1)def demo2(): while True: print('--2--') time.sleep(1)def main():

2020-06-12 23:36:43 253

原创 MySQL的优化---索引的使用--慢查询日志

大家好,我是天空之城,今天给大家带来,MySQL的优化—索引的使用–慢查询日志。作用,找到哪条sql语句执行比较慢,从而进行优化,日志非常的重要。日志的类型慢查询日志可以通过命令临时设置,也可以修改配置文件永久设置。#查看是否开启慢查询日志show variables like 'slow%';...

2020-06-12 07:23:50 70

原创 学习笔记--线程之间的资源竞争,死锁,互斥锁,队列

大家好,我是天空之城,今天给大家带来,线程之间的资源竞争,死锁,互斥锁,队列线程之间的资源竞争import threadingimport timeimport dis # dis这个模块可以查看Python代码在CPU的运行轨迹num = 0## def demo1(nums):## global num## for i in range(nums):## num += 1# print('demo1---%d'%num)###

2020-06-11 19:55:58 502

原创 mysql学习笔记,数据控制语言DCL

大家好,我是天空之城,今天给大家带来,mysql数据控制语言DCL。sql语言按功能分为四类,DDL DML DQL DCL,DCL用于管理用户和权限。一、用户管理DCL主要能做什么创建用户删除用户修改密码给用户赋予权限撤销用户权限#创建用户CREATE USER '用户名' [@'主机名'] [IDENTIFIED BY '密码'];注意: MySQL的用户账号由两部分组成:用户名和主机名,即用户名@主机名,主机名可以是IP或机器名称,主机名为%表示允许任何地址的主机远程登录

2020-06-10 23:41:31 159

原创 mysql学习笔记--子查询exists和in的运用

大家好,我是天空之城,今天给大家带来,子查询exists和in的运用。之前的课程中,我们已经学习过运算符IN,它允许我们在WHERE子句中过滤某个字段的多个值。#where子句使用in语法SELECT column name FROM table_ name WHERE column_ name IN(value1, value2, ..如果运算符in后面的值是来源于某个查询结果,并非是指定的几个值,这时就需要用到子查询。子查询又称为内部查询或嵌套查询,即在SQL查询的WHERE子句中嵌入查询语句。

2020-06-09 22:55:59 248

原创 学习笔记--多线程的创建与查看

大家好,我是天空之城,今天给大家带来,多线程的创建与查看,这是为后面利用多线程做爬虫做准备的。1.多线程的创建import threadingimport timedef singe(): for i in range(3): print('正在唱歌....') time.sleep(1)def dance(): for i in range(3): print('正在跳舞....') time.sleep(

2020-06-09 22:26:33 219

原创 MySQL学习笔记,表的自连接运用

大家好,我是天空之城,今天给大家带来,表的自连接的运用自连接是一一种特殊的表连接,它是指相互连接的表在物理上同为一张表,但是逻辑上是多张表。自连接通常用于表中的数据有层次结构,如区域表、菜单表、商品分类表等。#自连接语法SELECT A.column, B.columnFROM table A, table BWHERE A.column = B.column;先建表drop table if exists area;drop table if exists area;create t

2020-06-08 22:55:32 408

原创 巧用python解决汉诺塔问题,只要八行代码解决递归问题

大家好,我是天空之城,今天给大家带来,巧用python解决汉诺塔问题,只要八行代码解决递归问题。相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘(如下图)。游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。def hannuotower(num,a,b,c

2020-06-08 22:29:22 393

原创 python的GUI编程初探,这部分内容真的非常有意思

大家好,我是天空之城,今天给大家带来,python的GUI编程初探,这部分内容真的非常有意思#感谢博友离愁无语说,海天一树Ximport tkinter as tkfrom tkinter import * #导入tkinter库# top=tkinter.Tk()#创建窗口#使窗口停下来,不一闪而去# top.mainloop()#--------------------------------------'''root = tkinter.Tk() #创建窗口compu

2020-06-08 07:48:22 208 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除