一、数据类型、运算符
数据类型
Python核心\常用数据类型:
数字、列表、元组、字典、集合、字符串
- 在python中变量不直接存储值,而是存储值的内存地址或者引用。
- 在python中,不需要事先声明变量名及其类型。使用赋值语句可以直接创建任意类型的变量,变量的类型取决于等号右侧表达式值的类型。
- 赋值时(比如 a = ‘abc’),python解释器做了两件事:①内存中开启空间存放’abc’字符串;②在内存中创建一个名为a的变量,并把它指定该字符串。
数字num
- Python支持:int,float,complex三种不同的数字类型。
type(a)
:返回变量a的数据类型名称;
isinstance(a,int)
:判断变量a是否是int类型。
补充:instance‘实例’,isinstance是Python中的一个内置函数。是用来判断一个对象的变量类型。 print(0.4-0.3 == 0.1)
#其中==
是值相同判断,返回布尔类型值。浮点数之间不建议直接进行值判断,因为有误差。print(math.isclose(0.4-0.3 == 0.1))
#测试两个实数是否足够接近。其中math.isclose
是判断函数,返回布尔类型值。- 特点:不可变类型
字符串
- 使用符号:
单引号、双引号、三引号(三个单引号、三个双引号);
中间可以使用\转义特殊字符 - Python源文件默认以UTF-8编码,所有字符串都是Unicode字符串。
- 特点:不可变类型;属于序列。
- 支持字符串拼接、截取等多种操作:
- 拼接:符号
+
- 截取:使用方括号进行‘切片’,如
a = 'hello'
print(a[1:4])
#截取从位置1到位置3,即ell,并输出。中间用到索引操作,python中凡是索引都是从0开始。 - 以上操作属于序列的通用操作,字符串属于序列一种。
- 拼接:符号
- 序列:
- 包括: 字符串、列表、元组。
- 操作:索引、分片、拼接、重复、测长、for循环、三者类型之间转换。
列表list
- 符号:使用方括号
[]
,元素之间使用逗号,
分隔; - 特点:可变类型;属于序列。
- 操作:
- list属于序列,满足序列通用的操作:索引、拼接、重复、分片、测长、for循环、类型转换;
- list可以完成大多数集合类的数据结构实现;
- 列表中元素的类型可以不相同,支持数字、字符串、list自身(所谓嵌套)等
元组tuple
- 符号:使用小括号
()
,元素之间逗号,
分割; - 特点:和列表类似,属于序列,但与列表符号不同,且是不可变类型,但可以包含可变对象,如list。
- 注意:定义一个只有1个元素的tuple时,也必须加上逗号,如:
t1 = <mark>(1,)
。
字典dict
- 字典使用
'键':‘值’
的形式存储,具有极快的查找速度。 - 键必须属于不可变类型,且同一字典中键必须唯一。
- 字典是无序的对象集合,
集合set
- 集合和dict字典类似,也是无序的,也是一组key键的集合,不是值的集合,它不存储value值。
- 也具有key键的特点:不能重复,必须唯一,重复的元素在set中虽然不会出错,但会被自动过滤掉。
- 如:
s = set([1,2,3])
s
#结果显示{1,2,3}
s = set([1,1,2,3,3])
s
#结果显示{1,2,3} - 注:set可以看成数学上的无序和无重复元素的集合,因此两个set也可以进行数学意义上的交集(
&
)、并集(|
)、差集(-
)
运算符
算术、关系、逻辑、赋值运算符、成员运算符、身份运算符
算术运算符
包含:+ - * / % ** //
Tips:
+
运算符楚克用于算术运算符加法以外,还可以用于列表、元组、字符串(即序列)的连接。-
除了整数、实数、复数之间的算术减法和相反数之外,还可以计算集合的差集。且进行实数之间的运算时,有可能出现误差。*
除了表示整数、实数、复数之间的算术乘法,还可以用于序列(列表、元组、字符串)对象与整数的乘法,表示序列元素的重复,生成新的序列。如'123'*2
表示字符串123重复两遍生成一个新的字符串'123123'
。%
运算符除了可以用于求余数的运算,还可以用于字符串格式化操作。
关系运算符
包含:== != > < >= <=
数值之间可以进行值大小判定;
字符串、列表按元素顺序进行编码ASCⅡ码大小比较;
集合之间按照包含关系进行比较;
结果都只返回True或False。
赋值运算符=
补充:算术运算符可以和赋值运算符结合使用。
逻辑运算符
包含:and or not。
and
布尔与。全为真结果为真。当第一个为False时,返回False,后面的不进行运算。当第一个为True,进行第二个判断,如果为False,返回False,为True,返回第二个的值。
or
布尔或。其中一个为真结果为真。当第一个为真时,后面的不进行运算,结果返回第一个的值,;当第一个为假,进行第二个判断,如果为真,返回第二个的值;全为假返回False。
not
布尔非。如果x为True,返回False;如果x为False,返回True。
成员运算符
in
如果在指定的序列中找到值返回True,否则返回False;
not in
如果在指定的序列中没有找到值返回True,否则返回False。
补充:
python中遇到一个新的函数,要使用帮助文档
help(函数名)
身份运算符
包含:is 、 is not
is
is是判断两个标识符是不是引用自一个对象。x is y
类似id(x) == id(y)
;
is 和==的区别:is是判断两个变量引用对象是否是同一个;==是判断引用变量的值是否相等。
is not
判断两个标识符是不是引用来自不同的对象。x is not y
类似id(x) != id(y)
;。
相同简单整数的地址是一样的。