自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (1)
  • 收藏
  • 关注

原创 【Android开发日志】Kotlin 字符串内嵌表达式(21)

语法规则"hello, ${object.name}. nice to meet you!"Kotlin允许我们在字符串内嵌入${}语法结构的表达式,并在运行时使用表达式的执行结果代替这一部分。当表达式内仅有一个变量时,还可以将两边的大括号省略,类似于PHP语法:"hello, $name. nice to meet you!"这种写法相比于+会方便很多。例如我们以前写过的:val Brand = "Huawei"val Price = 4399println("Cellphone(br

2020-08-15 10:37:59 335

原创 【Android开发日志】Kotlin 空指针检查-操作符与函数(20)

?. 操作符与let函数?: 操作符let函数?. 操作符与let函数if (study != null){ study.learnMath() study.learnEnglish() }我们可以用下列写法代替:study?.learnMath()study?.learnEnglish()这样,我们就利用?.吧if语句代替掉了。?: 操作符此操作符左右两边都接受一个表达式,左表达式结果不为空就返回左边表达式的结果,否则返回右边表达式的结果。.

2020-07-26 22:46:32 205

原创 粉丝统一回复

之前发过一期携程酒店的爬取教程,好多粉丝反应说代码不用了,这里给大家统一回复一下。问题一:携程代码无法只返回200,但没有数据,这是怎么回事?这是因为cookies过期了,需要自行在浏览器中登录携程,然后f12获取cookies。将浏览器中的cookies复制到代码中setting中如图位置。代码就可以正常执行了。问题二:想要爬取具体某个城市,怎么修改代码?首先在以下这个网址获取自己城市的代号https://hotels.ctrip.com/Domestic/Tool/AjaxGetCit

2020-07-18 11:20:02 274

原创 STM32中的电路知识(二)

专业知识不能忘,这一期讲讲单片机的知识,以stm32f103为例,谈谈。基础知识GPIO:(英语:General-purpose input/output),通用型输入输出。简单的说就是可以输入或者输出的端口。输出模式:开漏输出、开漏复用功能、推挽式输出、推挽式复用功能开漏输出:开漏输出只能输出低电平,类似于三极管的集电极,要输出高电平需要上拉电阻才能输出我们先来说说集电极开路输出的结构。集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接,所以叫做集电极开路(左边的三极管为反相之用,

2020-07-17 15:25:41 584

原创 st里的电路知识(一)

专业知识不能忘,这一期讲讲单片机的知识,以stm32f103为例,谈谈。基础知识GPIO:(英语:General-purpose input/output),通用型输入输出。简单的说就是可以输入或者输出的端口。在介绍stm32f103之前先介绍一下基础知识:在现实中,通常将只能存储一位数据的电路叫做存储单元,将用于存储一组数据的存储电路叫做寄存器,将用于存储大量数据的存储电路叫做存储器。锁存器:就是输出端的状态不会随输入端的状态变化而变化,仅在有锁存信号时输入的状态被保存到输出,直到下一个锁存信号

2020-07-16 16:39:36 1199

原创 【Android开发日志】Kotlin 空指针检查(19)

在Android系统中,崩溃率最高的异常类型就是空指针。若要分析其根源,主要是因为空指针是一种不受编程语言检查的异常情况,只能有我们自己主动编写判断。Kotlin非常科学地解决了这个问题,他利用编译时判空检查的机制 基本杜绝空指针异常情况。虽然这样代码会比较难写,不过Kotlin提供了一系列的辅助工具使判空过程更加简单。下面我们来看一段程序,仍然是我们以前定义的Student.kt:package com.example.hellowordclass Student(name: String, a

2020-07-08 19:12:49 273

原创 【Android开发日志】Kotlin Lambda编程入门 – Java函数式API(18)

既然我们都学Kotlin了,为什么还有学Java?Android SDK仍然是用Java编写,很多时候调用SDK接口仍然需要一些Java知识。如果我们在Kotlin代码中调用一个Java方法,并且此方法接收一个Java单抽象方法接口函数,就可以使用函数式API。Java单抽象方法接口函数:指接口中只有一个待实现方法,若有多个待实现方法,则无法使用函数式API可能不太好理解,我们使用一个Java原生API中的单抽象方法接口——Runnable接口。而接口里只有一个run()方法。函数的定义如下.

2020-06-20 13:13:57 193 1

原创 【Android开发日志】Kotlin Lambda编程入门 – 集合的函数式API(17)

集合的函数式APILambda定义Lambda表达式的语法结构集合的函数式API—map集合的函数式API—filter集合的函数式API—any与allAPI即Application Programming Interface,应用程序接口。函数式API有很多,这里重点学习函数式API的语法结构,也是Lambda表达式的函数结构。首先我们像一个问题:如何在一个水果集合里找到单词最长的水果?当然我们想到循环整个集合,依次比较长度,找到最长的那个,代码如下:fun main(){ val fr

2020-06-19 08:10:39 179

原创 最新爬取携程酒店信息代码

代码方面,我们使用scrapy框架爬取酒店信息,经过测试发现,使用这种方法不会被封ip和cookie。思路:1.得到城市的编号2.通过编号,进入酒店列表,并且得到酒店总数3.计算酒店页数,构造得到网址4.爬取相关的信息结果截图:爬取字段:‘id’, ‘酒店名称’, ‘地址’, ‘评分’, ‘入住总数’, ‘类型’,‘简称’, ‘维度’, ‘经度’,‘城市’items.pyimport scrapyclass XiechengItem(scrapy.Item): # def

2020-06-18 19:11:54 3578

原创 最新爬取携程酒店信息上:思路讲解

本以为携程的信息很好爬,但是在我目前能力一般的时候,经过尝试,发现了携程真的有太多坑了,虽然说代码和大佬比起来不是最优的,但是可以完成爬取任务。在这里记录一下本次学习过程,为后人乘凉。要爬取所有的酒店信息,就要构造URL,经过观察。发现了每个城市都有一个独自的暗号,就是城市拼音与一个数字结合,构成URL。在通过浏览器抓包可知所有的信息都被藏在了以下这个网址#城市信息https://hotels.ctrip.com/Domestic/Tool/AjaxGetCitySuggestion.as

2020-06-17 17:37:33 2145

原创 【Android开发日志】Kotlin Lambda编程入门 – 创建集合(16)

目录ListSetMapLambda即指希腊字母λ的读音,是一种十分简洁的函数表达式,这种规范在很多语言中都有应用,方面大家更简洁地编写代码。Kotlin里集合分为以下几种: 集合 分类 解释 List List 不可变List集合 MutableList 可变List集合 Set

2020-06-15 07:58:50 177

原创 【Android开发日志】Kotlin 面向对象编程 – 数据类与单例类(15)

目录数据类单例类数据类你或许听说过MVC、MVP、MVVM等架构模式,其中M即指数据类,它们用于将服务器或数据库中的数据映射到内存中。为编程逻辑提供数据模型的支持。数据类一般需要重写以下方法:equals():判断两个数据类是否相等。hashCode():与equals()配套使用,对所收集的大量对象进行搜寻和定位。toString():用于提供更便于阅读的输入日志,数据类默认打印的是一行内存地址。以上方法在创建数据类时Kotlin会在自动帮我们创建,下面我们新建一个类,命名为Mobile

2020-06-10 23:12:23 175

原创 学习笔记:scrapy框架初探

Scrapy是: 由Python语言开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试Scrapy指令:创建项目:scrapy startproject xxx(工程名)进入项目:cd xxx #进入某个文件夹下创建爬虫:scrapy genspider xxx(爬虫名) xxx.com (爬取域)运行爬虫:scrapy crawl XXX(爬虫名)列出所有爬虫:scrapy list

2020-06-10 23:00:18 192

原创 【Android开发日志】Kotlion 面向对象编程 – 接口(14)

接口是用于实现多态编程的的重要组成部分。任何一个类只能继承一个父类,但可以实现任意接口。就像一个孩子只能有一个父亲,但他可以有很多技能。我们继续用之前的Human和Student。我们这里来给Student创建Study接口,让学生学习起来。新建一个名为Study的interface。我们可以在接口函数中定义很多抽象行为,然后再具体类中实现。下面我们定义两个学习行为:interface Study { fun learnMath() fun learnEnglish()}有了

2020-06-10 07:31:18 297

原创 【Android开发日志】Kotlin 面向对象编程 – 构造函数(13)

目录主构造函数次构造函数特殊情况Kotlin的构造函数分为两种:主构造函数和次构造函数。主构造函数最常用的函数,每个类class都默认包含一个主构造函数,你也可以显式地给它指明参数。主构造函数的特点是没有fun这样的函数体,直接写在我们类的名称后面。两种写法如下:class Student1: Human() { var number = "" var grade = 0}class Student2(val number: Number, val grade: String)

2020-06-09 10:08:39 196

原创 【Android开发日志】Kotlin 面向对象编程 - 继承(12)

Android Studio 4.0已发布,此教程已更新至4.0版本。面向对象的一个重要特性就是继承。举个例子:我是一个学生,学生又属于人。我们已经定义了人,而当我们定义学生时,我们只需要继承人的特性;定义一个具体的学生个体时再继承学生的特性即可。不需要重复定义。上一期我们已经定义好了人,下面我们来定义学生类,右键com.example.helloword,新建一个Kotlin的class。下面我们来写Student的类,因为我们要继承自上一期Human的“姓名”、“年龄“等,这里我们只定义学.

2020-06-08 07:56:53 220

原创 【Android开发日志】Kotlin 面向对象编程 - 类与对象(11)

Android Studio 4.0已发布,此教程已更新至4.0版本。面向对象,顾名思义,一定得是“对象”,生活当中的人、电脑、等任何事物,他们都有各自的属性,我们编程里把这些属性封装起来,成为一个个“对象”,叫类的封装。而不同的人、不同的电脑,他们既继承了人、电脑的普遍特性,还有个体差异。这样Kotlin编程就有了类的继承、多态等。下面我们来在Kotlin中创建一个人,也是一个“对象”或类。在com.example.helloword新建一个Kotlin的class。命名为Human。ID.

2020-06-07 10:21:42 236

原创 【Android开发日志】Kotlin 与 循环语句(10)

Android Studio 4.0已发布,此教程已更新至4.0版本。 while循环语句for循环语句程序逻辑语句分主要为三种:顺序语句、条件语句、循环语句。顺序语句:按代码顺序一行一行执行。条件语句:满足设定条件,执行指定语句,有if和when两种循环语句:满足设定条件,循环执行指定语句,有while和for两种下面我们主要讲解循环语句:while循环语句while循环语句有while…与do…while…两种格式。我们先看第一种while…写法:fun learWhile(.

2020-06-06 17:29:26 560

原创 【Android开发日志】Kotlin 与 条件语句(9)

Android Studio 4.0已发布,此教程已更新至4.0版本。 if条件语句when条件语句程序逻辑语句分主要为三种:顺序语句、条件语句、循环语句。顺序语句:按代码顺序一行一行执行。条件语句:满足设定条件,执行指定语句,有if和when两种循环语句:满足设定条件,循环执行指定语句,有while和for两种下面我们主要讲解条件语句:if条件语句if顾名思义,“如果“。一般用作if…else…,我们来看如下写法;if (a > b){ // 若a大于b,将a的值传给sw.

2020-06-06 17:11:33 263

原创 【Android开发日志】Kotlin 与 函数(8)

如上期所示,函数是运行代码的载体,像一节节车厢,各有各的功能,各有各的乘客。上一节我们使用的main()函数,是一个基础的函数,特殊性在于他是一个程序的入口。一个程序开始运行,一定是先从main()开始。定义一个函数是十分自由的,具体格式如下:fun mymethod(param1: Int, param2: Char):Int{ return 0}fun可以译为“定义“。后面的mymethod可以自由起名。(param1: int, param2: char)是要传入的参数,参

2020-06-05 21:22:31 215

原创 【Android开发日志】Kotlin 与 变量(7)

Android Studio 4.0已发布,此教程已更新至4.0版本。本着非主线剧情能简则简的原则,Kotlin学习不再安装新的IDE,不过还是推荐Intelij。本教程我们使用Android Studio来实践。运行打开已经创建的Hello Word工程。在MainActivity同级目录下,新建一个Kotlin File,并命名为NewKotlin。在这里运行,需要先写好一个主函数,并在主函数内写我们学习的代码,前面还会有一个绿色小箭头,选择RUN,可以运行我们所写的代码。

2020-06-05 17:11:32 188

原创 【Android开发日志】Android Log 工具

Log+LogcatAndroid Studio 4.0已发布,此教程已更新至4.0版本。磨刀不误砍柴功,Android作为以后调试程序很重要的工具,对以后的开发会有很大帮助。Android日志工具是引用android.util.Log实现。这个类提供五种子工具来打印日志:Log.v() 用于打印最细小琐碎的日志,级别最低,对应等级叫verboseLog.d() 用于打印调试程序的日志,级别比verbose高,对应等级叫debugLog.i() 用于打印重要数据信息的日志,级别比d.

2020-06-05 08:46:37 388

原创 【Android开发日志】build.gradle 文件详解(6)

build.gradle 文件详解根目录下的build.gradleapp下的build.gradle文件Gradles是一个非常先进的项目构建工具,来源不详述。在第二篇我们说过,有两个build.gradle文件,一个在项目根目录,一个在app文件夹内。根目录下的build.gradle源代码如下:buildscript { ext.kotlin_version = '1.3.71' repositories { google() jcenter(

2020-05-27 19:07:42 410

原创 【Android开发日志】资源放置res目录详解(5)

一、文件夹详解文件很多,我们归纳一下:drawable开头:存放图片layout:存放布局文件,例如此处存放的activity_main.xmlmimap开头:存放应用图标values:存放字符串、样式、颜色等配置。drawable与mimap开头文件,均要创建多个后缀为-xxxhdpi、-hdpi等不同的文件夹,对应着不同分辨率的设备。程序运行时,会根据分辨率自动选择加载哪一个文件夹下的资源。实际运用当中,-xxdpi文件夹即可满足多数机型需求。二、引用所放资源我们首先进入valu

2020-05-25 23:09:31 524

原创 【Android开发日志】“Hello Word!”程序运行过程(4)

目录AndroidMainfest.xmlMainActivity.ktactivity_main.xml"Hello Word!"能够显示运行,主要经历三个关键文件。我们从总的AndroidMainfest.xml开始说。AndroidMainfest.xml源码截图如下:提取主要代码:<activity android:name=".MainActivity"> <intent-filter> <action android:name=

2020-05-25 22:36:41 465

原创 正则表达式(三)捕获与反向引用

捕获与反向引用在一些表达式中往往用()将一些正则表达式圈起来,这就是分组,里面的内容往往被当作一个整体来处理。而在一个正则表达式中一旦用了()那么第一个()想再次引用就可以写为\1,依次类推\2\3\4等等,这就是反向引用,它被认为是再次匹配同一个字符串的快捷指令。例子:捕获组与非捕获组以上那些从左到右计算其开括号来编号的也叫捕获组。那有些是以(?)开头的我们叫非捕获组。表达式解释(?=X )零宽度正先行断言。仅当子表达式 X 在 此位置的右侧匹配时才继续匹配。也就是说

2020-05-25 11:18:41 480

原创 【Android开发日志】解析基于Kotlin的Android程序结构(3)

上一章我们成功运行了“Hello Word!”程序。今天我们理解以下程序结构与代码。一、目录结构打开IDE,默认展示Android结构,这种转化的目录结构便于我们编程。为更好理解程序,我们在屏幕左上方,将“Android”转换为“Project”目录结构目录详细解释如下:.gradle / .idea:文件夹名称前面有“.”均为隐藏文件夹,IDE自动生成,无需关心。 app:项目的仓库,我们编好的程序、程序需要的资源都在这里存放,也是我们编程的重心。 build:项目的编译生

2020-05-23 19:33:43 691

原创 【Android开发日志】Android Studio 3.6.3中文显示教程(2)

对于编程而言,全英文环境有助于能力提高。这里只提供中文显示方法。Android Studio 是Intelij IDEA的改版,我们这里直接使用Intelij的插件即可。 找到Android Studio的安装目录,打开lib文件夹,会看到很多的.jar文件。 下载汉语显示插件,链接: https://pan.baidu.com/s/1sF8qOo7V2SKfm0Yuy5EZag 密码: wkol 我们将resources_zh_CN_2020.1_r1.jar文件复制进去,重启Android .

2020-05-22 00:27:14 1538

原创 【Android开发日志】Android Studio 3.6.3 Ubuntu18.04LTS/Win10安装详细教程(1)

Android Studio 3.6.3是Google2020.04推出的最新正式版本,下面我们使用。 Ubuntu18.04LTS & Android Studio 3.6.3 为什么首先写Ubuntu安装教程,相较于Win10可能出现的Gradle下载问题,Ubuntu不需要安装,解压即用,更加稳定一点。1.我们进入官方页面下载压缩包:https://developer.android.google.cn/studio/自动识别为linux,直接点击下载,Firefox与...

2020-05-20 19:47:16 706

原创 MongoDB Compass可视化与mongodb代码对比

​一、MongoDB应用 京东,使用MongoDB存储商品信息,支持比价和关注功能.阴阳师,数据库用的就是MongoDB百度云,,使用MongoDB管理百度云盘中500亿条关于文件源信息的记录.赶集网,中国著名分类信息网站,使用MongoDB记录pv浏览计数二、MongoDB是什么非关系数据库,简单理解为不用SQL语言的数据库,是一种文档数据库,里面是一堆Json数据,准确的说是BJson的数据(就是二进制的Json数据)。PS:关系数据库是啥?就是满眼全是表,各种各样的表。.

2020-05-20 19:18:21 584

python3.doc转docx.zip 全注释

全注释版,win10下python3操作word,实现批量doc转docx。详细信息请关注vx:小试编程。

2020-05-23

空空如也

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

TA关注的人

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