第二章《基础语法》第一节:Python数据类型和运算符

一、数据类型、运算符

数据类型

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
isis是判断两个标识符是不是引用自一个对象。x is y类似id(x) == id(y)
is 和==的区别:is是判断两个变量引用对象是否是同一个;==是判断引用变量的值是否相等。
is not 判断两个标识符是不是引用来自不同的对象。x is not y类似id(x) != id(y);。
相同简单整数的地址是一样的。


发布了5 篇原创文章 · 获赞 2 · 访问量 1664

猜你喜欢

转载自blog.csdn.net/GRIT_zhang/article/details/104711021