java基础
String字符使用加号拼接,实际上是新建一个StringBuffer对象,调用apped方法,最后再转为String方法。
StringBuff的append方法添加数据并返回对象本身(链式编程)
ArrayList<>在指定位置添加元素不会替换,指定元素之后的所有元素后移
继承:变量先看方法内部有没有,没有到本类成员变量去找,再没有到父类成员变量去找,不考虑父亲的父亲。
this代表本类对象的引用,super表示父类对象引用(二者都可以访问构造方法)
子类可能需要用到父类,所以子类初始化,父类也初始化 ,子类第一句默认super()
视频super内存图
方法重写(注解Override)可以用super.调用父类方法,私有方法不能重写,子类方法访问权限不能更低(public>默认>私有)
Java只支持单继承,不支持多继承,还支持多层继承
final修饰基本数据类型,基本数据类型不能改变,修饰引用类型,引用变量的地址值不能改变。
static表示共享,静态,被static修饰的成员变量建议使用类名来访问。
多态:同一个对象在不同时刻表现出来不同的不同形态 ...
Python学习-封装
封装12345678910111213141516171819class T(object): #这里的self是实例化对象,例如下边的t def __init__(self,name): self.name=name def sname(self): print(self.name)t=T("王子")#t.__dict__里存的是实例化对象的属性#{'name': '王子'}print(t.__dict__)#t.__class__存的是创建实例化对象的类#<class '__main__.T'>print(t.__class__)t.sname()
Python学习-多任务
线程代码实现直接使用线程模块123456789101112131415161718192021# 导入线程模块import threadingdef sing(): print("我在唱歌")if __name__ == "__main__": #创建线程对象 t=threading.Thread(target=sing) #可以带参,传元组,只传一个后边带逗号 #t=threading.Thread(target=sing,args=(,)) #创建执行线程 t.start() #获取所有线程 threading.enumerate() #查看线程数量 len(threading.enumerate())
继承线程类12345678910111213import threadingimport time#继承threading模块的Thread类class MyThread(threading.Thread): def run(self): for i in range(3): ...
Python学习-socket
socket简介大部分网络应用都是用socket收发信息,例如聊天软件和浏览器。
使用方法UDP注意
socket套接字为全双工
当socket接收数据时操作系统会对socket未读取的信息进行缓存
发送数据
创建套接字
使用套接字收数据
关闭套接字
1234567891011121314import socket#前边参数表示使用IPV4还是IPV6,后边表示使用TCP还是UDPs=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)#可以绑定端口s.bind(('',7890))#前边参数为字节信息,后边为一个元组,包括对方ip和端口信息,首先要能ping的通.#前边参数也可以使用.encode(utf-8)s.sendto(b"hello",("192.168.33.5",8080))#关闭套接字s.close()
接收数据
创建套接字
绑定自己信息
接收信息
关闭套接字
123456789101112131415161718192021import socket#前边 ...
Python数据分析之matplotlib
# Python数据分析之matplotlib
是什么matplotlib是模仿MATLAB构建,是最流行的Python底层绘图库,主要做数据可视化图表
为什么
将数据可视化,更直观的呈现
是数据更客观,更具说服力
虽然不常用,但在后序学习中经常用到
使用基础绘图和调整x轴的刻度12345678910111213141516171819202122232425262728from matplotlib import pyplot as plt #range函数左闭右开,最后一个参数为步长x=range(2,26,2) y=[15,13,14.5,17,20,25,26,26,24,22,18,15]#设置图片大小,figsize长和高,dpi为清晰程度,每英寸上像素点的个数plt.figure(figsize=(20,8),dpi=80) #绘图plt.plot(x,y)#设置x轴的刻度,参数为数组,y同理#ticks数组,表示在x轴的什么位置#[label]数组.在对应的ticks处显示什么#ratation为旋转角度,实际此处 ...
TensorFlow安装
# TensorFlow安装
安装Anaconda教安装Anaconda的博客在Anaconda中安装的python和电脑中原有的python不冲突
安装tensorflow安装教安装tensorflow的视频安装完Anaconda,Anaconda自带Anaconda prompt降低python版本(Anaconda prompt中使用)
1conda install python=xxx(版本号)
2.问题
conda安装环境报错:Solving environment: failed with initial frozen solve.解决办法
在jupyter上运行Anaconda自带jupyter,运行后在new选择python3,即可使用tensorflow,jupyter报错可以尝试在Anaconda的可视化界面更新jupyter.
scrapy重构壁纸爬虫
scrapy重构壁纸爬虫Spider123456789101112131415161718192021222324252627282930313233343536373839# -*- coding: utf-8 -*-import scrapyfrom scrapy.http import Requestfrom spider_test.items import ImgItemclass CsdnSpider(scrapy.Spider): name = 'girl' allowed_domains = ['2717.com'] start_urls = ['https://www.2717.com/ent/meinvtupian/list_11_1.html'] def parse(self, response): print(response) lis = response.xpath("//div[@class='MeinvTuPianBox ...
scrapy爬虫框架
scrapy爬虫框架创建一个scrapy项目1scrapy startproject 项目名称
scrapy.cfg:爬虫项目的配置文件。
init.py:爬虫项目的初始化文件,用来对项目做初始化工作。
items.py:爬虫项目的数据容器文件,用来定义要获取的数据。
pipelines.py:爬虫项目的管道文件,用来对items中的数据进行进一步的加工处理。
settings.py:爬虫项目的设置文件,包含了爬虫项目的设置信息。
middlewares.py:爬虫项目的中间件文件,
运作流程1.Engine首先会打开一个起始url,并找到相对应的Spider来处理这个url访问返回的响应结果。
2.在Spider的处理过程中,会将接下来要访问的url包装成Request,Engine会将Request从Spider取出,交给Scheduler进行调度。
3.Engine从Scheduler获取一个Request。
4.Engine将获取到的Request经由下载器中间件(Downloader Middleware)发送给Downloader进行下载并生成 ...
爬取壁纸
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384import osimport timeimport requestsfrom scrapy import Selectorfrom concurrent.futures import ThreadPoolExecutorfrom queue import Queueheaders = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36'}class BoundedThreadPoolExecutor(Threa ...
python多线程池
12345678910111213141516171819from concurrent.futures import ThreadPoolExecutorfrom queue import Queue#导包class BoundedThreadPoolExecutor(ThreadPoolExecutor):#重写线程池类,使创建的任务数量为最大线程的2倍 def __init__(self, max_workers=None, thread_name_prefix=''): super().__init__(max_workers, thread_name_prefix) self._work_queue = Queue(max_workers * 2) executor = BoundedThreadPoolExecutor(max_workers=8)#创建实例hrefs=['www.1.com','www.2.com','www.2.com']for href i ...