Python 数字


Python 数字数据类型用于存储数值。
数据类型是不允许改变的,这就意味着如果改变数字数据类型得值,将重新分配内存空间。
以下实例在变量赋值时数字对象将被创建:
1
2
var1 = 1
var2 = 10

您也可以使用del语句删除一些数字对象引用。

1
2
del var
del var_a, var_b

Python 支持四种不同的数值类型:
整型(Int) - 通常被称为是整型或整数,是正或负整数,不带小数点。
长整型(long integers) - 无限大小的整数,整数最后是一个大写或小写的L。
浮点型(floating point real values) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)
复数( (complex numbers)) - 复数的虚部以字母J 或 j结尾 。如:2+3i

Python数字类型转换


1
2
3
4
5
6
7
8
9
10
11
12
13
14
int(x [,base ])         将x转换为一个整数  
long(x [,base ]) 将x转换为一个长整数
float(x ) 将x转换到一个浮点数
complex(real [,imag ]) 创建一个复数
str(x ) 将对象 x 转换为字符串
repr(x ) 将对象 x 转换为表达式字符串
eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s ) 将序列 s 转换为一个元组
list(s ) 将序列 s 转换为一个列表
chr(x ) 将一个整数转换为一个字符
unichr(x ) 将一个整数转换为Unicode字符
ord(x ) 将一个字符转换为它的整数值
hex(x ) 将一个整数转换为一个十六进制字符串
oct(x ) 将一个整数转换为一个八进制字符串

Python 字符串


字符串是 Python 中最常用的数据类型。我们可以使用引号来创建字符串。
创建字符串很简单,只要为变量分配一个值即可。例如:
1
2
var1 = 'Hello World!'
var2 = "Python Programming"

Python访问字符串中的值


Python不支持单字符类型,单字符也在Python也是作为一个字符串使用。
Python访问子字符串,可以使用方括号来截取字符串,如下实例:
1
2
3
4
5
6
7
#!/usr/bin/python

var1 = 'Hello World!'
var2 = "Python Programming"

print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]

结果为:

1
2
var1[0]:  H
var2[1:5]: ytho

Python字符串更新


你可以对已存在的字符串进行修改,并赋值给另一个变量,如下实例:
1
2
3
4
5
#!/usr/bin/python

var1 = 'Hello World!'

print "Updated String :- ", var1[:6] + 'Python'

以上实例执行结果

1
Updated String :-  Hello Python

字符串运算符


下表实例变量a值为字符串”Hello”,b变量值为”Python”:
1
2
3
4
5
6
+  #字符串连接     a + b 输出结果: HelloPython
* #重复输出字符串 a*2 输出结果:HelloHello
[] #通过索引获取字符串中字符 a[1] 输出结果 e
[ : ] #截取字符串中的一部分 a[1:4] 输出结果 ell
in #成员运算符 - 如果字符串中包含给定的字符返回 True H in a 输出结果 1
not in #成员运算符 - 如果字符串中不包含给定的字符返回 True M not in a 输出结果 1

Python 列表(Lists)


序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
Python有6个序列的内置类型,但最常见的是列表和元组。
序列都可以进行的操作包括索引,切片,加,乘,检查成员。
此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
列表的数据项不需要具有相同的类型
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
1
2
3
list1 = ['physics', 'chemistry', 1997, 2000];
list2 = [1, 2, 3, 4, 5 ];
list3 = ["a", "b", "c", "d"];

与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。

访问列表中的值


使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符,如下所示:
1
2
3
4
5
6
7
#!/usr/bin/python

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]

以上实例输出结果:

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

更新列表


你可以对列表的数据项进行修改或更新,你也可以使用append()方法来添加列表项,如下所示:
1
2
3
4
5
6
7
8
9
#!/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];

注意:我们会在接下来的章节讨论append()方法的使用
以上实例输出结果:

1
2
3
4
Value available at index 2 :
1997
New value available at index 2 :
2001

删除列表元素


可以使用 del 语句来删除列表的的元素,如下实例:
1
2
3
4
5
6
7
8
#!/usr/bin/python

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

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

结果为:

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

注意:我们会在接下来的章节讨论remove()方法的使用

Python 元组


Python的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
如下实例:
1
2
3
tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";

创建空元组

1
tup1 = ();

元组中只包含一个元素时,需要在元素后面添加逗号

1
tup1 = (50,);

元组与字符串类似,下标索引从0开始,可以进行截取,组合等。

访问元组


元组可以使用下标索引来访问元组中的值,如下实例:
1
2
3
4
5
6
7
#!/usr/bin/python

tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5, 6, 7 );

print "tup1[0]: ", tup1[0]
print "tup2[1:5]: ", tup2[1:5]

以上实例输出结果:

1
2
tup1[0]:  physics
tup2[1:5]: (2, 3, 4, 5)

修改元组


元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如下实例:
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/python
# -*- coding: UTF-8 -*-

tup1 = (12, 34.56);
tup2 = ('abc', 'xyz');

# 以下修改元组元素操作是非法的。
# tup1[0] = 100;

# 创建一个新的元组
tup3 = tup1 + tup2;
print tup3;

以上实例输出结果:

1
(12, 34.56, 'abc', 'xyz')

删除元组


元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组,如下实例:
1
2
3
4
5
6
7
8
#!/usr/bin/python

tup = ('physics', 'chemistry', 1997, 2000);

print tup;
del tup;
print "After deleting tup : "
print tup;

以上实例元组被删除后,输出变量会有异常信息,输出如下所示:

1
2
3
4
5
6
('physics', 'chemistry', 1997, 2000)
After deleting tup :
Traceback (most recent call last):
File "test.py", line 9, in <module>
print tup;
NameError: name 'tup' is not defined

Python 字典(Dictionary)


字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
1
d = {key1 : value1, key2 : value2 }

键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
一个简单的字典实例:

1
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

也可如此创建字典:

1
2
dict1 = { 'abc': 456 };
dict2 = { 'abc': 123, 98.6: 37 };

访问字典里的值


1
2
3
4
5
6
#!/usr/bin/python

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

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

以上实例输出结果:

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

修改字典


向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:
1
2
3
4
5
6
7
8
9
10
#!/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'];

以上实例输出结果:

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

删除字典元素


能删单一的元素也能清空字典,清空只需一项操作。
显示删除一个字典用del命令,如下实例:
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/python
# -*- coding: UTF-8 -*-

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

del dict['Name']; # 删除键是'Name'的条目
dict.clear(); # 清空词典所有条目
del dict ; # 删除词典

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

但这会引发一个异常,因为用del后字典不再存在:

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

字典键的特性
字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。
两个重要的点需要记住:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:

1
2
3
4
5
#!/usr/bin/python

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

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

以上实例输出结果:

1
dict['Name']:  Manni

2)键必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行,如下实例:

1
2
3
4
5
#!/usr/bin/python

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

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

结果为:

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