- 博客(30)
- 收藏
- 关注
原创 Day3 MySQL查询语句进阶
Day3_查询语句进阶常用查询语句-- 查询月薪最高的员工姓名和月薪-- any() 其中一个为Ture,整个为True;all() 所有都为True才为Trueselect ename,sal from tb_emp where sal = (select max(sal) from tb_emp);select ename,sal from tb_emp where sal >= all(select sal from tb_emp);-- 查询员工的姓名和年薪((月薪+补贴)*1
2021-06-12 22:28:16 189
原创 Day2 MySQL修改语句
Day2_数据库初认识设计表ER图 (Entity Relationship Diagram)实体:矩形框 ->表属性:椭圆框 ->列(字段,属性,特征)关系:菱形框 ->中间表重数:一对一(1:1),多对多(m:n),一对多(1:n)EER图(Extended ER图)正向工程:先设计EER图,然后根据EER图生成数据库和表.反向工程:用设计好的数据库和表生成EER图.regular expression ->regexp统计学:
2021-06-12 22:27:09 190 1
原创 Day1 MySQL数据库初认识
Day1_数据库初认识数据库的发展数据库:数据的仓库(集散地),它解决了数据持久化和数据管理的问题。持久化 : 将数据从内存转移到硬盘(可以长久保存数据的存储介质)。数据库的分类:1972 -> codd ->如何使用关系模型来保存大规模数据关系型数据库 ->首选方案理论基础:关系代数,集合论具体表象:用二维表保存数据(行(记录)和列(字段))编程语言:SQL(结构化查询语言) ->SQL方言非关系型数据库NoSQL -&g
2021-06-12 22:25:49 181 1
原创 Day8_进程池,线程池和协程
Day8_进程池,线程池和协程线程及进程的梳理创建线程的三种方式:创建Thread对象 -> target /args -> start( )继承Thread类 -> 重写run()方法 -> start( )使用线程池(最佳选择) -> 减少频繁创建和释放线程造成的系统开销线程和进程的优缺点线程间的通信非常简单,可以通过共享内存来实现进程间的通信比较麻烦,因为进程间的内存是相互隔离,需要使用管道,套接字等方式来通信多进程 ->
2021-06-03 19:29:03 203
原创 Day7_多线程和多进程的使用
Day7_多线程和多进程的使用线程类子类的用法1.创建线程类的子类from threading import Thread, current_threadimport time# 1.创建线程类的子类class Download_Img_Thread(Thread): # 3.如果实现子线程中的任务需要额外的数据,数据通过对象属性来提供 def __init__(self, name): super().__init__() self.name
2021-06-02 20:47:10 126
原创 Day6_爬虫流程整理
Day6_爬虫流程整理excel写操作获取工作簿对象(工作簿对应的就是一个excel文件)新建或者打开一个import openpyxlwork_book = openpyxl.Workbook()work_book = openpyxl.load_workbook('./file/student.xlsx')获取所有表的表名all_names = work_book.sheetnames获取表对象sheet = work_book[all_names[0]]
2021-06-02 20:46:18 119
原创 Day5_selenium
Day5_seleniumselenium基础创建浏览器对象浏览器对象如果是局部变量,那么函数结束后,浏览器会自动关闭,如果是全局变量,浏览器需要手动关闭.from selenium import webdriverfrom selenium.webdriver.common.keys import Keysimport timeb = webdriver.Chrome()打开网页b.get('https://www.jd.com')获取网页内容注意:在获取浏览器p
2021-06-01 08:44:27 122
原创 Day4_解析器和selenium
Day4_解析器和seleniumpyQuery1.创建一个PyQuery对象导入该模块from pyquery import PyQueryPyQuery对象的本质就是一个容器PyQuery(需要解析的是html的字符串)html = open('test.html', encoding='utf-8').read()pq = PyQuery(html) # pq对应容器中只有一个html标签通过选择器获取子标签PyQuery对象(选择器) - 获取css选择器
2021-05-29 11:01:47 128
原创 Day3_代理和css解析
Day3_代理和css解析获取代理找到购买代理网站,推荐蘑菇代理.根据api获取ip地址,然后用新的ip地址给proxies赋值def get_proxy_ips(): api = 'http://piping.mogumiao.com/proxy/api/get_ip_bs?appKey=3ee6f035175f4b508d8a825da0fb3833&count=5&expiryDate=0&format=2&newLine=3' resp
2021-05-26 20:56:12 116
原创 Day2_css选择器与requests模块
Day2_Python学习笔记css基础css负责网页内容的样式和布局(css叫做层叠样式表,简称样式表)css语法:"""语法:选择器{属性名1:属性值1;属性名2:属性值2;...}说明:选择器 - 选中需要设置样式的标签{} - 固定写法属性名 - 用来决定需要设置那个样式属性值 - 如果是表示数值大小,数字值需要单位,一般是px(像素)常用属性:color:文字样式(颜色英文单词,rgb(红,绿,篮),#颜色的16进制值) font
2021-05-26 19:58:27 263
原创 Day1_HTML基础
Day1_Python学习笔记前端基础-HTML5网页基本结构整个网页是一个html标签.(有多少个网页就有多少个html标签;一个html里面有一head标签和一个body标签;head负责网页头部的显示;body负责网页的内容的显示.)标签语法html是通过不同的标签来提供不同的内容,标签分为双标签和单标签两种双标签: <标签名 属性名 = “属性值” >标签内容</标签名>单标签: <标签名/ 属性名1 = “属性值1” 属性2 = “属性值2”
2021-05-26 09:30:31 145
原创 Day18_继承和邮件自动发送
Day18_继承和邮箱自动发送面向对象和邮件自动发送继承什么是继承继承就是让子类直接拥有父类的属性和方法(子类 - 继承者;父类 - 被继承者)继承的语法"""class 类名(父类1,父类2,...): pass定义类的时候如果没有写继承关系,那么这个类默认继承python的基类:objectclass 类名: == class 类名(object)"""子类中添加属性和方法"""1)添加类属性,方法直接在子类中添加新的属性和新的方法2)添加
2021-05-24 19:43:05 188
原创 Day17_面向对象
Day17_面向对象笔记:类和对象定义 类"""定义类就是用代码描述清楚你这个类是拥有哪些相同功能哪些相同属性的对象的集合功能 - 对应的就是函数属性 - 保存数据的变量(在类中叫属性)语法:class 类名: 类的说明文档 类的内容 说明:class - 关键字,固定写法类名 - 程序员自己命名 要求:是标识符,不是关键字 规范:见名知义;驼峰式命名(单词之间首字母大写);首字母大写,不能使用类名,模块名,函数名类的说
2021-05-19 19:55:13 208
原创 Day16_正则表达式
Day16_正则表达式笔记和作业正则表达式检测类符号\b - 检测是否是单词边界re_str = r'name\b my'print(fullmatch(re_str, 'name my'))"""单词边界:凡是可以将两个单词分开的符号都是单词边界,比如:空白字符、标点符号、单词开头和结尾注意:检测类符号是在匹配成功的情况下看检测类符号所在的位置是否符合要求"""re_str = r'\b\d\d\b'result = findall(re_str, 'shj23结合实际 4
2021-05-18 20:59:54 301
原创 Day15_json模块、异常捕获和正则基础
Day15_Python学习笔记json模块什么是json数据"""json是一种通用的数据格式,主要用于不同语言之间的数据传输。json数据格式要求:1)有且只有一个数据2)唯一的数据必须是json支持的数据类型的数据json支持的数据类型:数字类型: - 包含所有数字,表示的时候直接写,例如:90、12.5、-23、3e4...字符串 - 用双引号引起来的数据(只能是双引号),例如:"你好","hello",...布尔值 - 只有true和false两个值,
2021-05-17 19:22:57 106
原创 Day14_文件操作和异常捕获
Day14_文件操作和异常捕获笔记:hashlib的使用hash摘要(加密)的算法主要有两类:ma5和sha - X系列hash加密的特点:hash算法生成的摘要不可逆。(不能通过密文获取原文)只有相同的数据通过相同的算法得到的摘要才是一致的不管原数据有多大,产生摘要的大小一致(长度)一致生成hash摘要通过算法创建hash对象:hashlib.算法名()常用算法名:md5、shaxxx添加数据hash对象.update(数据)注意:数据必须是二进
2021-05-17 09:27:08 94
原创 Day13模块和包
Day13_模块与包的使用模块的使用什么是一个模块 - python中一个py就是一个模块怎么在一个模块中使用另一个模块中的内容(内容包含数据、函数、类等)"""注意:1)如果要在一个模块中使用另一个模块中的内容,被使用的模块的模块名必须是标识符并且不是关键字 2)一个模块中只有全局变量才能被其他模块使用 3)其他模块只有在被导入以后才能使用"""怎么导入模块"""1)import 模块名 - 导入指定模块,导入后可以通过'模块名.变量'的方式使用被导入的
2021-05-16 17:54:44 109
原创 Day12_Python三大神器
Day12_Python三大神器笔记:迭代器什么是迭代器"""迭代器是容器数据类型(序列)、迭代器无法直接获取所有元素,也不能统计元素个数。获取迭代器中的元素会导致元素从迭代器中消失。(元素取一个就少一个)"""创建迭代器创建迭代器只有两种方式:将其他序列转换成迭代器创建生成器获取迭代器中的元素获取单个元素:next(迭代器)遍历:使用for循环进行遍历生成器生成器"""生成器从获取数据和保存特点来看,就是迭代器。生成器保存数据的
2021-05-13 20:59:53 142
原创 Day11_函数高阶
Day11_函数高阶笔记:匿名函数1.匿名函数 - 没有函数名的函数"""函数名 = lambda 形参列表:返回值相当于:def 函数名(形参列表): return 返回值注意:匿名函数的本质还是函数,之前函数中除了定义函数的语法以外的内容都适用于匿名函数"""函数就是变量函数就是变量python中定义函数就是定义类型是function的变量,函数名就是变量名,普通变量能做的事儿,函数都能做# func3是一个实参高阶函数 - 如果一个函数的参数是函数,
2021-05-12 21:06:31 95
原创 Day10_函数进阶
Day10_函数进阶笔记:函数的参数1.位置参数和关键字参数根据实参提供的不同分为位置参数和关键字参数"""1)位置参数:调用函数的时候让形参和实参在位置上一一对应2)关键字参数:调用函数的时候以"形参名 = 值"的形式确定对应实参。3)位置参数和关键字参数混用:位置参数必须在关键字参数前面,同一形参不能多次赋值,所有形参都必须赋值"""参数默认值定义函数的时候可以直接在形参后面用 = 给形参赋默认值有默认值的参数在调用的时候可以不用传参如果有的参数有默认值,有的没
2021-05-11 21:09:18 122
原创 Day9_格式化字符串和函数基础
Day9_格式化字符串和函数基础笔记:格式化字符串格式化字符串:格式占位符"""语法:包含格式占位符的字符串%(数据1,数据2,...)说明:括号中数据的个数需要和格式占位符的个数保持一致格式占位符:%s - 任何类型数据%d - 整数(可以转换为整数的数据)%f - 浮点数; %.Nf - 保留N位小数"""1).%s可以使用任意类型的数据填充(如果只有一个数据()可以省略)格式化字符串:f-string{表达式:.Nf} - 保留小数点后N位小数(4舍5入
2021-05-11 08:43:04 86
原创 Day8_字符串
Day8_字符串笔记:字符串和字符什么是字符串"""字符串是容器型数据类型(序列),将''或者""或者''''''或者""""""作为容器标志,里面每一个独立的符号就是字符串的元素。字符串是不可变的;字符串是有序的(支持下标操作)字符串的元素:引号里面的每个符号都是字符串的元素,字符串的元素又叫字符;字符分为两种,一种是普通字符,一种是转义字符。"""空串(引号中什么都没有,空格也不行)empty1 = ’ ‘;empty2 = " ";empty3 = ‘’’ ‘’’;e
2021-05-09 09:36:42 224
原创 Day7_字典和集合
Day7_字典和集合笔记:字典什么是字典"""字典是容器型数据类型(序列),将{}作为容器标志,里面多个元素用逗号隔开(每个元素必须是键值对) {键1:值1,键2:值2,...}字典是可变的(支持增删改);字典无序键:是不可变的数据(数字、字符串、元组);键是唯一的值:值才是字典真正想要保存的数据,键的作用就像列表中的下标来对值进行区分的"""空字典 ‘ {} ’字典无序键是不可变的键是唯一的查 -
2021-05-08 08:39:04 115
原创 Day6_列表(函数及方法)和元组
Day6_列表函数及方法 和 元组笔记:列表相关函数及方法列表相关函数:max、min、sum、len、sorted、reversed、listmin(序列) - 获取序列中最小的元素。max(序列) - 获取序列中最大的元素(序列中的元素本身必须支持比较运算,而且元素之间可以比较大小)。sum(序列) - 获取序列中所有元素的和(序列中的元素必须是数字)。len(序列) - 求序列中元素的个数。sorted(序列) - 将序列中的元素从小到大排序,返回一个排完序
2021-05-06 21:03:30 320
原创 Day1_基础语法
Day1: Python学习笔记一,PythonPython是一种动态解释性语言。二,基础语法1.注释单行注释-在文本前面加#,快捷键ctrl+/多行注释-将注释放在’’’’’’ “”"或者’’’ ‘’'中间# 注释1"""注释1注释2。。。"""2.常用快捷键ctrl+d——写一行一模一样的代码ctrl+y——删除一行代码shift+enter——光标在中间,直接换到下一行ctrl+/——批量注释/取消注释ctrl+a——全选ctr
2021-05-02 11:06:18 196
原创 Week1_循环练习题
判断101-200之间有多少个素数,并输出所有素数。count = 0for x in range(101,200): for y in range(2,16): if x % y == 0: break else: print(x) count += 1print(14**2)求整数1~100的累加值,但要求跳过所有个位为3的数。num = 0for x in range(1,101): .
2021-05-01 17:05:02 119
原创 Day5_列表的增删改及操作
Day5_列表的增删改总结:列表的增删改1.增 - 添加元素列表.append(元素) - 在列表的最后添加指定元素。列表.insert(下标,元素) - 在列表的指定下标所在的位置前插入指定元素。2.删 - 删除列表中的元素del 列表[下标] - 删除列表中指定下标对应的元素。注意:下标不能越界! 越界程序会报错。列表.remove(元素) - 删除列表中指定元素。注意:如果要删除的元素在列表中有多个,只删除最前面的一个; 如果要删除的元素不存在,
2021-05-01 16:01:12 325
原创 Day4_列表基础
Day4_Python学习笔记(列表基础)列表基础列表列表是容器型属性类型(是序列);将[]作为容器标志,里面多个元素用逗号隔开:[元素1,元素2,元素3,…]。列表是可变的(指的是列表中元素的个数、顺序和值可变)。列表是有序的(支持下标操作,下标是顺序的序号)。列表的元素:任何类型的数据都可以作为列表的元素,同一个列表中不同元素的类型可以不同。# 空列表list1 = []print(list1,type(list1)) #[] <class
2021-05-01 15:28:05 83
原创 Day3_循环结构
d循环结构总结:for循环for循环"""语法:for 变量 in 序列: 循环体说明:for 、in - 关键字,固定写法变量 - 变量名(可以是没有定义过的变量的变量名,也可以是已定义过变量的变量名。)序列 - 容器型数据类型的数据,例如:字符串、列表、元组、字典、集合、迭代器、生成器、rangge等。: - 固定写法循环体 - 和for保持一个缩进的一条或者多条语句(循环体需要重复执行的代码)执行过程:
2021-04-28 23:11:36 123
原创 Day2_运算符和变量
Day 2_总结:一.运算符1.数字运算符常用数字运算符:+(加)、-(减)、*(乘)、/(除)、%(取余、取模)、//(整除)、**(幂运算)+(加)、-(减)、*(乘)、/(除)和数学中的+(加)、-(减)、×(乘)、÷(除)的功能一样。#加减乘除print(2+3);print(2-3);print(2*3);print(2/3)% 求余数x % y - x除以y的余数#求5除2的余数print(5%2)应用1:判断一个数是否能被另一个数整除。(取余后值是
2021-04-28 08:19:36 295 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人