2.基本数据类型

基本数据类型
1)Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
2)在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
3)等号(=)用来给变量赋值。等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。

多个变量赋值
>>> a = b = c = 1;d,e,f = 1,2,3

标准数据类型
Python3 中有六个标准的数据类型:
1)Number(数字)
<1>数字类型包括int、float、bool、complex(复数)。像大多数语言一样,数值类型的赋值和计算都是很直观的。内置的 type() 函数可以用来查询变量所指的对象类型。
>>> a,b,c,d = 1,2.3,True,2 + 4j
>>> print(type(a),type(b),type(c),type(d))
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>

此外,还可以用isinstance来判断:
>>> isinstance(a,int)
True
<2>type和isinstance的区别:
1)type()不会认为子类是一种父类类型。
2)isinstance()会认为子类是一种父类类型。
>>> class A:
... pass
...
>>> class B(A):
... pass
...
>>> type(A()) == A
True
>>> type(B()) == B
True
>>> type(B()) == A
False
>>> isinstance(A(),A)
True
>>> isinstance(B(),B)
True
>>> isinstance(B(),A)
True
<3>创建和删除数值对象:
赋值时即创建一个对象,可以用del语句删除对象
>>> a = 6
>>> a
6
>>> del a
>>> a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
<4>数值运算:
>>> a,b = 17,3
>>> a + b #加法
20
>>> a - b #减法
14
>>> a * b #乘法
51
>>> a / b #除法,得到一个浮点数
5.666666666666667
>>> a // b #除法,得到一个整数
5
>>> a % b #取余
2
>>> a ** b #乘方
4913
<5>Python还支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型

2)String(字符串)
<1>Python中的字符串用单引号(')或双引号(")括起来。字符串的截取的语法格式:变量[头下标:尾下标]
<2>索引值以 0 为开始值,-1 为从末尾的开始位置。
<3>加号 (+) 是字符串的连接符, 星号 (*) 表示复制当前字符串,紧跟的数字为复制的次数。
>>> strs = "python"
>>> print(strs)
python
>>> print(strs[:])
python
>>> print(strs[0:])
python
>>> print(strs[0:-1])
pytho
>>> print(strs[2:4])
th
>>> print(strs * 2)
pythonpython
>>> print(strs + " test")
python test

<4>Python 使用反斜杠(\)转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串:
>>> print("test\no newline")
test
o newline
>>> print(r"test\no newline")
test\no newline
<5>另外,反斜杠(\)可以作为续行符,表示下一行是上一行的延续。也可以使用 """...""" 或者 '''...''' 跨越多行。
<6> 与 C 字符串不同的是,Python 字符串不能被改变。向一个索引位置赋值,比如word[0] = 'm'会导致错误。

3)List(列表)
<1>List(列表) 是 Python 中使用最频繁的数据类型。
<2>列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
<3>列表是写在方括号([])之间、用逗号分隔开的元素列表。
<4>和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
<5> 与Python字符串不一样的是,列表中的元素是可以改变的。
>>> lists = [12,"python",False,2.1]
>>> list2 = ["red","orange","yellow","green","blue","cyan","purple"]
>>> print(lists)
[12, 'python', False, 2.1]
>>> print(list2)
['red', 'orange', 'yellow', 'green', 'blue', 'cyan', 'purple']
>>> print(lists[1:3])
['python', False]
>>> print(lists[:])
[12, 'python', False, 2.1]
>>> print(lists * 2)
[12, 'python', False, 2.1, 12, 'python', False, 2.1]
>>> print(lists + list2)
[12, 'python', False, 2.1, 'red', 'orange', 'yellow', 'green', 'blue', 'cyan', 'purple']
>>> lists[0] = 13
>>> print(lists)
[13, 'python', False, 2.1]

4)Tuple(元组)
<1>元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。
<2>元组中的元素类型也可以不相同:
>>> tuples = (13,"xiaoming","male",1.65)
>>> tuple2 = (15,"xiaolan","female",1.58)
>>> print(tuples[:])
(13, 'xiaoming', 'male', 1.65)
>>> print(tuples[1:2])
('xiaoming',)
>>> print(tuples[2:])
('male', 1.65)
>>> print(tuples*3)
(13, 'xiaoming', 'male', 1.65, 13, 'xiaoming', 'male', 1.65, 13, 'xiaoming', 'male', 1.65)
>>> print(tuples + tuple2)
(13, 'xiaoming', 'male', 1.65, 15, 'xiaolan', 'female', 1.58)
>>> tuples[0] = 14
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
<3>虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。
<4>构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:
>>> hobby = ["singing","dancing","painting"]
>>> student1 = ("Tom",15,hobby)
>>> student1[2]
['singing', 'dancing', 'painting']
>>> hobby[1] = "programming"
>>> student1[2]
['singing', 'programming', 'painting']
>>> tuple2 = ()
>>> tuple3 = (1,)
>>> print(tuple2,tuple3)
() (1,)

5)Sets(集合)
<1>集合(set)是一个无序不重复元素的序列。
<2>基本功能是进行成员关系测试和删除重复元素。
<3>可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
>>> set1 = {"student","teacher","other"}
>>> set2 = set([13,23,24])
>>> set1
{'other', 'teacher', 'student'}
>>> set2
{24, 13, 23}

>>> student = {"Tom","Jim","Jim","Jack","Linda"}
>>> if "Jack" in student:#成员测试
... print("Jack in set of student")
... else:
... print("Jack not in set of student")
...
Jack in set of student
>>> set3 = set("adbcadceogm")
>>> set4 = set("cafoegnb")
>>> print(set3-set4) #求差集,在set3中不在set4中
{'m', 'd'}
>>> print(set3|set4) #求并集,包含set3和set4的集合
{'c', 'm', 'f', 'd', 'e', 'o', 'g', 'a', 'n', 'b'}
>>> print(set3&set4) #求交集,同时存在的元素构成的集合
{'c', 'e', 'o', 'g', 'a', 'b'}
>>> print(set3^set4) #求不同时存在的元素构成的集合
{'m', 'f', 'd', 'n'}

6)Dictionary(字典)
<1>字典(dictionary)是Python中另一个非常有用的内置数据类型。
<2>列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
<3>字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。
<4>键(key)必须使用不可变类型。
<5>在同一个字典中,键(key)必须是唯一的。
>>> dicts["name"] = "runoob"
>>> dicts
{'name': 'runoob'}
>>> dicts[3] = "test"
>>> dicts
{'name': 'runoob', 3: 'test'}
>>> dicts.keys()
dict_keys(['name', 3])
>>> dicts.values()
dict_values(['runoob', 'test'])

Python3 的六个标准数据类型中:
1)不可变数据(四个):Number(数字)、String(字符串)、Tuple(元组)、Sets(集合);
2)可变数据(两个):List(列表)、Dictionary(字典)。

猜你喜欢

转载自blog.csdn.net/qq_33575901/article/details/80949588
今日推荐