java中类和函数、方法、属性,以及对象的区别
1 类和函数、方法类的定义,在java中是用class关键字定义的一个结构,类中可以定义函数以及定义变量。
当我们使用java封装了一个实体类时,该实体类中,有一些变量和函数。此时在该类中的函数,我们可以称之为该实体类的方法了,该实体类中的变量,我们可以称之为该实体类的属性。我们这里以一个Person实体类为例。
12345678910111213141516171819202122232425262728293031323334353637public class Person { private String name; //名字 private int age; //年龄 private float height; //身高 //... public Person(String name, int age, float height) { this.name = name; this.age = age; this.height = height; } public ...
java中的接口(interface)和抽象类(abstract)的区别
1 如何定义interface如何在java中定义接口:
12345public interface InterfaceName{ //这里写具体的接口内部的方法 //比如: public void getName();}
2 如何定义abstract如何在java中定义抽象类:
12345678910public abstract class AbsName{ //这里写具体的方法 可以写抽象方法和具体方法 //比如: public void getName(){ return ""; }; //不是抽象方法 public abstract void getAge();}
interface和abstract的相同之处
都是用来定义一个规范的,不写具体的实现
interface和abstract的不同之处
interface内部定义的方法,它的实现类必须将其全部实现
abstract内部定义的方法,继承自它的子类,其子类可以不用全部实现其父类中的方法,普通方法可以不用全部实现 ...
TabError: Inconsistent use of tabs and spaces in indentation
1 问题在使用命令行运行python文件时,出现以下错误:
TabError: Inconsistent use of tabs and spaces in indentation
但是代码什么的都没有问题,最后发现是格式的问题。因为python中默认是使用缩进进行区分代码的,所以如果使用了tab键进行缩进代码,那就回报这个错误。
2 解决方法用空格代替tab即可。
写在最后欢迎大家关注鄙人的公众号【麦田里的守望者zhg】,让我们一起成长,谢谢。
解决python3 UnicodeEncodeError: 'gbk' codec can't encode character '\xXX' in position XX
1 错误在使用爬虫爬取网络数据时,容易报下面的错误,也就是Unicode解码错误。UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 0: illegal multibyte sequence
str转bytes叫encode,bytes转str叫decode,如上面的代码就是将抓到的字节流给decode成unicode数组,我们使用下面的代码测试一下:
1print(b'\xc2\xbb'.decode('utf-8'))
运行结果:UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\xbb’ in position 0: illegal multibyte sequence
从结果可以看出,报错了。和爬虫的错误一模一样。
错误原因解析python语言自身的限制,由于print()方法并不能完全输出所有的unicode编码中的字符,所以我们有时 ...
python中的nonlocal和global关键字解析,python闭包解析
1 namespace在python中。只有模块(module)才会重新开辟一个新的作用域,像if/else,for loop,while loop等是不会开辟新的作用域的。也就是说,在上述这几个循环体或控制体中的变量,在外部也就是主作用域中一样可以调用。看下面代码:
123for i in range(10): s = i print(s)
运行结果:9
从代码中可以看出,这几个控制体中不存在作用域。
2 global上一节讲述了作用域,这里就介绍一下global关键字。先看代码:
1234567num = 100def test(): num = 10 num = num * 2 print(num)test()
运行结果: 20
如果想要在test()函数内部调用外部的num变量,那么就需要使用global关键字。如下:
12345num = 100def test(): global num num = num * 2 print(num)
运行结果:200
3 nonlocal在介绍nonlocal关键字之前,大家需要先了解一下 ...
UnicodeDecodeError: 'gb2312' codec can't decode byte 0x87 in position 16144: illegal multibyte sequence
1 问题UnicodeDecodeError: ‘gb2312’ codec can’t decode byte 0x87 in position 16144: illegal multibyte sequence
2 分析解码错误,我们在用python爬虫爬取网页信息时,通常会遇到编码问题,这是其中的一种,中文编码问题更多。中文编码有如下几种,字符数以次增多:gb2312<gbk<gb18030,如果使用gb2312不能解码,那么可以使用gb18030解码试试
写在最后欢迎大家关注鄙人的公众号【麦田里的守望者zhg】,让我们一起成长,谢谢。
python爬虫如何下载存储图片
12345678def download_photo(): root = "g:/emojis/" url = "https://jums.club/images/avatar.jpg" with open(root + "name.jpg", "wb") as file: r = requests.get(url).content ## This is the main code file.write(r) ## the main code tooif __name__ == "__main__": download_photo()
写在最后欢迎大家关注鄙人的公众号【麦田里的守望者zhg】,让我们一起成长,谢谢。
一些比较好的爬虫项目汇总
English Version
1 爬虫入门
项目名称
项目介绍
python爬虫入门教程
这里主要介绍了一些爬虫的入门教程,非常适合小白入手
2 爬虫登录
项目名称
项目介绍
login-model
这是爬虫中的登录模块演示
3 用户代理(User-Agent)
项目名称
项目介绍
fake-useragent
这里面有很多的用户代理(浏览器),防止被服务器监测到是机器人
4 代理池
这里主要是一些HTTP Proxy代理项目,可以用于爬虫代理服务
项目名称
mitmproxy
haipproxy
scylla
getproxy
5 爬虫项目
项目名称
项目介绍
awesome-spider
这里介绍了很多的爬虫小项目,主要语言用的是python
Scrapy
一个股票数据爬虫,可以通过pip进行安装使用
ruia
一个异步爬虫框架,可以实现高速爬取
weixin_crawler
一个微信公众号爬虫项目,可以爬取一些公众号的文章
WechatSogou
一个微信搜狗搜索的API接口 ...
一些比较优秀的机器学习算法的汇总
English Version
机器学习项目1 预测1.1 时间序列预测
项目名称
项目介绍
LSTM
使用LSTM神经网络进行时间序列数据预测分析, 基于Tensorflow框架、Kerase接口开发网络模型
AIAlpha
该项目是堆叠神经网络预测股票回报的高级实现。
Air_Pollution_Forcast_Beijing
基于Keras的LSTM多变量时间序列预测
TimeSeries_Predict
客流量时间序列预测
TimeSeriesPrediction
洗发水、股票预测等
ARIMA
基于ARIMA的预测
TimeSeriesForecasting
基于统计学的时间序列预测
lstm-rnn-stock-predict
这是一个基于LSTM-RNN算法的线上金融股票价格走势预测的小项目,使用tensorflow框架实现。
TripleExponentialSmoothing
三阶指数平滑算法,对于带有趋势性及周期性的时间序列有不错的预测效果。
ML_stock_qt
基于机器学习算法的A股股票走势预测
inte ...
预测算法简介
0 A few more concept you need to know0.1 什么是bagging和boosting|linkbagging:Bagging是Bootstrap Aggregating的英文缩写,是指一种有放回采样boosting:提升方法(Boosting),是一种可以用来减小监督式学习中偏差的机器学习算法。面对的问题是迈可·肯斯(Michael Kearns)提出的:一组“弱学习者”的集合能否生成一个“强学习者”?弱学习者一般是指一个分类器,它的结果只比随机分类好一点点;强学习者指分类器的结果非常接近真值。
0.2 预测和拟合的区别?
预测:灰色预测的通用性比较强一些,一般场合都可以用,尤其适合那些规律性差且不清楚数据产生机理的情况。
拟合:拟合比较适合于那些清楚数据产生机理,有比较规则的变化趋势的场景,比如已经知道这些数据符合一定的动力学变化规律,这时用指数拟合就比较合适。
在数学建模中,能用拟合的地方尽量用拟合,这样会有具体的函数表达式,更有利于进一步的建模。当然有些问题就是数据的预测,这种情况哪种精度高就用哪种了(建议都用,便于比较),上面所说 ...