close

代码

python

python总结干货分享

python-GD-sec

小编又来分享干货啦!!!这次是python的一些总结、小编下载到一份word文档、发现对方总结的很好、现分享出来给更多学习python的人一起学习进步!!

目录

Python总结

前言  
(一)如何学习Python   
(二)一些Python免费课程推荐   
(三)Python爬虫需要哪些知识?  
(四)Python爬虫进阶   
(五)Python爬虫面试指南
(六)推荐一些不错的Python博客  
(七)Python如何进阶   
(八)Python爬虫入门   
(九)Python开发微信公众号    
(十)Python面试概念和代码
(十一)Python书籍

如何学习python

学习Python大致可以分为以下几个阶段:
1.刚上手的时候肯定是先过一遍Python最基本的知识,比如说:变量、数据结构、语法等,基础过的很快,基本上1~2周时间就能过完了,我当时是在这儿看的基础:Python 简介 | 菜鸟教程

2.看完基础后,就是做一些小项目巩固基础,比方说:做一个终端计算器,如果实在找不到什么练手项目,可以在 Codecademy - learn to code, interactively, for free 上面进行练习。

3. 如果时间充裕的话可以买一本讲Python基础的书籍比如《Python编程》,阅读这些书籍,在巩固一遍基础的同时你会发现自己诸多没有学习到的边边角角,这一步是对自己基础知识的补充。

4.Python库是Python的精华所在,可以说Python库组成并且造就了Python,Python库是Python开发者的利器,所以学习Python库就显得尤为重要:The Python Standard Library ,Python库很多,如果你没有时间全部看完,不妨学习一遍常用的Python库:Python常用库整理 - 知乎专栏

5.Python库是开发者利器,用这些库你可以做很多很多东西,最常见的网络爬虫、自然语言处理、图像识别等等,这些领域都有很强大的Python库做支持,所以当你学了Python库之后,一定要第一时间进行练习。如何寻找自己需要的Python库呢?推荐我之前的一个回答:如何找到适合需求的 Python 库?

6.学习使用了这些Python库,此时的你应该是对Python十分满意,也十分激动能遇到这样的语言,就是这个时候不妨开始学习Python数据结构与算法,Python设计模式,这是你进一步学习的一个重要步骤:faif/python-patterns

7.当度过艰难的第六步,此时选择你要研究的方向,如果你想做后端开发,不妨研究研究Django,再往后,就是你自己自由发挥了。

完整word版本下载地址如下!欢迎各位下载!

read more
站前端

新手简易jquery轮播思路与代码讲解(对于新手、老手勿喷谢谢!)

Jquery

最近身边几位朋友问我js与jquery的问题、其实这个东西很简单不能这么说、只能说做一些小东西很简单、但是很多特效混淆的时候就比较尴尬了。但是今天不讲很难、咱们就做一个每一个网站肯定要用的轮播效果、文章如果有错误欢迎反馈、如果你是一位WEB大佬就别看了、免得看着恶心!谢了。这是给新手入门看看玩玩罢了、真实有千万种写法!勿当真!

首先打开软件、我个人用HBuilder这款软件写WEB、还是挺不错的!

新建项目-名字自取-包含三个文件(js)、(css)、(img)、当然你也可以在html里面直接写内链css和js都是没问题!

项目样式

然后HTML页面写入内容:代码如下

<html>
<head>
    <title>js轮播</title>
    <meta charset="utf-8" />
    <link rel="stylesheet" type="text/css" href="css/js.css" />
    <script type="text/javascript" src="js/jquery.min.js" ></script> --这里是需要一个jQuery的包的
    <script type="text/javascript" src="js/lb.js" ></script>--这是咱们js文件夹里面的自己写的js
</head>
<body>
    <div id="lb">--定义一个框
        <a class="lb1" href="https://www.6r6.cc"><img src="img/4.png" style="width: 1000px;height:500px ;"></a>--定义图片
        <a class="lb1" href="https://www.6r6.cc""><img src="img/xinbanner00.jpg" style="width: 1000px;height:500px ;"></a>--定义图片
        <a class="lb1" href="https://www.6r6.cc""><img src="img/xinbanner02.jpg" style="width: 1000px;height:500px ;"></a>--定义图片
        <div class="btn btn1"><</div>--定义左右按钮(left)
        <div class="btn btn2">></div>--定义左右按钮(right)
        <ul id="tabs">--定义底部 1-2-3的按钮样式
            <li class="tab">1</li>
            <li class="tab">2</li>
            <li class="tab">3</li>
        </ul>
    </div>
</body>
</html>

上面是一个完整的HTML页面 并且也做了注释!如果你需要直接复制的话请删除掉–xxxx这些东西 因为在HTML页面中注释不是这样的哦!小编在网站上用markdown编辑就懒得写标准了!

然后在css页面新建一个css文件 代码如下:

*{
margin: 0 auto;
padding: 0;
text-decoration: none;
list-style: none;
}
.bg{
background-color: #fff;
}
#lb{
width: 1000px;
height: 500px;
border: 1px solid #000;
position: relative;
}
.lb1{
position: absolute;
}
#tabs{
position: absolute;
float: left;
left: 500px;
bottom: 10px;
border-radius: 10px;
padding: 5px 0 5px 0px;
}
.tab{
height: 20px;
float: left;
width: 20px;
line-height: 20px;
text-align: center;
cursor: pointer;
overflow: hidden;
border-radius: 100%;
background-color:#0077e6;
margin-right: 10px;
}
.btn{
position: absolute;
color: #f3f3f3;
top: 200px;
width: 40px;
height: 100px;
font-size: 80px;
font-weight: bolder;
border-radius: 5px;
line-height: 100px;
}
.btn2{
position: absolute;
right: 0px;
}
.btn:hover{
background-color: #F3F3F3;
color: #000;
opacity: 0.8;
}

现在来Js部分

//定义全局变量和定时器
var i = 0;
var timer;
  //用jquery方法设置第一张图片显示,其余隐藏
$(document).ready(function(){
$('#lb').eq(0).show().siblings('#lb').hide();
 //调用showTime()函数(轮播函数)
showTime();
//当鼠标经过下面的数字时,触发两个事件(鼠标悬停和鼠标离开)
$('.tab').hover(function(){
 //获取当前i的值,并显示,同时还要清除定时器
    i = $(this).index();
    Show();
    clearInterval(timer);
},function(){
    showTime();
});
 //鼠标点击左侧的箭头
$('.btn1').click(function(){
    clearInterval(timer);
    if(i == 0 ){
        i = 3
    }
    i--;
    Show();
    showTime();
});
//鼠标点击右侧的箭头
$('.btn2').click(function(){
    clearInterval(timer);
    if(i == 2){
        i = -1;
    }
    i++;
    Show();
    showTime();
});
});
//创建一个showTime函数

function showTime(){
timer = setInterval(function(){
//调用一个Show()函数
    show();
    i++;
     //当图片是最后一张的后面时,设置图片为第一张
    if(i==3){
        i=0;
    }
},2000);
}
//创建一个Show函数
function Show(){
$('.lb1').eq(i).fadeIn(300).siblings('.lb1').fadeOut(300);
$('.tab').eq(i).addClass('bg').siblings('.tab').removeClass('bg');

}

至此代码完成 运行一下(HTML是可以直接运行的哦)

若有不详细的地方欢迎加群讨论哟 487163638 也欢迎web前端爱好者加入我们

read more
Java

面向对象基本特征:继承

【IThome.com】3

1 继承的实现

1.1 继承的基本概念:扩展父类功能

1.2 Java中使用extends关键字完成继承;实现过程clas 子类 extends 父类{}

package com.jikexueyuan.extendsDemo;
class Person{
    private int age;
    private String name;
    public int getAge() {
        return age;
    }
    public String getName() {
        return name;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public void setName(String name) {
        this.name = name;
    }
    //public void tell(){
    //   System.out.println("姓名:"+getName()+"   年龄:"+getAge());
    //}
}
class Student extends Person{
    //private int age;
    //private String name;
    private int score;
    public int getScore() {
        return score;
    }
    public void setScore(int score) {
        this.score = score;
    }
    public void say(){
        System.out.println("成绩:"+getScore()+getName()+getAge());
    }
}
public class ExtendsDemo01 {
    public static void main(String[] args){
        Student s = new Student();
        s.setAge(20);
        s.setName("张三");
        s.setScore(100);
        //s.tell();
        s.say();
    }
}

PersonStudent都属于人,所以Student类可以继承Person,这样Student就可以使用Person的属性,这样可以去掉很多冗余代码如上例中的所有注销的代码。

2 继承的限制

2.1 在Java中只允许单继承

这样属于单继承:

class People{
    private int age;
}
class Worker extends People{
}
class PetWorker extends Worker{
}

而这个样子就不属于单继承,在Java中是不被允许的。

class People{
    private int age;
}
class Worker extends People{
}
class PetWorker extends Worker,People{
}

2.2 子类不能直接访问父类的私有成员,同样需要实现其getset方法来实现。

3 子类对象实例化过程

3.1 在子类对象实例化之前,必须先调用父类中的构造方法,之后调用子类构造方法

实例化子类对象→(先调用父类构造)调用父类构造→(在调用子类构造)调用子类构造

可以通过一段简单代码的执行结果看出:

package com.jikexueyuan.extendsDemo;
class Father{
    private int age;
    private String name;
    public Father(){
        System.out.println("父类的构造方法");
    }
}
class Son extends Father{
    public Son(){
        System.out.println("子类的构造方法");
    }
}
public class ExtendDemo03 {
    public static void main(String[] args){
        Son s = new Son();
    }
}

4 方法重写与super关键字

4.1 在继承中,也存在着重写的概念,其实就是子类定义了和父类同名的方法

4.2 定义:
– 方法名称相同,返回值相同,参数也相同。

定义2个类:

class A{
    public void tell(){
        System.out.println("我是tell方法");
    }
}
class B extends A{
    public void tell(){
        System.out.println("我重写了tell方法");
    }
}

通过实例化B 然后调用tell()方法:

public static void main(String[] args){
        B b = new B();
        b.tell();
    }

发现不会输出“我是tell方法”,只会输出“我重写了tell方法”。如果非要调用A类里的tell()方法,这时候就需要在B类里面加上super.tell();才能输出:

class B extends A{
    public void tell(){
        super.tell();
        System.out.println("我重写了tell方法");
    }
}

4.3 重写的限制

被子类重写的方法不能拥有比父类方法更加严格的访问权限。

加入父类有一个default级别的方法,在子类中重写这个方法的时候就不能用private级别,但可以使用default和public2个级别。通常情况下是子类的访问级别和父类一样。

4.4 访问权限

private < default < public

什么都不写就是default

  • private只能在当前方法内访问。
  • default只能在同一包下访问。
  • public 可以在当前工程中访问。

4.5 super关键字:

强行调用父类的方法的执行。比如上面的强行调用A类的tell()方法执行。

而在构造方法中,不用加super,父类的构造方法也会执行,这是因为java会自动给构造方法加上super。

4.6 super不一定在重写中使用,也可以表示那些方法是从父类继承而来的。

5 重写与重载的区别

No 区别点 重载 重写
1 单词 Overloading Overriding
2 定义 方法名称相同,参数的类型或个数不同 方法名称、参数的类型、返回值类型全部相同
3 权限 对权限没有要求 被重写的方法不能拥有比父类更加严格的权限
4 范围 发生在同一个类中 发生在继承中
read more

Java面向对象多态性

【IThome.com】6

概要:

  1. 多态性
  2. instanceof关键字
  3. 抽象类的应用
  4. 接口的应用

多态性

  1. 多态性的体现:
    1. 方法的重载和重写
    2. 对象的多态性
  2. 对象的多态性
    1. 向上转型:程序会自动完成
      父类 父类对象 = 子类实例
    2. 向下转型:强制类型转换
      子类 子类对象 = (子类)父类实例
package com.jikexueyuan.pol;
class A{
    public void tell1() {
        System.out.println("A--tell1");
    }
    public void tell2() {
        System.out.println("A--tell2");
    }
}
class B extends A{
    public void tell1() {
        System.out.println("B--tell1");
    }
    public void tell3() {
        System.out.println("B--tell3");
    }
}
public class PolDemo01 {

    public static void main(String[] args) {
        //向上转型
        B b = new B();
        A a = b;
        a.tell1();//tell1重写的
        a.tell2();

        //向下转型,需要先完成向上转型。
        A aa = new B();
        B bb = (B)aa;
        bb.tell1();
        bb.tell2();
        bb.tell3();
    }

}

对象多态性的使用

package com.jikexueyuan.pol;
//为了实现调用每一个子类都会执行父类的tell1方法。
class A1{
    public void tell1() {
        System.out.println("A--tell1");
    }
}
class B1 extends A1{
    public void tell2() {
        System.out.println("B--tell2");
    }
}
class C1 extends A1{
    public void tell3() {
        System.out.println("C--tell3");
    }
}
class D1 extends A1{

}
public class PolDemo2 {
    public static void main(String[] args) {
        say(new B1());
        say(new C1());
        say(new D1());
    }
    //这个方法是不管传递的是B1还是C1都要调用到A1中的tell方法的执行。
    public static void say(A1 a) {
        a.tell1();
    }
}


instanceof关键字

在Java中可以使用instanceof关键字判断一个对象到底是不是一个类的实例。返回的是一个布尔类型。

a instanceof A


抽象类的应用

无论什么时候不要去继承一个已经完成好的类

package com.jikexueyuan.pol;
//无论什么时候不要去继承一个已经完成好的类
abstract class Person{
    private int age;
    private String name;
    public Person(int age, String name) {
        this.age = age;
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public abstract void want();
}

class Student extends Person{
    private int score;
    public int getScore() {
        return score;
    }

    public void setScore(int score) {
        this.score = score;
    }
    public Student(int age,String name,int score) {
        super(age, name);
        this.score = score;
    }

    @Override
    public void want() {
        System.out.println("姓名:"+getName()+"年龄"+getAge()+"成绩"+getScore());
    }

}
class Worker extends Person{
    private int money;
    public int getMoney() {
        return money;
    }
    public void setMoney(int money) {
        this.money = money;
    }
    public Worker(int age,String name,int money) {
        super(age,name);
        this.money = money;
    }
    @Override
    public void want() {
        System.out.println("姓名:"+getName()+"年龄"+getAge()+"工资"+getMoney());
    }

}
public class AbsDemo01 {

    public static void main(String[] args) {
        Student student = new Student(10, "xiaoming", 100);
        student.want();
        Worker worker = new Worker(30, "daming", 1000);
        worker.want();
    }

}


接口的应用

usb是一个标准,U盘和打印机的执行都得按照USB的标准进行工作。

package com.jikexueyuan.pol;
//usb是一个标准,U盘和打印机的执行都得按照USB的标准进行工作。
interface USB{
    void start();
    void stop();
}
class Comquter{
    public static void work(USB usb) {
        usb.start();
        System.out.println("工作中");
        usb.stop();
    }
}
class USBDisk implements USB{

    @Override
    public void start() {
        // TODO Auto-generated method stub
        System.out.println("u盘开始工作");
    }

    @Override
    public void stop() {
        // TODO Auto-generated method stub
        System.out.println("u盘停止工作");
    }

}
class Printer implements USB{

    @Override
    public void start() {
        // TODO Auto-generated method stub
        System.out.println("打印机开始工作");
    }

    @Override
    public void stop() {
        // TODO Auto-generated method stub
        System.out.println("打印机停止工作");
    }

}
public class InterDemo01 {

    public static void main(String[] args) {
        Comquter.work(new USBDisk());
        Comquter.work(new Printer());
    }

}

read more