列表,元组和字符串

5.1 列表:一个打了激素的数组

有时候可能需要将一些相互之间有关联的数据保存在一起,这个就叫数组。Python将其称为列表。

5.1.1 创建列表

>>> [1,2,3,4,5]
[1, 2, 3, 4, 5]
>>>

上面是一个匿名列表,因为没有名称,所以创建了也没使用。

>>> number = [1,2,3,4,5]
>>> type(number)
<class 'list'>
>>> for each in number:
... print(each)
...
1
2
3
4
5
>>>

type()函数用于返回指定参数的类型,list表示列表

列表可以包含任意类型的数据

>>> mix = [520,"小甲鱼",3.14,[1,2,3,4]]
>>> type(mix)
<class 'list'>
>>>

5.1.2 向列表添加元素

append() 方法

>>> number
[1, 2, 3, 4, 5]
>>> number.append(6)
>>> number
[1, 2, 3, 4, 5, 6]
>>>

这里的append并不是一个BIF,它属于列表对象的一个方法,中间有个. 暂时可以理解为范围的意思,append方法属于一个叫number的列表对象

>>> number.append(7,8)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: append() takes exactly one argument (2 given)
>>> number.extend(7,8)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: extend() takes exactly one argument (2 given)
>>> number.extend([7,8])
>>> number
[1, 2, 3, 4, 5, 6, 7, 8]
>>>

可以看到要同时添加多了元素到列表,要用extend方法,事实上,extend方法是使用一个列表来扩充另外一个列表

insert 方法支持将元素插入到具体位置

>>> number.insert(0,0)
>>> number
[0, 1, 2, 3, 4, 5, 6, 7, 8]
>>>

insert 方法还支持负数

>>> number.insert(-1,8.5)
>>> number
[0, 1, 2, 3, 4, 5, 6, 7, 8.5, 8]
>>>

5.1.3 从列表中获取元素

通过索引可以直接获取列表中的元素

>>> eggs = ["鸡蛋","鸭蛋","鹅蛋","铁蛋"]
>>> eggs[0]
'鸡蛋'
>>> eggs[3]
'铁蛋'
>>>

访问列表的最后一个元素:

>>> eggs[-1]
'铁蛋'
>>> eggs[len(eggs)-1]
'铁蛋'
>>>

如果要将鸭蛋和铁蛋的位置调换

>>> eggs
['鸡蛋', '鸭蛋', '鹅蛋', '铁蛋']
>>> temp = eggs[1]
>>> eggs[1] = eggs[3]
>>> eggs[3] = temp
>>> eggs
['鸡蛋', '铁蛋', '鹅蛋', '鸭蛋']
>>>

或者更简洁的办法:

>>> eggs
['鸡蛋', '鸭蛋', '鹅蛋', '铁蛋']
>>>
>>> eggs[1], eggs[3] = eggs[3], eggs[1]
>>> eggs
['鸡蛋', '铁蛋', '鹅蛋', '鸭蛋']
>>>

随机抽取列表里的元素,使用random方法

>>> import random
>>>
>>> eggs
['鸡蛋', '铁蛋', '鹅蛋', '鸭蛋']
>>> prizes = eggs
>>> prizes
['鸡蛋', '铁蛋', '鹅蛋', '鸭蛋']
>>> random.choice(prizes)
'鸭蛋'
>>> random.choice(prizes)
'鸡蛋'
>>> random.choice(prizes)
'鹅蛋'
>>>

5.1.4 从列表中删除元素

remove pop del 方法

remove 指定一个待删除的元素,使用remove 删除元素,不需要知道元素的具体位置,如果不存在就会报错

>>> eggs
['鸡蛋', '铁蛋', '鹅蛋', '鸭蛋']
>>> eggs.remove('鸡蛋')
>>> eggs
['铁蛋', '鹅蛋', '鸭蛋']
>>> eggs.remove('鸡蛋')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
>>>

pop 方法是将列表中的指定元素弹出来,取出并删除的意思,参数是一个索引

>>> eggs
['铁蛋', '鹅蛋', '鸭蛋']
>>> eggs.pop(1)
'鹅蛋'
>>> eggs
['铁蛋', '鸭蛋']
>>>

pop 方法如果不带参数,默认删除列表中的最后一个元素

del 是一个Python的语句,不是del方法,删除元素,删除列表

>>> eggs
['铁蛋', '鸭蛋']
>>> del eggs[0]
>>> eggs
['鸭蛋']
>>> del eggs
>>> eggs
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'eggs' is not defined
>>>

5.1.5 列表切片

从列表1中取出三个元素放到列表2中

>>> list1 = ['钢铁侠','蜘蛛侠','蝙蝠侠','绿灯侠','神奇女侠']
>>> list2 = [list1[2],list1[3],list1[4]]
>>> list2
['蝙蝠侠', '绿灯侠', '神奇女侠']
>>>

如果是取出200元素,就很尴尬了,这里可是这样操作

>>> list1
['钢铁侠', '蜘蛛侠', '蝙蝠侠', '绿灯侠', '神奇女侠']
>>> list2 = []
>>> for i in range(len(list1)):
... list2.append(list1[i])
...
>>> list2
['钢铁侠', '蜘蛛侠', '蝙蝠侠', '绿灯侠', '神奇女侠']
>>>

但是还可以简化操作,比如出去第二个元素到第五个元素

>>> list1
['钢铁侠', '蜘蛛侠', '蝙蝠侠', '绿灯侠', '神奇女侠']
>>> list2 = list1[2:5]
>>> list2
['蝙蝠侠', '绿灯侠', '神奇女侠']
>>>

5.1.6 进阶玩法

列表切片操作其实还可以接收第三个参数,就是步长,默认值为1,下面将其修改为2

>>> list1 = range(10)
>>> list1
range(0, 10)
>>> list1 = list(range(10))
>>> list1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list1[0:9:2]
[0, 2, 4, 6, 8]
>>> list1[::2]
[0, 2, 4, 6, 8]
>>>

发现了没有: list1[0:9:2] list1[::2] 可以完成同样的事情,后者更简洁

如果将列表的步长设置为-1 ,相当月整个列表反过来了

>>> list1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list1[::-1]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>>

del 语句作用于列表切片,结果有点意思

>>> list1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> del list1[::2]
>>> list1
[1, 3, 5, 7, 9]
>>>

delete 直接作用于原始列表了

5.1.7 一些常用的操作符

列表比较

>>> list1 = [123]
>>> list2 = [234]
>>> list1 > list2
False
>>> list1 <= list2
True
>>> list3 = ['apple']
>>> list4 = ['pineapple']
>>> list3 < list4
True
>>>

* 重复操作符,

>>> list1 * 3
[123, 123, 123]
>>>

成员关系操作。in not in

>>> list5 = list1 + list2
>>> list5
[123, 234]
>>> 123 in list1
True
>>> 456 in list1
False
>>> 456 not in list1
True
>>>

开发过程中,需要取出列表中重复的元素,使用in 和not in 就可以轻松实现

>>> oldlist = ['西班牙','葡萄牙','牙买加','葡萄牙','匈牙利']
>>> newlist = []
>>> for each in oldlist:
... if each not in newlist:
... newlist.append(each)
...
>>> print(newlist)
['西班牙', '葡萄牙', '牙买加', '匈牙利']
>>>

5.1.8 列表的小伙伴们

列表有都少个方法,可以使用dir(list)去查看

>>> dir(list)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
>>>

count 方法用来统计元素在列表中出现的次数

>>> list1 = list(range(10))
>>> list1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list1.count(1)
1
>>>

index 方法是返回某个元素在列表中第一次出现的索引值

>>> list1.index(9)
9
>>>

reverse 方法是将整个列表翻转

>>> list1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list1.reverse()
>>> list1
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>>

sort 方法是对列表元素进行排序

>>> list1
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> list1.sort()
>>> list1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>

如果需要从大到小进行排序,很简单,先调用sort方法,在调用reverse方法即可

其实sort还有第三个参数,语法为:

sort(func,key,reverse)

>>> list1
[1, 2, 55, 123, 8, 5, 6, 7, 111]
>>> list1.sort(reverse=True)
>>> list1
[123, 111, 55, 8, 7, 6, 5, 2, 1]
>>>

5.2 元组,戴上了枷锁的列表

元组与列表最大的区别就是,元组只可读,不可写。

>>> tuple1 = (1,2,3,4,5)
>>> tuple1
(1, 2, 3, 4, 5)
>>> type(tuple1)
<class 'tuple'>
>>>

复制一个元组:

>>> tuple1
(1, 2, 3, 4, 5)
>>> tuple2 = tuple1[:]
>>> tuple2
(1, 2, 3, 4, 5)
>>>

5.2.2 更新和删除元组

由于元祖中的元素是不允许被修改的,但是并不妨碍我们创建一个新的同名元组

>>> x_men = ('金刚狼','x教授','暴风女','火凤凰','镭射眼')
>>> x_men[1] = '小甲鱼'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> x_men = (x_men[0],"小甲鱼") + x_men[2:]
>>> x_men
('金刚狼', '小甲鱼', '暴风女', '火凤凰', '镭射眼')
>>>

5.3 字符串

字符串创建,使用单引号,或者双引号,但是要成对出现

字符串同元组一样,创建之后就不能修改,只能通过拼接的方式实现

序号 方法及描述
1

capitalize()
将字符串的第一个字符转换为大写

2

center(width, fillchar)

返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。

3

count(str, beg= 0,end=len(string))

返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数

4

bytes.decode(encoding="utf-8", errors="strict")

Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。

5

encode(encoding='UTF-8',errors='strict')

以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'

6

endswith(suffix, beg=0, end=len(string))
检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.

7

expandtabs(tabsize=8)

把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。

8

find(str, beg=0 end=len(string))

检测 str 是否包含在字符串中 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1

9

index(str, beg=0, end=len(string))

跟find()方法一样,只不过如果str不在字符串中会报一个异常.

10

isalnum()

如果字符串至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False

11

isalpha()

如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False

12

isdigit()

如果字符串只包含数字则返回 True 否则返回 False..

13

islower()

如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False

14

isnumeric()

如果字符串中只包含数字字符,则返回 True,否则返回 False

15

isspace()

如果字符串中只包含空格,则返回 True,否则返回 False.

16

istitle()

如果字符串是标题化的(见 title())则返回 True,否则返回 False

17

isupper()

如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False

18

join(seq)

以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串

19

len(string)

返回字符串长度

20

ljust(width[, fillchar])

返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。

21

lower()

转换字符串中所有大写字符为小写.

22

lstrip()

截掉字符串左边的空格

23

maketrans()

创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。

24

max(str)

返回字符串 str 中最大的字母。

25

min(str)

返回字符串 str 中最小的字母。

26

replace(old, new [, max])

把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。

27

rfind(str, beg=0,end=len(string))

类似于 find()函数,不过是从右边开始查找.

28

rindex( str, beg=0, end=len(string))

类似于 index(),不过是从右边开始.

29

rjust(width,[, fillchar])

返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串

30

rstrip()

删除字符串字符串末尾的空格.

31

split(str="", num=string.count(str))

num=string.count(str))以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num 个子字符串

32

splitlines([keepends])

按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

33

startswith(str, beg=0,end=len(string))

检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。

34

strip([chars])

在字符串上执行 lstrip()和 rstrip()

35

swapcase()

将字符串中大写转换为小写,小写转换为大写

36

title()

返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())

37

translate(table, deletechars="")

根据 str 给出的表(包含 256 个字符)转换 string 的字符,要过滤掉的字符放到 deletechars 参数中

38

upper()

转换字符串中的小写字母为大写

39

zfill (width)

返回长度为 width 的字符串,原字符串右对齐,前面填充0

40

isdecimal()

检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。

casefold 方法用于将字符串中所有的英文大写转为小写

>>> str1 = 'FishC'
>>>
>>> str1.casefold()
'fishc'
>>>

count(sub[,start[,end]])

>>> str2 = "上海自来水来自上海"
>>> str2.count('上')
2
>>> str2.count('上', 0, 5)
1

find(sub[,start[,end]]) #查找第一次出现的位置

>>> str2.find("上")
0

index(sub[,start[,end]]) #查找元素出现的第一位置,找不到抛出异常

>>> str2.index('上')
0
>>> str2.index('我')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
>>> str2.find('我')
-1
>>>

replace(old,new[,count]) 将old字符替换为new字符

>>> str4 = 'I love you'
>>> str4.replace("you","fishc.com")
'I love fishc.com'
>>>

split(sep=None,maxsplit=-1) 用于拆分字符串

>>> str5 = "肖申克的救赎/1994年/9.6/美国"
>>> str5.split(sep='/')
['肖申克的救赎', '1994年', '9.6', '美国']
>>>

和split方法相反的是join(interable)方法用于拼接字符串

>>> countries = ['中国','俄罗斯','美国','日本','韩国']
>>> '-'.join(countries)
'中国-俄罗斯-美国-日本-韩国'
>>> ','.join(countries)
'中国,俄罗斯,美国,日本,韩国'
>>> '=='.join(countries)
'中国==俄罗斯==美国==日本==韩国'
>>>

5.3.2 格式化

格式化字符串就是按照统一的规矩去输出一个字符串。

1. format() 方法接收位置参数和关键字参数,二者均传递到一个名为replacement的字段,而这个replacement字段在字符串内用大括号 {} 表示。

>>> "{0} love {1}.{2}".format("I","FishC","com")
'I love FishC.com'
>>>

字符串中的{0} {1} {2} 应该与位置有关,依次被format的参数替换,那么format的三个参数就是位置参数

>>> "{a} love {b}.{c}".format(a="I", b="Fishc", c="com")
'I love Fishc.com'
>>>

{a} {b} {c] 就相当于三个目标标签,format将参数中的值替换进去。

如果将位置参数和关键参数综合放在一起,那么位置参数必须在关键参数之前,否则会报错

>>> "{a} love {b}.{0}".format(a="I", b="Fishc","com")
File "<stdin>", line 1
SyntaxError: positional argument follows keyword argument

>>> "{0}: {1:.2f}".format("圆周率",3.1415026)
'圆周率: 3.14'
>>> >>> "{0}: {1:.2f}".format("圆周率",3.1415026)

2. 格式化操作符:%

符号

说明

%c

格式化字符及其 ASCII 码

%s

格式化字符串

%d

格式化整数

%o

格式化无符号八进制数

%x

格式化无符号十六进制数

%X

格式化无符号十六进制数(大写)

%f

格式化浮点数字,可指定小数点后的精度

%e

用科学计数法格式化浮点数

%E

作用同 %e,用科学计数法格式化浮点数

%g

根据值的大小决定使用 %f 或 %e

%G

作用同 %g,根据值的大小决定使用 %f 或者 %E

>>> '%c' % 97
'a'
>>> '%c%c%c%c%c' % (70,105,115,104,67)
'FishC'
>>>

格式化命令的辅助操作符

符号

说明

m.n

m 是显示的最小总宽度,n 是小数点后的位数

-

用于左对齐

+

在正数前面显示加号(+)

#

在八进制数前面显示 '0o',在十六进制数前面显示 '0x' 或 '0X'

0

显示的数字前面填充 '0' 取代空格

>>> '%5.1f' % 27.68
' 27.7'
>>> '%.2e' % 27.68
'2.77e+01'
>>> '%10d' % 5
' 5'
>>> '%-10d' % 5
'5 '
>>> '%010d' % 5
'0000000005'
>>> '%#X' % 100
'0X64'
>>>

3. python 转义字符和含义

转义字符 描述
\(在行尾时) 续行符
\\ 反斜杠符号
\’ 单引号
\” 双引号
\a 响铃
\b 退格(Backspace)
\e 转义
\000
\n 换行
\v 纵向制表符
\t 横向制表符
\r 回车
\f 换页
\oyy 八进制数yy代表的字符,例如:\o12代表换行
\xyy 十进制数yy代表的字符,例如:\x0a代表换行
\other 其它的字符以普通格式输出

5.4 序列

1. list

>>> a = list()
>>> type(a)
<class 'list'>
>>> a
[]
>>> b = list("fishc")
>>> b
['f', 'i', 's', 'h', 'c']
>>>

2.tuple

tuple() 方法把一个可迭代对象转换为元组

3.str() 方法用于把object对象转换为字符串

4.len(sub) 用户返回sub的长度

5.max返回集合中的最大值

6.min 返回集合中的最小值

7.sum 方法用于返回序列的iterable的所有的总和

>>> tuple1 = 1,2,3,4,5,6
>>> sum(tuple1)
21
>>> sum(tuple1,10)
31
>>>

8.sorted 方法用于返回一个排序的列表

>>> list1 = [1,4,6,3,66,2,8,14]
>>> sorted(list1)
[1, 2, 3, 4, 6, 8, 14, 66]
>>>

9.reverse 方法用于返回一个逆向的序列值

>>> list1 = [1,4,6,3,66,2,8,14]
>>>
>>>
>>> for i in reversed(list1):
... print(i,end=',')
...
14,8,2,66,3,6,4,1,>>>
>>>

10.enumerate生成二元组,每个二元组可有索引和元素组成

>>> str1 = "FishC"
>>> for each in enumerate(str1):
... print(each)
...
(0, 'F')
(1, 'i')
(2, 's')
(3, 'h')
(4, 'C')
>>>

11.zip方法用于返回各个可迭代参数共同组成的元组

>>> list1 = [1,3,5,7,9]
>>> str1 = "FishC"
>>> for each in zip(list1,str1):
... print(each)
...
(1, 'F')
(3, 'i')
(5, 's')
(7, 'h')
(9, 'C')
>>>

完!

0基础入门学习Python(第5章)的更多相关文章

  1. 0基础入门学习Python(第3章)

    第三章 成为高手前必须知道的一些基础知识 3.1 变量 一个值的名字,存储在内存中,我把把这块内存称为变量,大多数语言,把这个过程称之为,给变量赋值,把值存储在变量中. Python这里的做法稍有不同 ...

  2. 0基础入门学习Python(第4章)

    第四章,了不起的分支和循环 4.1 分支和循环 Python主要依靠缩进来区分代码块 4.2 快速上手 成绩按照分数来划分等级,90分以上为A,80~90 为B,60~80 为C,60以下为D p4_ ...

  3. 0基础入门学习Python(第1-2章)

    第一章:就这么愉快的开始吧 1.1获取Python Python3.7 1.2从idle启动 Python 3.7.3 (default, Mar 27 2019, 09:23:39)[Clang 1 ...

  4. 《零基础入门学习Python》【第一版】视频课后答案第001讲

    测试题答案: 0. Python 是什么类型的语言? Python是脚本语言 脚本语言(Scripting language)是电脑编程语言,因此也能让开发者藉以编写出让电脑听命行事的程序.以简单的方 ...

  5. 【Python教程】《零基础入门学习Python》(小甲鱼)

    [Python教程]<零基础入门学习Python>(小甲鱼) 讲解通俗易懂,诙谐. 哈哈哈. https://www.bilibili.com/video/av27789609

  6. 零基础入门学习Python(1)--我和Python的第一次亲密接触

    前言 最近在学习Python编程语言,于是乎就在网上找资源.其中小甲鱼<零基础入门学习Python>试听了几节课,感觉还挺不错,里面的视频都是免费下载,小甲鱼讲话也挺幽默风趣的,所以呢,就 ...

  7. 学习参考《零基础入门学习Python》电子书PDF+笔记+课后题及答案

    国内编写的关于python入门的书,初学者可以看看. 参考: <零基础入门学习Python>电子书PDF+笔记+课后题及答案 Python3入门必备; 小甲鱼手把手教授Python; 包含 ...

  8. 学习《零基础入门学习Python》电子书PDF+笔记+课后题及答案

    初学python入门建议学习<零基础入门学习Python>.适合新手入门,很简单很易懂.前一半将语法,后一半讲了实际的应用. Python3入门必备,小甲鱼手把手教授Python,包含电子 ...

  9. 零基础入门学习Python(36)--类和对象:给大家介绍对象

    知识点 Python3 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前 ...

随机推荐

  1. javaWeb核心技术第七篇之HTTP、Tomcat、Servlet、Request和Response

    - Web服务器 - 概念: - web资源: "英文直译"网"的意思 资源:一切数据文件 web资源:通过网络可以访问到的资源,通常指的是一切放在服务器上的文件&quo ...

  2. zookeeper启动失败,但是状态显示已启动的原因

    今天在起zookeeper集群的时候,其他两台机子都能起起来,只有这一台机子起不起来: 对比了 这个路径下的 文件后发现多了一个这个文件 根据名字推测应该是放进程id.突然明白这个应该是上次非正常退出 ...

  3. 【Gradle】Groovy基础

    Groovy基础 Groovy是基于JVM虚拟机的一种动态语言.每个Gradle的build脚本文件都是一个Groovy脚本文件. 字符串 在Groovy中,分号不是必需的.在Groovy中,单引号和 ...

  4. css字体标签相关

    斜体: i:斜体em:斜体,强调的意思,有特殊含义,尽量用i或者cssfont-style:字体风格 normal默认值,italic斜体,oblique倾斜的字体 粗体: b,strong:粗体fo ...

  5. Mongodb介绍(非原创)

    文章大纲 一.什么是nosql二.mongodb与mysql比较三.参考文章   一.什么是nosql 1. 简介 这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据. ...

  6. rsync nfs web01总结

    目录 rsync nfs web01总结 要求 部署rsync服务端(172.16.1.41) 部署rsync客户端(172.16.1.31.172.16.1.7) 部署web代码 NFS服务端部署 ...

  7. Java学习笔记(5)--- Number类和Math 类,String类的应用,Java数组入门

    1.Number 和 Math 类: 在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型(int,double,float这些)的情形. 这种由编译器特别支持的包装称为装箱,所以当内置数 ...

  8. last.jenkins 其他 一些知识点

    时区不一致. jenkins的的时间和 系统时间不一致. 打开jenkins的[系统管理]---> [脚本命令行],在命令框中输入一下命令[时间时区设为 亚洲上海] System.setProp ...

  9. poj 3253 Fence Repair 贪心 最小堆 题解《挑战程序设计竞赛》

    地址 http://poj.org/problem?id=3253 题解 本题是<挑战程序设计>一书的例题 根据树中描述 所有切割的代价 可以形成一颗二叉树 而最后的代价总和是与子节点和深 ...

  10. LG5202 「USACO2019JAN」Redistricting 动态规划+堆/单调队列优化

    问题描述 LG5202 题解 \[opt[i]=xx+(cnt[i]-cnt[yy]<=0)\] 发现\(cnt[i]-cnt[yy] <= 0\)只能有两种取值 于是直接堆优化即可 \( ...