手把手带你进行Golang环境配置

前言

大家好,我是星期八,是一个每天都要在镜子前给自己梳仅剩三根头发的三年码农

本次我们来安排一下如何在win平台上配置Go语言开发环境。

整体来说,Go配置环境还是挺轻松的,和Python差不多,并且会自动添加环境变量。

下载地址

Go官方镜像站点:

https://golang.google.cn/dl/

选择默认的最高版本就好,Go代码向下兼容版本之间的差异并无所谓

手把手带你进行Golang环境配置

安装

1、找到下载好的安装文件。

手把手带你进行Golang环境配置

2、双击进行安装

手把手带你进行Golang环境配置

3、选择同意

手把手带你进行Golang环境配置

4、自定义安装位置。

手把手带你进行Golang环境配置

5、点击install进行安装。

手把手带你进行Golang环境配置

6、安装进行中,等到安装完成。

手把手带你进行Golang环境配置

7、点击finish,安装完成。

手把手带你进行Golang环境配置

查看是否安装成功

上述安装过程没问题后,打开CMD窗口,输入go version命令,如图所示

手把手带你进行Golang环境配置

注:由于已经是1.11+版本,我们以后使用go mod进行管理依赖,不需要配置GOPATH等奇怪的东西。

配置GOPROXY(代理)

可能我们需要借用Go下载一些包什么的。

但是默认官网源,GOPROXY=https://proxy.golang.org,direct,在国内访问不到

输入go env查看Go配置

手把手带你进行Golang环境配置

需要修改成国内镜像站点,这里推荐:

https://goproxy.io

执行以下命令,进行修改

go env -w GOPROXY=https://goproxy.cn,direct

重新打开CMD,执行go env查看Go配置

手把手带你进行Golang环境配置

Go开发编辑器

Go现在的开发编辑器主要有VSCode,Goland两种。本次教程推荐的是Goland,和Pycharm同属一家公司。Goland的安装,破解,在此不做叙述。

为什么没选择VSCode

刚开始写Go时,其实我是用的也是VSCode,但是我在使用时发现,VSCode总是不自动提示,并且设置了自动保存也常常自动失效,经历了几次折腾之后,还是拥抱了专为Go开发的IDE,Goland!!!,真香。

结尾

我是码农星期八,本文到此就先告一段落咯,下篇正在筹备。如果你觉得文章还可以,记得点赞支持我们哈。感谢你的阅读~~

手把手教你进行Mysql查询操作

大家好,我是IT共享者,人称皮皮。今天给大家讲讲MySQL中的查询操作。

前言

我们在以前,大概学了一下如何通过命令创建数据库,创建表等基本操作。

但是实际上啊,至少在我的实际工作中,用到的不是太多,了解就可以。

因为我们可以通过一些可视化软件,像Navicat for MySQL等。

可以很方便的帮助我们创建数据库,创建表,修改表等操作。

Navicat for MySQL简单示例

创建数据库

使用Navicat for MySQL连接好一个Mysql服务之后。

  1. 右击–> 新建数据库

  1. 选择新建数据库信息字符集一定要选择utf8mb4 — UTF-8 Unicode,这个表示支持存储Emoji表情。排序规则一定要选择utf8mb4_general_ci。至于为什么,我也不知道…,原谅我是个码农吧。

就这样,一个数据库创建完成了,是不是很轻松。

创建表

  1. 右击表–> 新建表

  1. 制定表结构
  2. 保存表(Ctrl+s)

设计表

在实际中,我们常常会更改表结构,也叫设计表

  1. 右击表–>设计表
  2. 修改表

3.保存即修改

查询

上述主要复现了一下如何通过可视化软件操作数据库,确实会比直接命令方便很多很多。

但是查询这个操作,那可视化软件就真的无能为力了。

毕竟我们不管是封装在后台还是自己的软件中。

都是要使用原生SQL的,这个是无法避免的,并且原生SQL查询是最灵活的!!!

终于迎来了最最最重要的环节,学习原生sql。

需求分析

假设我们现在要做一个学生管理系统,所以首先确定,会有一个学生表,用于存放学生的信息,像姓名了,年龄了,性别了,等。

然后想了又想,学生肯定要属于哪个班级的,张三是一班的,李四是二班的,等。

所以我们可能就会有两张表了,一个是学生信息表,一个是班级表,然后学生属于哪个班级。

就像小时候戴的学生胸牌一样,姓名:xxx,班级:xxx等。

想了想,我觉得表结构大概如下

表结构图

表结构图.xlsx

表结构代码

school_test.sql

应该通过这两张表,基本可以把我们的sql语法,学的差不多,一起来看看叭。

查询(select)

既然表里面有这么多数据,那就需要查询了,首先是。

查询所有

sql

-- 语法
SELECT * from <表名>;
-- 例如,查询学生表
SELECT * from student;

执行结果

where条件查询

但是有时候,我们可能需要查询带有一些条件的,比如id=1的,或者name=张三的等。

这时候就需要用到where。

sql

-- 语法
SELECT * from <表名> where <条件>;
-- 例如,查询id=1的数据
SELECT * from student where id=1;

执行结果

这样,我们就把id=1的数据查找出来了。

同理,还可以写其他条件。

查询性别为男的(gender=男)

SELECT * from student where gender="男";

执行结果

这样,就把gender=男的都查出来了。

where多个条件查询(and)

假设现在表内容如下。

有俩琪琪,一个是男琪琪,一个是女琪琪,那我们查的时候,肯定要区分是男的还是女的琪琪了。

所以这时候需要where多个条件了。

and的意思是查询满足所有条件的数据。

sql

-- 语法
SELECT * from student where <条件> and <条件> ...;
-- 例如,查询男琪琪
SELECT * from student where name="琪琪" and gender="男";

执行结果

这样,通过多个条件就卡住了更精准的数据。

select 选择列

在上面使用时,我们使用的都是select * from <表名>。

假设我们的数据如下

select *就表示,选择所有列

结果如下

如果是select id,name age,表示选择指定列

结果如下

select还能给列起别名

例如

SELECT id,name as "姓名",age from student;

执行结果

总结

本章主要讲述了如何使用Navicat for MySQL新建数据库,新建表,设计表等简单操作。

后续又根据实际需求设计出简单的学生表班级表,并且简单是使用了select查询。

后来又讲解select *和select 列1,列2的区别。

如果在操作过程中有任何问题,记得下面留言,我们看到会第一时间解决问题。

敬往事一杯酒,自此不再回头。

我是码农星期八,如果觉得还不错,记得动手点赞一下哈。感谢你的观看。

如果在操作过程中有任何问题,记得下面留言,我们看到会第一时间解决问题。

手把手教你利用JavaScript 获取任意网站图片链接

前言

大家好,我是IT共享者,人称皮皮。

妹纸图这个网站想必大家都非常熟悉了,老司机的天堂。小编第一次进表示身体逐渐变得空虚,表示一定要克制自己,远离这种正能量的网站。话不多说,今天带大家获取妹纸图上的图片链接。然后大家都懂得。

一、项目准备

360浏览器,仅此而已

二、项目目的

获取页面所有美女图片

三、项目步骤

1.打开浏览器,搜索图片,我们以美女图片为例:

画面太美,不忍直视。

2.打开浏览器控制台

F12,即可打开浏览器控制台,我们今天要做的是获取所有的图片链接,顺便查看下图片。如下图:

今天我们就是要在这里面获取到所有的图片链接,相信没接触过前端的人肯定对此一无所知,但是小编接下来讲过了之后你还是一无所知,那就是你的不对了。

3.控制台功能大揭秘

大家可能觉得这个地方没啥用处,啥都没有,还不如Element Network用处大;诚然前两者的确用处很大,可以用来分析网页结构和网页请求,但是我想说的是控制台的功能你永远不要小瞧了,因为它可以使你在开发过程中能快速的见到效果图,比如,你写个代码,但是你想看看它现在能否运行,一般的做法就是写个HTML+CSS然后将JavaScript嵌入到里面去,这样做显然太麻烦,而且你修改后还得在刷新才能浏览器中运行看到效果,到最后就是浏览器和编辑器频繁切换,影响开发速度和效率甚至占用多余的系统资源。于是,控制台应运而生,它使得我们可以轻松的使用JavaScript代码而无需再搭配HTML和CSS才能运行,一个Console统统搞定,这就是我们刚刚说的控制台。我们可以先来看看它的功能:

可以看到,它是有自动提示功能的,而且比任何三方IDE的都要全面,因为它是和浏览器配套使用的,而其它IDE则无法做到这么齐全,所以你可以看到有时候如果你想用某种方法它不会提示,那就只有一个原因,就是你用错了。

1).改变它的编辑状态

控制台输入:

![4](4.jpgdocument.body.contentEditable=true

在编辑状态下,我们的点击操作是没有任何作用的,也就是说只能修改,如果想还原,刷新一下浏览器即可。

2).定位特定元素

这里我们可以先看看我们要看的浏览器图片元素的信息,可以先打印出所有的图片 ,这里使用一个特殊符号:

我们可以看到,通过这个语法糖可以打印当前页面所有的图片信息,显示70,说明这个页面有70张图片,当小编再次滚动鼠标时发现图片数量就变多了,变成了136张图片,这说明它是Ajax加载的。

除了这种获取图片的方式外,还可以这样:

document.images

得到的结果和上面的一模一样,有了这几样的知识点积累,我们现在就可以轻松获取所有的图片链接了。

4.获取图片链接和图片名

这里我们要把获取到的图片添加到数组中,然后在遍历即可打印出所有的图片。

1).建立数组存放所有的图片

ab=document.images #获取当前页面所有图片
var aa=[]           #建立数组
for(const y of ab){    #建立const变量使得无法修改
    aa.push(y); #把图片装进数组
}

2).遍历数组打印图片链接

这里可以使用多种方法,小编一 一介绍。

1)).For …in

for(const a in aa){
    console.log(aa[a])
}

2)).For…of

for(const a of aa){
    console.log(a)
}

3)).ForEach

aa.forEach(function(val,item,array){
  console.log(val)
});

4)).Map

![10](10.jpgaa.map(function(val,item,array){
  console.log(val)
});

可以看到第四种方法和第三种方法差不多,但是它们还是有差别的,前者是没有返回值的,而后者有并且后者支持修改返回值。虽然我们打印出了图片链接,但是图片名字并没有打印出来,于是小编开始找图片名字:

发现它在Div标签里,于是小编开始找满足条件的Div:

document.querySelectorAll('div.img_tit')#精确找到所有类名为img_tit的Div
document.getElementsByClassName('img_tit')#找到所有类名为img_tit

然后我们先输出图片名再输出图片链接,这样就可以使用循环然后进行判断,如下图:

var a=0;
do{
  a++;
  if(a%2==0){
    console.log(aa[a])
}
    else{
    console.log(ac[a])
  }


}
while(a<ac.length)

可以看到按照顺序打印出了。另外,我们发现当我们打印出了这些结果值后感觉控制台都已经爆满了,我们想清空这些信息那该怎么办了?一行代码就能搞定啦。

当然,这项功能你可别指望它能在你控制台相当干净的时候起作用。看了这么多了我们再来看看图片的查看功能吧。

5.图片查看

希望上面的方法应该不会让读者眼花缭乱才是,因为Js是一门动态语言,所以它的骚操作实在是太多了,你懂的。言归正传,如果我们现在想快速查看某一张图片,那么怎么办呢?有人说单击它,我想告诉你的是,虽然这可以实现查看功能,但这是在被包裹的网页中查看,如果我们在单独的网页中查看了,比如说这样:

那我们要想只看这一张图片而不看其它的内容了,那又该怎么办了?最传统的方法:

点击红色箭头处,可以看到如下图:

感觉是不是就好多了,没有其它的东西干扰我们,专心致志的看图,多爽。但是我们开发者可不能这么做,因为太没技术含量了,我们要时时刻刻挑战自己;所以我决定用JS代码来查看这张图片。

我们可以先看看这个,代码如下:

function view(src,filename) {
                var link = document.createElement('a');#创建a标签
                link.setAttribute("download", filename);#设置download属性
                link.href = src;#设置href属性
                document.body.appendChild(link);#将a标签添加到网页主体中
                link.click();
                document.body.removeChild(link);#删除a标签
            }
view('https://p0.ssl.qhimgs1.com/bdr/326__/t0160c8456511be3c4e.jpg','t0160c8456511be3c4e.jpg')

可以看到我们成功在浏览器中查看了这张图片。

四、总结

突然发现小编还是比较有才的,这都能被小编捕捉到,不过还是不能太得意,以免翻车。另外,如果大家想在自家服务器上添加图片下载功能,超简单的,一行代码搞定。

<a href="http://localhost:8080/12.jpg" download="12.jpg">点我下载</a>

这样就能生成一个下载图片的点击链接了。

一篇文章帮助你理解跑马灯的滚动原理

走马灯效果其实就是利用<marquee>标签进行图片和文字滚动,设置的样式不一样,滚动的效果就不一样,实现“走马观花”的效果。

一、滚动方式

1. 普通滚动

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>


    </body>
  <marquee>这里是您要填的内容</marquee>
</html>
一篇文章帮助你理解跑马灯的滚动原理

1.1 文字碰到左边就会停止

<marquee behavior="slide">这里是您要填的内容</marquee>
一篇文章帮助你理解跑马灯的滚动原理

1.2 文字碰到右边就会停止

<marquee behavior=”slide” direction=”right”>这里是您要填的内容</marquee>

一篇文章帮助你理解跑马灯的滚动原理

2.图片滚动

2.1 预设滚动

图片滚动到右边界,自动再从左边滚动。

<marquee behavior="scroll"><img src="img/border.png"></marquee>
一篇文章帮助你理解跑马灯的滚动原理

2.2 来回滚动

<marquee behavior="alternate"><img src="img/border.png"></marquee>
一篇文章帮助你理解跑马灯的滚动原理

2.3 滚动的方向

向左滚动

<marquee direction="left"><img src="img/border.png"></marquee>

向右滚动

<marquee direction="right"><img src="img/border.png"></marquee>

向下滚动

<marquee direction="down"><img src="img/border.png"></marquee>

向上滚动

<marquee direction="up"><img src="img/border.png"></marquee>
一篇文章帮助你理解跑马灯的滚动原理

二、参数

1. 设定滚动次数(可自行更改参数)

<marquee loop="2">这里是您要填的内容</marquee>

2. 设定背景颜色 (16进位颜色或文字输入)

<marquee bgcolor="#??????">这里是您要填的内容</marquee>

3. 设定滚动宽度

为了方便辨别,这里加上bgcolor属性。

<!doctype html>
<html lang="en">


    <head>
        <meta charset="UTF-8">
        <title>Document</title>


        <body>
        <div >
            <p>初始化</p>
            <marquee bgcolor="red"; >这里是您要填的内容</marquee>
        </div>
        <div>
            <p>设置高度</p>
            <marquee bgcolor="aqua";width="380">这里是您要填的内容</marquee>
        </div>


</body>
</html>
一篇文章帮助你理解跑马灯的滚动原理

4. 设定滚动高度

<!doctype html>
<html lang="en">


    <head>
        <meta charset="UTF-8">
        <title>Document</title>


        <body>
        <div >
            <p>初始化</p>
            <marquee bgcolor="red"; >这里是您要填的内容</marquee>
        </div>
        <div>
            <p>设置高度</p>
            <marquee bgcolor="aqua"; height="38">这里是您要填的内容</marquee>
        </div>


</body>
</html>
一篇文章帮助你理解跑马灯的滚动原理

5. 设定滚动速度 (可自行更改参数)

<marquee scrollamount="30">这里是您要填的内容</marquee>
一篇文章帮助你理解跑马灯的滚动原理

三、总结

本文以html为基础,主要介绍了常见的效果(跑马灯)的滚动原理,详细介绍了三种常见的滚动以及其相关属性,以及对设置参数时遇到的难题一一解答,希望能够帮助你学习。

如何来理解Python中的字典数据类型

大家好,我是IT共享者,人称皮皮。今天给大家讲解下Python中的字典数据类型。

一、前言

字典是Python中的数据类型,可让将数据存储在键/值对中。

二、什么是字典理解?

字典理解是创建字典的一种优雅简洁的方法。

字典理解优化

使用字典理解优化函数。

例:

# 字典理解例:
square_dict = {num: num*num for num in range(1, 11)}
print(square_dict)

运行结果:

注·:

创建了square_dict带有数字平方键/值对的字典。但是,使用字典理解可以使在一行中创建字典。

三、使用字典理解

字典理解的最小语法为:

dictionary = {key: value for vars in iterable}

1. 图解析语法

让将此语法与上例中的字典理解进行比较。

2. 案例

如何使用字典理解

例:

#item price in dollars
old_price = {'milk': 1.02, 'coffee': 2.5, 'bread': 2.5}


dollar_to_pound = 0.76
new_price = {item: value*dollar_to_pound for (item, value) in old_price.items()}
print(new_price)

输出结果

注:

可以看到以美元为单位检索商品价格并将其转换为英镑。使用字典理解使此任务更加简单和短。

四、字典理解中的条件

可以通过添加条件来进一步自定义字典理解。让来看一个实例。

案例

1. 如果条件字典理解

例:

original_dict = {'jack': 38, 'michael': 48, 'guido': 57, 'john': 33}


even_dict = {k: v for (k, v) in original_dict.items() if v % 2 == 0}
print(even_dict)

输出结果

可以看到,由于if字典理解中的子句,仅添加了具有偶数值的项目。

2. 多重if条件字典理解

例:

original_dict = {'jack': 38, 'michael': 48, 'guido': 57, 'john': 33}


new_dict = {k: v for (k, v) in original_dict.items() if v % 2 != 0 if v < 40}
print(new_dict)

输出结果

在这种情况下,仅奇数值小于40的项目已添加到新字典中。

这是因为if字典理解中有多个子句。等效于and必须同时满足两个条件的操作。

3. if-else条件字典理解

例:

original_dict = {'jack': 38, 'michael': 48, 'guido': 57, 'john': 33}


new_dict_1 = {k: ('old' if v > 40 else 'young')
    for (k, v) in original_dict.items()}
print(new_dict_1)

输出结果

在这种情况下,将通过子典理解来创建新字典。

价值大于等于40的商品的值为“old”,而其他商品的值为“young”。

五、嵌套字典理解

可以将字典理解本身添加到字典理解中以创建嵌套字典。

案例

具有两个字典理解的嵌套字典

例:

dictionary = {
    k1: {k2: k1 * k2 for k2 in range(1, 6)} for k1 in range(2, 5)
}
print(dictionary)

输出结果

注:

在嵌套字典中构造了一个乘法表,用于2到4的数字。每当使用嵌套字典理解时,Python都会首先从外部循环开始,然后再进入内部循环。

六、使用字典理解的优势

如所见,字典理解大大缩短了字典初始化的过程。

它使代码更具pythonic风格,在的代码中使用字典理解可以缩短代码行,同时保持逻辑完整。

七、总结

本文基于Python基础,介绍了如何使用字典。通过分类对每一模块,进行详细的讲解。使用图解析语法,实例代码演示,运行效果图的展示,能够帮读者更好的理解。

在实际案例中遇到的问题,提供了一些有效的解决方案。使用Python语言,能够更直观的,加深读者对内容的理解。

代码很简单,希望能够帮助你更好的学习。

一篇文章带你了解HTML的网页布局结构

大家好,我是IT共享者,人称皮皮。这篇我们来讲讲CSS网页布局。

一、网页布局

网页布局有很多种方式,一般分为以下几个部分:头部区域、菜单导航区域、内容区域、底部区域


1. 头部区域

头部区域位于整个网页的顶部,一般用于设置网页的标题或者网页的 logo:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS 项目(runoob.com)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body {
  margin: 0;
}


/* 头部样式 */
.header {
  background-color: #f1f1f1;
  padding: 20px;
  text-align: center;
}
</style>
</head>
<body>


<div class="header">
  <h1>头部区域</h1>
</div>


</body>
</html>


2. 菜单导航区域

菜单导航条包含了一些链接,可以引导用户浏览其他页面:

/* 导航条 */
.topnav {
  overflow: hidden;
  background-color: #333;
}
 
/* 导航链接 */
.topnav a {
  float: left;
  display: block;
  color: #f2f2f2;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}
 
/* 链接 - 修改颜色 */
.topnav a:hover {
  background-color: #ddd;
  color: black;
}

3. 内容区域

内容区域一般有三种形式:

  • 1 列:一般用于移动端。
  • 2 列:一般用于平板设备。
  • 3 列:一般用于 PC 桌面设备。

不相等的列

不相等的列一般是在中间部分设置内容区域,这块也是最大最主要的,左右两次侧可以作为一些导航等相关内容,这三列加起来的宽度是 100%。

例:

.column {
  float: left;
}
 
/* 左右侧栏的宽度 */
.column.side {
  width: 25%;
}
 
/* 中间列宽度 */
.column.middle {
  width: 50%;
}
 
/* 响应式布局 - 宽度小于600px时设置上下布局 */
@media screen and (max-width: 600px) {
  .column.side, .column.middle {
    width: 100%;
  }
}

4. 底部区域

底部区域在网页的最下方,一般包含版权信息和联系方式等。

.footer {
  background-color: #F1F1F1;
  text-align: center;
  padding: 10px;
}

二、响应式网页布局

通过以上等学习我们来创建一个响应式等页面,页面的布局会根据屏幕的大小来调整:

案例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>项目</title>
<style>
* {
  box-sizing: border-box;
}
 
body {
  font-family: Arial;
  padding: 10px;
  background: #f1f1f1;
}
 
/* 头部标题 */
.header {
  padding: 30px;
  text-align: center;
  background: white;
}
 
.header h1 {
  font-size: 50px;
}
 
/* 导航条 */
.topnav {
  overflow: hidden;
  background-color: #333;
}
 
/* 导航条链接 */
.topnav a {
  float: left;
  display: block;
  color: #f2f2f2;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}
 
/* 链接颜色修改 */
.topnav a:hover {
  background-color: #ddd;
  color: black;
}
 
/* 创建两列 */
/* Left column */
.leftcolumn {   
  float: left;
  width: 75%;
}
 
/* 右侧栏 */
.rightcolumn {
  float: left;
  width: 25%;
  background-color: #f1f1f1;
  padding-left: 20px;
}
 
/* 图像部分 */
.fakeimg {
  background-color: #aaa;
  width: 100%;
  padding: 20px;
}
 
/* 文章卡片效果 */
.card {
  background-color: white;
  padding: 20px;
  margin-top: 20px;
}
 
/* 列后面清除浮动 */
.row:after {
  content: "";
  display: table;
  clear: both;
}
 
/* 底部 */
.footer {
  padding: 20px;
  text-align: center;
  background: #ddd;
  margin-top: 20px;
}
 
/* 响应式布局 - 屏幕尺寸小于 800px 时,两列布局改为上下布局 */
@media screen and (max-width: 800px) {
  .leftcolumn, .rightcolumn {   
    width: 100%;
    padding: 0;
  }
}
 
/* 响应式布局 -屏幕尺寸小于 400px 时,导航等布局改为上下布局 */
@media screen and (max-width: 400px) {
  .topnav a {
    float: none;
    width: 100%;
  }
}
</style>
</head>
<body>


<div class="header">
  <h1>我的网页</h1>
  <p>重置浏览器大小查看效果。</p>
</div>


<div class="topnav">
  <a href="#">链接</a>
  <a href="#">链接</a>
  <a href="#">链接</a>
  <a href="#" style="float:right">链接</a>
</div>


<div class="row">
  <div class="leftcolumn">
    <div class="card">
      <h2>文章标题</h2>
      <h5>xx 年xx月 xx日</h5>
      <div class="fakeimg" style="height:200px;"><img src="img/bird.png"></div>
      <p>文本...</p>
      <p>当热诚变成习惯,恐惧和忧虑即无处容身。缺乏热诚的人也没有明确的目标。热诚使想象的轮子转动。一个人缺乏热诚就象汽车没有汽油。
      善于安排玩乐和工作,两者保持热诚,就是最快乐的人。热诚使平凡的话题变得生动。!</p>
    </div>
    <div class="card">
      <h2>文章标题</h2>
      <h5>xx 年 xx 月xx日</h5>
      <div class="fakeimg" style="height:200px;"><img src="img/border.png"></div>
      <p>文本...</p>
      <p>一切事无法追求完美,唯有追求尽力而为。这样心无压力,出来的结果反而会更好!</p>
    </div>
  </div>
  <div class="rightcolumn">
    <div class="card">
      <h2>关于我</h2>
      <div class="fakeimg" style="height:100px;"></div>
      <p>6666</p>
    </div>
    <div class="card">
      <h3>热门文章</h3>
      <div class="fakeimg"><img src="img/fy2_wp.png">\</div>
    
    </div>
    <div class="card">
      <h3>关注我</h3>
      <p>本站发布的系统与软件仅为个人学习测试使用,请在下载后24小时内删除,
      不得用于任何商业用途,否则后果自负,请支持购买正版软件!如侵犯到您的权益,请及时通知我们,我们会及时处理。


声明:为非赢利性网站 不接受任何赞助和广告。</p>
    </div>
  </div>
</div>


<div class="footer">
  <h2>底部区域</h2>
</div>


</body>
</html>

三、总结

本文主要介绍了Html的网页布局结构,如何去了解网络的布局,介绍了常见的移动设备的三种网页模式,最后通过一个小项目,总结之前讲解的内容。

代码很简单,希望可以帮助你学习。

一篇文章带你了解CSS 文本样式

大家好,我是IT共享者,人称皮皮。这篇文章我们来讲讲CSS的文本样式。

一、文本颜色Color

颜色属性被用来设置文字的颜色。

颜色是通过CSS最经常的指定:

  • 十六进制值 – 如”#FF0000″。
  • 一个RGB值 – “RGB(255,0,0)”。
  • 颜色的名称 – 如”红”。

一个网页的文本颜色是指在主体内的选择:

<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=640, user-scalable=no">
        <title>项目</title>
        <style>
            body {
                color: blue;
            }


            h1 {
                color: #00ff00;
            }


            h2 {
                color: rgb(255, 0, 0);
            }
</style>
    </head>


    <body>
        <h2>hello world</h2>
        <h1>welcome to CaoZhou</h1>
    </body>


</html>

注:对于W3C标准的CSS:如果你定义了颜色属性,你还必须定义背景色属性。

二、属性

1. text-align 文本的对齐方式

文本排列属性是用来设置文本的水平对齐方式。

文本可居中或对齐到左或右,两端对齐。

当text-align设置为”justify”,每一行被展开为宽度相等,左,右外边距是对齐(如杂志和报纸)。

<!doctype html>
<html lang="en">


    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            h1 {
                text-align: center;
            }


            p.date {
                text-align: right;
            }


            p.main {
                text-align: justify;
            }
</style>
    </head>


    <body>


        <p class="date">2015 年 3 月 14 号</p>
        <p class="main"> 从前有个书生,和未婚妻约好在某年某月某日结婚。到那一天,未婚妻却嫁给了别人。书生受此打击, 一病不起。  这时,路过一游方僧人,从怀里摸出一面镜子叫书生看。书生看到茫茫大海,一名遇害的女子一丝不挂地躺在海滩上。路过一人, 看一眼,摇摇头,走了。又路过一人,将衣服脱下,给女尸盖上,走了。再路过一人,过去,挖个坑,小心翼翼把尸体掩埋了。  僧人解释道, 那具海滩上的女尸,就是你未婚妻的前世。你是第二个路过的人,曾给过他一件衣服。她今生和你相恋,只为还你一个情。但是她最终要报答一生一世的人,是最后那个把她掩埋的人,那人就是他现在的丈夫。书生大悟,病愈。


        </p>
        <p><b>注意:</b> 重置浏览器窗口大小查看 "justify" 是如何工作的。</p>
    </body>


</html>

2. text-decoration文本修饰

text-decoration 属性用来设置或删除文本的装饰。

从设计的角度看 text-decoration属性主要是用来删除链接的下划线:

<!doctype html>
<html lang="en">


    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            .none {}


            .del {
                text-decoration: none;
            }
</style>
    </head>


    <body>
        <p>原来的样子</p>
        <a href="#" class="none">wwwwwwwwwwwwwwwwww</a>
        <p>去掉下划线</p>
        <a href="#" class="del">wwwwwwwwwwwwwwwwwwwww</a>
    </body>


</html>

也可以这样装饰文字:

<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=640, user-scalable=no">
        <title>项目</title>
        <style>
            h1 {
                text-decoration: overline;
            }


            h2 {
                text-decoration: line-through;
            }


            h3 {
                text-decoration: underline;
            }
</style>
    </head>


    <body>
        <h1>This is heading 1</h1>
        <h2>This is heading 2</h2>
        <h3>This is heading 3</h3>
    </body>


</html>

注:不建议强调指出不是链接的文本,因为这常常混淆用户。

3. text-transform文本转换

text-transform文本转换属性是用来指定在一个文本中的大写和小写字母。

  • uppercase:转换为全部大写。
  • lowercase:转换为全部小写。
  • capitalize :每个单词的首字母大写。
<!DOCTYPE html>
<html>


    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=640, user-scalable=no">
        <title>项目</title>
        <style>
            p.uppercase {
                text-transform: uppercase;
            }


            p.lowercase {
                text-transform: lowercase;
            }


            p.capitalize {
                text-transform: capitalize;
            }
</style>
    </head>


    <body>
        <p class="uppercase">This is some text.</p>
        <p class="lowercase">This is some text.</p>
        <p class="capitalize">This is some text.</p>
    </body>


</html>

4. text-indent文本缩进

text-indent文本缩进属性是用来指定文本的第一行的缩进。

p {text-indent:50px;}

5. letter-spacing 设置字符间距

增加或减少字符之间的空间。

<style>
     h1 {
       letter-spacing:2px;
}
      h2 {
        letter-spacing:-3px;
}
</style>

6. line-height设置行高

指定在一个段落中行之间的空间。

<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=640, user-scalable=no">
        <title>项目</title>
        <style>
            p.small {
                line-height: 70%;
            }


            p.big {
                line-height: 200%;
            }
</style>
    </head>


    <body>
        <p>
            This is a paragraph with a standard line-height.<br> This is a paragraph with a standard line-height.<br> The default line height in most browsers is about 110% to 120%.<br>
        </p>


        <p class="small">
            This is a paragraph with a smaller line-height.<br> This is a paragraph with a smaller line-height.<br> This is a paragraph with a smaller line-height.<br> This is a paragraph with a smaller line-height.<br>
        </p>


        <p class="big">
            This is a paragraph with a bigger line-height.<br> This is a paragraph with a bigger line-height.<br> This is a paragraph with a bigger line-height.<br> This is a paragraph with a bigger line-height.<br>
        </p>


    </body>


</html>

7. word-spacing 设置字间距

增加一个段落中的单词之间的空白空间。

<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=640, user-scalable=no">
        <title>项目</title>
        <style type="text/css">
            p {
                word-spacing: 30px;
            }
</style>
    </head>


    <body>


        <p>
            This is some text. This is some text.
        </p>


    </body>


</html>

8. vertical-align 设置元垂直居中

设置文本的垂直对齐图像。

<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=640, user-scalable=no">
        <title>项目</title>
        <style>
            img{
                width: 200px;
                height: 100px;
            }
            img.top {
                vertical-align: text-top;


            }


            img.bottom {
                vertical-align: text-bottom;


            }
</style>
    </head>


    <body>
        <p>An <img src="img/logo.png"  /> image with a default alignment.</p>
        <p>An <img class="top" src="img/logo.png" /> image with a text-top alignment.</p>
        <p>An <img class="bottom" src="img/logo.png" /> image with a text-bottom alignment.</p>
    </body>


</html>

9. text-shadow 设置文本阴影

设置文本阴影。

<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=640, user-scalable=no">
        <title>项目</title>
        <style>
         h1{
            text-shadow: 2px 2px #FF0000;
     }
</style>
    </head>


    <body>
    <h1>Text-shadow effect</h1>
    </body>


</html>

三、总结

本文主要介绍了CSS文本样式实际应用中应该如何去操作,通过讲解文本中对应的属性去改变文本的表现形式。使用丰富的效果图的展示,能够更直观的看到运行的效果,能够更好的理解。使用Html语言,代码结构更佳的清晰,能够帮助你更好的学习。

盘点HTML中常见的ul ol 列表和常见的列表标记图标

大家好,我是皮皮。

一、概念

CSS列表属性作用如下:设置不同的列表项标记为有序列表。设置不同的列表项标记为无序列表。设置列表项标记为图像。

二、什么是种类型的列表?

种类型的列表:

  • ul无序列表 – 列表项标记用特殊图形(如小黑点、小方框等)
  • ol有序列表 – 列表项的标记有数字或字母。

使用CSS,可以列出进一步的样式,并可用图像作列表项标记。

三、常见的ul ol列表项标记

list-style-type属性指定列表项标记的类型是:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
        <style>
            ul.a {
                list-style-type: circle;
            }


            ul.b {
                list-style-type: square;
            }


            ol.c {
                list-style-type: upper-roman;
            }


            ol.d {
                list-style-type: lower-alpha;
            }
</style>
    </head>


    <body>
        <p>Example of unordered lists:</p>


        <ul class="a">
            <li>语文</li>
            <li>数学</li>
            <li>英语</li>
        </ul>


        <ul class="b">
            <li>语文</li>
            <li>数学</li>
            <li>英语</li>
        </ul>


        <p>Example of ordered lists:</p>


        <ol class="c">
            <li>语文</li>
            <li>数学</li>
            <li>英语</li>
        </ol>


        <ol class="d">
            <li>语文</li>
            <li>数学</li>
            <li>英语</li>
        </ol>


    </body>


</html>

四、ul ol列表项标记的图像浏览器兼容性解决方案

要指定列表项标记的图像,使用列表样式图像属性list-style-image。

在所有的浏览器,下面的例子会显示图像标记:

ul
{
list-style-type: none;
padding: 0px;
margin: 0px;
}
ul li
{
background-image: url(sqpurple.gif);
background-repeat: no-repeat;
background-position: 0px 5px; 
padding-left: 14px; 
}

代码解析

  • ul:
    • 设置列表样式类型为没有删除列表项标记
    • 设置填充和边距0px(浏览器兼容性)
  • ul中所有li:
    • 设置图像的URL,并设置它只显示一次(无重复)
    • 您需要的定位图像位置(左0px和上下5px)
    • 用padding-left属性吧文本置于列表中

五、拓展

ul ol列表缩写属性

在单个属性中可以指定所有的列表属性。这就是所谓的缩写属性。

为列表使用缩写属性,列表样式属性设置如下:

ul
{
list-style: square url("sqpurple.gif");
}

如果使用缩写属性值的顺序是:

①list-style-type 。②list-style-position。 ③list-style-image。

如果上述值丢失一个,其余仍在指定的顺序,就没关系。

六、总结

本文基于HTML基础,本文主要介绍了HTML常见的ul ol 列表、常见的列表标记图标。对于浏览器兼容列表图像的问题,提供了一系列的解决方案,最后扩展相关知识,优化代码,希望能够帮助你学习。

Python矩阵和Numpy数组的那些事儿

大家好,我是IT共享者,人称皮皮。今天给大家介绍矩阵和NumPy数组。

一、什么是矩阵?

使用嵌套列表和NumPy包的Python矩阵。矩阵是一种二维数据结构,其中数字按行和列排列。

二、Python矩阵

1. 列表视为矩阵

Python没有矩阵的内置类型。但是,可以将列表的列表视为矩阵。

例:

A = [[1, 4, 5], 
    [-5, 8, 9]]

可以将此列表的列表视为具有2行3列的矩阵。

如图:

2. 如何使用嵌套列表。

A = [[1, 4, 5, 12], 
    [-5, 8, 9, 0],
    [-6, 7, 11, 19]]


print("A =", A) 
print("A[1] =", A[1])      # 第二行
print("A[1][2] =", A[1][2])   # 第二行的第三元素
print("A[0][-1] =", A[0][-1])   # 第一行的最后一个元素
column = [];        # 空 list
for row in A:
  column.append(row[2])   


print("3rd column =", column)

当运行程序时,输出为:

三、NumPy数组

1. 什么是NumPy?

NumPy是用于科学计算的软件包,它支持强大的N维数组对象。

在使用NumPy之前,需要先安装它。

2. 如何安装NumPy?

如果使用Windows,使用PyCharm 安装NumPy,NumPy它带有一些其他与数据科学和机器学习有关的软件包。

成功安装了NumPy,就可以导入和使用它。

NumPy提供数字的多维数组(实际上是一个对象)。

例 :

import numpy as np
a = np.array([1, 2, 3])
print(a)               # 输出: [1, 2, 3]
print(type(a))         # 输出: <class 'numpy.ndarray'>

NumPy的数组类称为ndarray。

注:

NumPy的数组类称为ndarray。

3. 如何创建一个NumPy数组?

有几种创建NumPy数组的方法。

3.1 整数,浮点数和复数的数组

import numpy as np


A = np.array([[1, 2, 3], [3, 4, 5]])
print(A)


A = np.array([[1.1, 2, 3], [3, 4, 5]]) # 浮点数组
print(A)


A = np.array([[1, 2, 3], [3, 4, 5]], dtype = complex) # 复数数组
print(A)

运行效果:

3.2 零和一的数组

import numpy as np


zeors_array = np.zeros( (2, 3) )
print(zeors_array)
ones_array = np.ones( (1, 5), dtype=np.int32 ) // dtype
print(ones_array)      # 输出: [[1 1 1 1 1]]

在这里,指定dtype了32位(4字节)。因此,该数组可以采用从到的值。-2-312-31-1

3.使用arange()和shape()

import numpy as np


A = np.arange(4)


print('A =', A)


B = np.arange(12).reshape(2, 6)


print('B =', B)

四、矩阵运算

两个矩阵相加,两个矩阵相乘以及一个矩阵转置。在编写这些程序之前,使用了嵌套列表。让看看如何使用NumPy数组完成相同的任务。

两种矩阵的加法

使用+运算符将两个NumPy矩阵的对应元素相加。

import numpy as np


A = np.array([[2, 4], [5, -6]])
B = np.array([[9, -3], [3, 6]])
C = A + B      # 元素聪明的加法
print(C)

两个矩阵相乘

为了将两个矩阵相乘,使用dot()方法。

注意:用于数组乘法(两个数组的对应元素的乘法),而不是矩阵乘法。

import numpy as np


A = np.array([[3, 6, 7], [5, -3, 0]])
B = np.array([[1, 1], [2, 1], [3, -3]])
C = A.dot(B)
print(C)

矩阵转置

使用numpy.transpose计算矩阵的转置。

import numpy as np


A = np.array([[1, 1], [2, 1], [3, -3]])
print(A.transpose())

注:

NumPy使的任务更加轻松。

五、案例

1. 访问矩阵元素

与列表类似,可以使用索引访问矩阵元素。让从一维NumPy数组开始。

import numpy as np
A = np.array([2, 4, 6, 8, 10])


print("A[0] =", A[0])     # First element     
print("A[2] =", A[2])     # Third element 
print("A[-1] =", A[-1])   # Last element

运行该程序时,输出为:

现在,让看看如何访问二维数组(基本上是矩阵)的元素。

import numpy as np


A = np.array([[1, 4, 5, 12],
    [-5, 8, 9, 0],
    [-6, 7, 11, 19]])


#  First element of first row
print("A[0][0] =", A[0][0])  


# Third element of second row
print("A[1][2] =", A[1][2])


# Last element of last row
print("A[-1][-1] =", A[-1][-1])

当运行程序时,输出将是:

2. 访问矩阵的行

import numpy as np


A = np.array([[1, 4, 5, 12], 
    [-5, 8, 9, 0],
    [-6, 7, 11, 19]])


print("A[0] =", A[0]) # First Row
print("A[2] =", A[2]) # Third Row
print("A[-1] =", A[-1]) # Last Row (3rd row in this case)

当运行程序时,输出将是:

3. 访问矩阵的列

import numpy as np


A = np.array([[1, 4, 5, 12], 
    [-5, 8, 9, 0],
    [-6, 7, 11, 19]])


print("A[:,0] =",A[:,0]) # First Column
print("A[:,3] =", A[:,3]) # Fourth Column
print("A[:,-1] =", A[:,-1]) # Last Column (4th column in this case)

当运行程序时,输出将是:

注:

使用NumPy(而不是嵌套列表)可以更轻松地处理矩阵,而且甚至都没有涉及基础知识。建议详细研究NumPy软件包,尤其是当尝试将Python用于数据科学/分析时。

六、总结

本文基于Python基础,介绍了矩阵和NumPy数组,重点介绍了NumPy数组,如何去安装NumPy模块,如何去创建一个NumPy数组的两种方式。

通过案例的分析,代码的演示,运行效果图的展示,使用Python语言,能够让读者更好的理解。

读者可以根据文章内容,自己实现。有时候看到别人实现起来很简单,但是到自己动手实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。

代码很简单,希望对你学习有帮助。

一篇文章带你了解CSS单位相关知识

大家好,我是皮皮,今天给大家分享一些前端的知识。

一、了解 CSS 单位

测量长度的单位可以是绝对的,例如像素,点等,也可以是相对的,例如百分比(%)和 em 单位。

指定 CSS 单位对于非零值是必须的,因为没有默认单位。丢失或忽略单位将被视为错误。但是,如果该值为 0,则可以省略该单位(毕竟,零像素与零英寸是一样的)。

注意: 长度是指距离测量。长度包括数字值,后面加单位,比如 10px、2em、50% 等。数字和单位之间不能出现空白。

二、相对长度单位

相对长度单位指定相对于另一个长度属性的长度。相对单位是 描述 :em当前的字体大小 。

ex :当前字体的 x 高度 。

em 和 ex 单位取决于套用至元素的字体大小。

1. 使用 em 单位

em 的值等于使用它的元素的 font-size 属性的计算值。它可用于垂直或水平测量。

例如,如果 font-size 元素设置为 16px,并且 line-height 设置为 2.5em,则 line-height像素计算值为:2.5 x 16px = 40px。

P {
    font-size: 16px;
    line-height: 2.5em;
}

运行效果

一篇文章带你了解CSS单位相关知识

当在 font-size 属性本身的值中指定 em 时会发生异常,在这种情况下,它引用父元素的字体大小。

因此,当我们用 em 指定字体大小时,1em 继承自 font-size。因此, font-size: 1.2em; 使文本比父元素的文本大 1.2 倍。

<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=640, user-scalable=no">
        <title>平安保险</title>
        <link rel="stylesheet" type="text/css" href="css/fy.css" />
    </head>


    <body>
        <meta http-equiv="Content-Type" content="text/html;
 charset=utf-8" />
        <title>项目</title>
        <style>
            body {
                font-size: 62.5%;
                font-family: Arial, Helvetica, sans-serif;
            }


            p {
                font-size: 1.6em;
            }


            p:firt-letter {
                font-size: 3em;
                font-weight: bold;
            }
</style>


        <body style="text-align: center; background-color: aquamarine;">
            <div>ddad</div>
            <p> Hellow world</p>
        </body>


</html>

一篇文章带你了解CSS单位相关知识

代码解析:浏览器中字体的默认大小为 16px。我们的第一步是通过将主体设置 font-size 为 62.5% 来减小整个文档的大小,这会将字体大小重置为 10px(16px 的 62.5%)。

这是默认 font-size的四舍五入,方便 px 到 em的转换。

2. 使用 ex 单位

ex 单位等于当前字体的 x 高度。

所谓的 x 高度是因为它通常等于小写 x 的高度,如下所示。但是, ex 即使对于不包含 x 的字体,也会定义的。

P {
    font-size: 16ex;
    line-height: 2.5em;
}
一篇文章带你了解CSS单位相关知识

三、绝对长度单位

绝对长度单位相对于彼此固定。它们高度依赖于输出介质,因此在输出环境已知时主要有用。绝对单位由物理单位(的 in、cm、mm、pt、pc)和 px 单位。表中j进行属性的详细介绍。

单位

描述

in

英寸 – 1 英寸等于 2.54 厘米。

cm

厘米。

mm

毫米。

pt

points – 在 CSS 中,一个点定义为 1⁄72 英寸(0.353mm)。

pc

picas – 1pc 等于 12pt。

px

像素单位 – 1px 等于 0.75pt。

绝对物理单位,例如 in、cm、mm 等应被用于打印介质和类似的高分辨率的设备。然而,对于桌面和低分辨率设备等屏幕显示,建议使用像素或 em 单位。

例:

   h1 {
                margin: 0.5in;
            }
            /* inches  */


            h2 {
                line-height: 3cm;
            }
            /* centimeters */


            h3 {
                word-spacing: 4mm;
            }
            /* millimeters */


            h4 {
                font-size: 12pt;
            }
            /* points */


            h5 {
                font-size: 1pc;
            }
            /* picas */


            h6 {
                font-size: 12px;
            }
            /* picas */

提示: 使用相对单位(如 em 或百分比 %)的样式表可以更轻松地从一个输出环境扩展到另一个输出环境。

一篇文章带你了解CSS单位相关知识

四、总结

本文主要介绍了css单位的运用,通过两个方面展开,相对长度单位,绝对长度单位,在项目中需要注意的点,需要注意的事项,都进行了详细的讲解和提供了对应的解决方案。代码很简单,希望可以帮助你学习。

如果在操作过程中有任何问题,记得下面留言,我们看到会第一时间解决问题。