Python基础(二)

本章内容

  1. 数据类型
  2. 数据运算
  3. 列表与元组的基本操作
  4. 字典的基本操作
  5. 字符编码与转码
  6. 模块初探
  7. 练习:购物车程序

一、数据类型

  Python有五个标准的数据类型:

  • Numbers(数字)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Dictionary(字典)

  1. Number(数字)

  number类型用来专门存储数字数据,他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象

  Python支持四种不同的数字类型:

  • int(有符号整型)
  • long(长整型[也可以代表八进制和十六进制])
  • float(浮点型)
  • complex(复数)

  实例

  一些数值类型的实例:

int long float complex
10 51924361L 0.0 3.14j
100 -0x19323L 15.20 45.j
-786 0122L -21.9 9.322e-36j
080 0xDEFABCECBDAECBFBAEl 32.3+e18 .876j
-0490 535633629843L -90. -.6545+0J
-0x260 -052318172735L -32.54e100 3e+26J
0x69 -4721885298529L 70.2-E12 4.53e-7j
  • 长整型也可以使用小写"L",但是还是建议您使用大写"L",避免与数字"1"混淆。Python使用"L"来显示长整型。
  • Python还支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。在Python中虚数部分用的是j,是因为Python沿用了工程领域的规范,这块和咱们上学时用的i有所不同。

  2.string(字符串)

  在最新的Python 3版本中,字符串是以Unicode编码的,也就是说,Python的字符串支持多语言,例如:

 >>> print('I am 成怡强')
I am 成怡强

  3.list(列表)

  List(列表) 是 Python 中使用最频繁的数据类型。

  列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(所谓嵌套)。

  列表用[ ]标识。是python最通用的复合数据类型。看这段代码就明白。

  列表中的值得分割也可以用到变量[头下标:尾下标],就可以截取相应的列表,从左到右索引默认0开始的,从右到左索引默认-1开始,下标可以为空表示取到头或尾。

  实例

 name_list = ['tom', 'lili', 'tim']
num_list = [1, 2, 3, 4]

  4.tuple(元组)

  元组是另一个数据类型,类似于List(列表)。

  元组用"()"标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。

  实例

 tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )

  5.字典

  字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。

  两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

  字典用"{ }"标识。字典由索引(key)和它对应的值value组成。

  实例

 person = {"name": "mr.wu", 'age': 18}

person = dict({"name": "mr.wu", 'age': 18})

二、数据运算

简单的回答可以使用表达式4 + 5等于9,在这里4和5被称为操作数,+被称为操符。 Python语言支持操作者有以下几种类型。

  • 算术运算符

  • 比较(即关系)运算符

  • 赋值运算符

  • 逻辑运算符

  • 位运算符

  • 成员操作符

  • 标识操作符

  • Python运算符优先级

让我们逐一看看所有的运算符。

1.算术运算符

操作符 描述符 例子
+ 加法 - 对操作符的两侧增加值 a + b = 30
- 减法 - 减去从左侧操作数右侧操作数 a - b = -10
* 乘法 - 相乘的运算符两侧的值 a * b = 200
/ 除 - 由右侧操作数除以左侧操作数 b / a = 2
% 模 - 由右侧操作数和余返回除以左侧操作数 b % a = 0
** 指数- 执行对操作指数(幂)的计算 a**b = 10 的幂 20
// 地板除 - 操作数的除法,其中结果是将小数点后的位数被除去的商。 9//2 =  4 而 9.0//2.0 = 4.0

示例:

 #!/usr/bin/python

 a = 21
b = 10
c = 0 c = a + b
print "Line 1 - Value of c is ", c c = a - b
print "Line 2 - Value of c is ", c c = a * b
print "Line 3 - Value of c is ", c c = a / b
print "Line 4 - Value of c is ", c c = a % b
print "Line 5 - Value of c is ", c a = 2
b = 3
c = a**b
print "Line 6 - Value of c is ", c a = 10
b = 5
c = a//b
print "Line 7 - Value of c is ", c

结果:

 Line 1 - Value of c is 31
Line 2 - Value of c is 11
Line 3 - Value of c is 210
Line 4 - Value of c is 2
Line 5 - Value of c is 1
Line 6 - Value of c is 8
Line 7 - Value of c is 2

2.比较(即关系)运算符

运算符 描述 示例
== 检查两个操作数的值是否相等,如果是,则条件变为真。 (a == b) 不为 true.
!= 检查两个操作数的值是否等相等,如果值不相等,则条件变为真。 (a != b) 为 true.
<> 检查两个操作数的值是否等相等,如果值不相等,则条件变为真。 (a <> b) 结果为true。这类似于!=运算符。
> 检查左操作数的值是否大于右操作数的值,如果是,则条件成立。 (a > b) 为  true.
< 检查左操作数的值是否小于右操作数的值,如果是,则条件成立。 (a < b) 为true.
>= 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。 (a >= b) 不为 true.
<= 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。 (a <= b) 为 true.

示例:

 #!/usr/bin/python

 a = 21
b = 10
c = 0 if ( a == b ):
print "Line 1 - a is equal to b"
else:
print "Line 1 - a is not equal to b" if ( a != b ):
print "Line 2 - a is not equal to b"
else:
print "Line 2 - a is equal to b" if ( a <> b ):
print "Line 3 - a is not equal to b"
else:
print "Line 3 - a is equal to b" if ( a < b ):
print "Line 4 - a is less than b"
else:
print "Line 4 - a is not less than b" if ( a > b ):
print "Line 5 - a is greater than b"
else:
print "Line 5 - a is not greater than b" a = 5;
b = 20;
if ( a <= b ):
print "Line 6 - a is either less than or equal to b"
else:
print "Line 6 - a is neither less than nor equal to b" if ( b >= a ):
print "Line 7 - b is either greater than or equal to b"
else:
print "Line 7 - b is neither greater than nor equal to b"

结果:

 Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b

3、赋值运算符

运算符 描述 示例
= 简单的赋值运算符,赋值从右侧操作数左侧操作数 c = a + b 类似于 a + b 到 c
+= 添加和赋值操作符,它增加了右操作数左操作数和结果赋给左操作数 c += a 类似于 c = c + a
-= 减和赋值操作符,它减去右边的操作数从左边操作数,并将结果赋给左操作数 c -= a 类似于 c = c - a
*= 乘法和赋值操作符,它乘以右边的操作数与左操作数,并将结果赋给左操作数 c *= a 类似于 c = c * a
/= 除和赋值操作符,它把左操作数与正确的操作数,并将结果赋给左操作数 c /= a 类似于 c = c / a
%= 模量和赋值操作符,它需要使用两个操作数模和结果赋给左操作数 c %= a 类似于 c = c % a
**= 指数和赋值运算符,执行指数(幂)计算操作符和赋值给左操作数 c **= a 类似于 c = c ** a
//= 地板除,并分配一个值,执行地板划分对操作和指定值到左操作数 c //= a 类似于 c = c // a

示例:

 #!/usr/bin/python

 a = 21
b = 10
c = 0 c = a + b
print "Line 1 - Value of c is ", c c += a
print "Line 2 - Value of c is ", c c *= a
print "Line 3 - Value of c is ", c c /= a
print "Line 4 - Value of c is ", c c = 2
c %= a
print "Line 5 - Value of c is ", c c **= a
print "Line 6 - Value of c is ", c c //= a
print "Line 7 - Value of c is ", c

结果:

 Line 1 - Value of c is 31
Line 2 - Value of c is 52
Line 3 - Value of c is 1092
Line 4 - Value of c is 52
Line 5 - Value of c is 2
Line 6 - Value of c is 2097152
Line 7 - Value of c is 99864

4.逻辑运算符

and 所谓逻辑与运算符。如果两个操作数都为真,则条件为真。 (a and b) 为 true.
or 所谓逻辑OR运算符。如果有两个操作数都为非零,则条件变为真。 (a or b) 为 true.
not 所谓逻辑非运算符。用反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将为false。 not(a and b) 为 false.

示例:

 #!/usr/bin/python

 a = 10
b = 20
c = 0 if ( a and b ):
print "Line 1 - a and b are true"
else:
print "Line 1 - Either a is not true or b is not true" if ( a or b ):
print "Line 2 - Either a is true or b is true or both are true"
else:
print "Line 2 - Neither a is true nor b is true" a = 0
if ( a and b ):
print "Line 3 - a and b are true"
else:
print "Line 3 - Either a is not true or b is not true" if ( a or b ):
print "Line 4 - Either a is true or b is true or both are true"
else:
print "Line 4 - Neither a is true nor b is true" if not( a and b ):
print "Line 5 - Either a is not true or b is not true"
else:
print "Line 5 - a and b are true"

结果:

 Line 1 - a and b are true
Line 2 - Either a is true or b is true or both are true
Line 3 - Either a is not true or b is not true
Line 4 - Either a is true or b is true or both are true
Line 5 - Either a is not true or b is not true

5.位运算符

运算符 描述 示例
& 二进制AND操作复制一位到一个结果数,如果存在两个操作数。 (a & b) = 12 即  0000 1100
| 二进制或复制操作了一个比特,如果它存在一个操作数中。 (a | b) = 61  即 0011 1101
^ 二进制异或运算符的副本,如果它被设置在一个操作数而不是两个比特。 (a ^ b) = 49  即 0011 0001
~ 二进制的补运算符是一元的,并有“翻转”位的效果。 (~a ) =  -61  即 1100 0011 以2的补码形式由于带符号二进制数。
<< 二进位向左移位运算符。左操作数的值左移由右操作数指定的位数。 a << 2 = 240 即 1111 0000
>> 二进位向右移位运算符。左操作数的值是由右操作数指定的位数向右移动。 a >> 2 = 15 即  0000 1111

示例:

 #!/usr/bin/python

 a = 60            # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0 c = a & b; # 12 = 0000 1100
print "Line 1 - Value of c is ", c c = a | b; # 61 = 0011 1101
print "Line 2 - Value of c is ", c c = a ^ b; # 49 = 0011 0001
print "Line 3 - Value of c is ", c c = ~a; # -61 = 1100 0011
print "Line 4 - Value of c is ", c c = a << 2; # 240 = 1111 0000
print "Line 5 - Value of c is ", c c = a >> 2; # 15 = 0000 1111
print "Line 6 - Value of c is ", c

结果:

 Line 1 - Value of c is 12
Line 2 - Value of c is 61
Line 3 - Value of c is 49
Line 4 - Value of c is -61
Line 5 - Value of c is 240
Line 6 - Value of c is 15

6.成员运算符

运算符 描述 实例
in 如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

示例:

 #!/usr/bin/python
# -*- coding: UTF-8 -*- a = 10
b = 20
list = [1, 2, 3, 4, 5 ]; if ( a in list ):
print "1 - 变量 a 在给定的列表中 list 中"
else:
print "1 - 变量 a 不在给定的列表中 list 中" if ( b not in list ):
print "2 - 变量 b 不在给定的列表中 list 中"
else:
print "2 - 变量 b 在给定的列表中 list 中" # 修改变量 a 的值
a = 2
if ( a in list ):
print "3 - 变量 a 在给定的列表中 list 中"
else:
print "3 - 变量 a 不在给定的列表中 list 中"

结果:

 1 - 变量 a 不在给定的列表中 list 中
2 - 变量 b 不在给定的列表中 list 中
3 - 变量 a 在给定的列表中 list 中

7.标识操作符

运算符 描述 示例
is 计算结果为true,如果操作符两侧的变量指向相同的对象,否则为false。 x是y,这里结果是1,如果id(x)的值为id(y)。
is not 计算结果为false,如果两侧的变量操作符指向相同的对象,否则为true。 x不为y,这里结果不是1,当id(x)不等于id(y)。

示例:

 #!/usr/bin/python

 a = 20
b = 20 if ( a is b ):
print "Line 1 - a and b have same identity"
else:
print "Line 1 - a and b do not have same identity" if ( id(a) == id(b) ):
print "Line 2 - a and b have same identity"
else:
print "Line 2 - a and b do not have same identity" b = 30
if ( a is b ):
print "Line 3 - a and b have same identity"
else:
print "Line 3 - a and b do not have same identity" if ( a is not b ):
print "Line 4 - a and b do not have same identity"
else:
print "Line 4 - a and b have same identity"

结果:

 Line 1 - a and b have same identity
Line 2 - a and b have same identity
Line 3 - a and b do not have same identity
Line 4 - a and b do not have same identity

8.Python运算符优先级

  运算符优先级来确定条件的表达式中的分组。这会影响一个表达式如何计算。某些运算符的优先级高于其他;例如,乘法运算符的优先级比加法运算更高。

  例如x=7 + 3* 2;这里,x被赋值13,而不是20,因为运算符*的优先级比+更高,所以它首先乘以3 * 2,然后加7。

  这里,具有最高优先级运算符出现在表格上方,那些最低的显示在底部。在一个表达式,更高的优先级运算符将首先计算。

运算符 描述
** 幂(指数)
~ + - 补码,一元加号和减号(方法名的最后两个+@和 - @)
* / % // 乘,除,取模和地板除
+ - 加法和减法
>> << 左,右按位转移
& 按位“与”
^ | 按位异或`'和`定期'或'
<= < > >= 比较运算符
<> == != 等式运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 运算符标识
in not in 成员运算符
not or and 逻辑运算符

示例:

 #!/usr/bin/python

 a = 20
b = 10
c = 15
d = 5
e = 0 e = (a + b) * c / d #( 30 * 15 ) / 5
print "Value of (a + b) * c / d is ", e e = ((a + b) * c) / d # (30 * 15 ) / 5
print "Value of ((a + b) * c) / d is ", e e = (a + b) * (c / d); # (30) * (15/5)
print "Value of (a + b) * (c / d) is ", e e = a + (b * c) / d; # 20 + (150/5)
print "Value of a + (b * c) / d is ", e

结果:

 Value of (a + b) * c / d is 90
Value of ((a + b) * c) / d is 90
Value of (a + b) * (c / d) is 90
Value of a + (b * c) / d is 50

三、列表与元组的基本操作

列表:

1.基本列表操作

  

Python 表达式 结果 描述
len([1, 2, 3]) 3 长度
[1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 串联
['Hi!'] * 4 ['Hi!', 'Hi!', 'Hi!', 'Hi!'] 重复
3 in [1, 2, 3] True 成员
for x in [1, 2, 3]: print x, 1 2 3 迭代

2.切片与索引

 list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5, 6, 7] print("list1[0]: ", list1[0]) #拿第一个元素
print("list2[1:5]: ", list2[1:5]) #顾头不顾尾,切片
print("list1[0]:", list1[::2]) #每两个步长取一个元素

结果:

 list1[0]:  physics
list2[1:5]: [2, 3, 4, 5]
list1[0]: ['physics', 1997]

3.更新列表

 #!/usr/bin/python

 list = ['physics', 'chemistry', 1997, 2000];

 print "Value available at index 2 : "
print list[2];
list[2] = 2001;
print "New value available at index 2 : "
print list[2];

结果:

 Value available at index 2 :
1997
New value available at index 2 :
200

4.删除列表中的元素

要删除列表的元素,可以使用del语句,如果知道哪些元素要删除;或如果你不知道那么使用remove()方法。下面是一个简单的例子:

 #!/usr/bin/python

 list1 = ['physics', 'chemistry', 1997, 2000];

 print list1;
del list1[2];
print "After deleting value at index 2 : "
print list1;

结果:

 ['physics', 'chemistry', 1997, 2000]
After deleting value at index 2 :
['physics', 'chemistry', 2000]

5.内置函数列表及方法

Python中包括下面的列表函数功能:

Python中包括下面的列表的方法:

元组

  元组是不可变的Python对象序列。元组的序列就像列表。唯一的区别是,元组不能被改变,即元组是不可被修改。元组使用小括号,而列表使用方括号。

  元组的方法只有两个:

 list.count(obj)
list.index(index, obj)

四、字典的基本操作

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:

 dict = {'Alice': '', 'Beth': '', 'Cecil': ''}

也可以用上面的代码来创建一个字典。

键在一个字典中是唯一的,而值可能不是。字典的值可以是任何类型的,但键必须是不可变的数据类型,例如字符串,数字,或元组。

1.访问一个字典的值:

要访问字典元素,您可以使用熟悉的方括号一起的关键,获得它的值。下面是一个简单的例子:

 #!/usr/bin/python

 dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};

 print "dict['Name']: ", dict['Name'];
print "dict['Age']: ", dict['Age'];

结果:

 dict['Name']:  Zara
dict['Age']: 7

2.更新字典:

可以通过添加一个新条目或项目(即一个键 - 值对),修改现有条目或删除。作为简单的例子,如下图所示在现有条目更新字词:

 #!/usr/bin/python

 dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};

 dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School"; # Add new entry print "dict['Age']: ", dict['Age'];
print "dict['School']: ", dict['School'];

结果:

 dict['Age']:  8
dict['School']: DPS School

3.删除字典元素:

可以删除单个字典元素或清除字典中的全部内容。也可以删除整个字典在一个单一的操作。

要删除整个字典,只要用del语句。下面是一个简单的例子:

 #!/usr/bin/python

 dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};

 del dict['Name']; # remove entry with key 'Name'
dict.clear(); # remove all entries in dict
del dict ; # delete entire dictionary print "dict['Age']: ", dict['Age'];
print "dict['School']: ", dict['School'];

这将产生以下结果。注意引发异常,这是因为经过del dict删除,字典已经不存在了:

 dict['Age']:
Traceback (most recent call last):
File "test.py", line 8, in <module>
print "dict['Age']: ", dict['Age'];
TypeError: 'type' object is unsubscriptable

4.字典的键的属性

字典值没有限制。它们可以是任意Python对象,无论是标准的对象或用户定义的对象。但是作为键,是不可以这样的。

要记住字典中的键的两个要点:

(一)不准一个键对应多个条目。这意味着不能有重复的键。当有重复的键,在分配过程中以最后分配的为准。下面是一个简单的例子:

 #!/usr/bin/python

 dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'};

 print "dict['Name']: ", dict['Name'];

当执行上面的代码,产生以下结果:

 dict['Name']:  Manni

(二)键的值字必须是不可变的。这意味着可以使用字符串,数字或元组作为字典的键,但像['key']是不允许的。下面是一个简单的例子:

 #!/usr/bin/python

 dict = {['Name']: 'Zara', 'Age': 7};

 print "dict['Name']: ", dict['Name'];

结果:

 Traceback (most recent call last):
File "test.py", line 3, in <module>
dict = {['Name']: 'Zara', 'Age': 7};
TypeError: list objects are unhashable

5.内置字典功能和方法

Python中包括以下字典功能:

Python中包括以下字典方法:

五、字符编码与转码

Python2.X中默认的字符编码为Unicode

Python3.X中默认字符编码为Utf-8

下面举例说明:

Python3.X

msg = "我爱北京天安门"
#msg_gb2312 = msg.decode("utf-8").encode("gb2312")
msg_gb2312 = msg.encode("gb2312") #默认就是unicode,不用再decode,喜大普奔
gb2312_to_unicode = msg_gb2312.decode("gb2312")
gb2312_to_utf8 = msg_gb2312.decode("gb2312").encode("utf-8") print(msg)
print(msg_gb2312)
print(gb2312_to_unicode)
print(gb2312_to_utf8)

结果:

utf-8
我爱北京天安门
b'\xce\xd2\xb0\xae\xb1\xb1\xbe\xa9\xcc\xec\xb0\xb2\xc3\xc5'
我爱北京天安门
b'\xe6\x88\x91\xe7\x88\xb1\xe5\x8c\x97\xe4\xba\xac\xe5\xa4\xa9\xe5\xae\x89\xe9\x97\xa8'

六、模块初探

一个模块可以在逻辑上组织Python代码。将相关的代码到一个模块中,使代码更容易理解和使用。模块是可以绑定和借鉴任意命名属性的Python对象。

简单地说,一个模块是由Python代码的文件。一个模块可以定义函数,类和变量。模块还可以包括可运行的代码。

sys模块

导入sys模块,调用argv方法

#!/usr/bin/env python
# -*- coding: utf-8 -*- import sys print(sys.argv)

输出结果:

E:\learn_python\day02>D:\python3.5\python.exe blog.py 1 2 3
['blog.py', '1', '2', '3']

os模块

#!/usr/bin/env python
# -*- coding: utf-8 -*- import os os.system("df -h") #调用系统命令

进击的Python【第二章】:Python基础(二)的更多相关文章

  1. python第二天 : 计算机基础(二)

    目录 1.什么是编程 2.操作系统有什么用? 3.计算机由哪三大部分组成? 4.简述操作系统和应用程序的启动流程? 5.编程语言的分类有哪些?并评估各个分类的优缺点. 1).机器语言 2).汇编语言 ...

  2. 简学Python第二章__巧学数据结构文件操作

    #cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff ...

  3. 第二章Python入门

    第二章 Python入门 2.1.简介 Python是著名的"龟叔"(Guido van Rossum)在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言 Pytho ...

  4. [Python笔记][第二章Python序列-复杂的数据结构]

    2016/1/27学习内容 第二章 Python序列-复杂的数据结构 堆 import heapq #添加元素进堆 heapq.heappush(heap,n) #小根堆堆顶 heapq.heappo ...

  5. [Python笔记][第二章Python序列-tuple,dict,set]

    2016/1/27学习内容 第二章 Python序列-tuple tuple创建的tips a_tuple=('a',),要这样创建,而不是a_tuple=('a'),后者是一个创建了一个字符 tup ...

  6. [python笔记][第二章Python序列-list]

    2016/1/27学习内容 第二章 Python序列-list list常用操作 list.append(x) list.extend(L) list.insert(index,x) list.rem ...

  7. 孤荷凌寒自学python第二十八天python的datetime.date模块

     孤荷凌寒自学python第二十八天python的datetime.date模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.toordinal() 此方法将访问从公元1年1月1日至当 ...

  8. 孤荷凌寒自学python第二十二天python类的继承

    孤荷凌寒自学python第二十二天python类的继承 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) python中定义的类可以继承自其它类,所谓继承的概念,我的理解 是,就是一个类B继承自 ...

  9. java面向对象编程——第二章 java基础语法

    第二章 java基础语法 1. java关键字 abstract boolean break byte case catch char class const continue default do ...

  10. RxJava2实战--第二章 RxJava基础知识

    第二章 RxJava基础知识 1. Observable 1.1 RxJava的使用三步骤 创建Observable 创建Observer 使用subscribe()进行订阅 Observable.j ...

随机推荐

  1. Nginx设置线程数为整机内核数的俩倍!

    Nginx设置线程数为整机内核数的俩倍!

  2. 关于break语句如何结束多重循环的嵌套

    在Java中的break语句功能大体上同c语言, 用于循环语句中,表示结束当前循环. 但是有时候在循环嵌套语句中,仅仅靠一 个break语句想实现是不够的. 例: 如果想使sum在501时就直接输出, ...

  3. 获取exr图片上像素点的颜色通道

    google了好久,都没找到合适的方法,还是自己撸一串吧. import OpenEXR, Imath, array def get_channel(exr_file,pixel_pos,channe ...

  4. jQuery EasyUI Combobox 无法获取属性 options 的值: 对象为 null 或未定义

    错误的写法: $('#combobox1').combobox({ valueField: 'id', textField: 'text',data:[{id:1,text:'蚂蚁小羊'}]}); 正 ...

  5. 使用stack的思考

    对于使用stack进行()的配对检查,不需要使用额外的空间对每个字符进行存储和push与pop的操作. 只使用size对()进行处理即可,因为只有一种括号,所以入栈为size加1,出栈为size-1. ...

  6. linux 命令02

    cp 文件 路径 文件拷贝 cp -a 目录 路径 拷贝目录 cd .. 回到上一级目录 mv 需要移动目录(文件) 移动目的地 移动目录(文件) pwd 查看用户当前所在路径 ls 查看目录列表 m ...

  7. jquery easyui tree动态加载子节点

    1.前端tree绑定时,使用onBeforeExpand事件:当节点展开时触发加载子节点,自动会向服务端发送请求:url为绑定url,参数为当前节点id this.tree = { method: ' ...

  8. 前端构建工具的用法—grunt、gulp、browserify、webpack

    随着前端项目的飞速发展,项目越来越大.文件越来越多,前端工程化的工具也越来越多.下面介绍目前最流行的四种构建工具——grunt.gulp.browserify.webpack 所有的构建工具都是基于N ...

  9. localstorage 和 sessionstorage 本地存储

    在我们日常的工作和实际项目中,做好数据数据缓存可以是我们的程序执行效率更高,可以使我们避免重复请求 服务器,减轻服务器的压力,可以提高使用户的体验度. 那么 HTML5 存储的目标是什么? 1.解决存 ...

  10. 转:C++项目中的extern "C" {}

    引言 在用C++的项目源码中,经常会不可避免的会看到下面的代码: #ifdef __cplusplus extern "C" { #endif /*...*/ #ifdef __c ...