数据类型(上)Note-Python-3

240 阅读6分钟

数据类型的相关知识,内容包括数值、逻辑值、字符串、变量和引用、上机练习。

一、数值

1. 整数类型:int

最大特点是不限制大小。常见运算如下

大小比较
连续比较判断

>>> 7 > 3 >= 3
 True
 >>> 12 < 23 < 22
 False

数的进制:通常用的十进制是0-9,十个不同符号,逢十进一

Python语言中可以直接用二进制、八进制和十六进制来表示整数,只要加一个前缀用以标识几进制即可

2. 浮点数类型:float

  • 操作与整数类似
  • 浮点数受到17位有效数字的限制
  • 特点
    • 科学记数法
    • 有效位数
  • 特性
    • 进制转换导致精度误差

3. 复数类型

Python内置复数数据类型,支持所有常见计算

复数之间只能比较是否相等,求平面上两个点(x1,y1)和(x2,y2)的距离

4. math 模块

  • 数学常数
    • 圆周率π、自然对数的底e等
  • 数学函数
    • 三角函数、对数、最大公约数、最小公倍数等

5. cmath 模块

专门面向复数计算,math模块中的数学函数只能用于计算整数 和浮点数,对于复数就无能为力了

平面直角坐标和极坐标之间的转换

二、逻辑值

判断真与假,and、or、not 运算

优先级:not最高,and次之,or最低

各种类型对应的真值

整数、浮点数和复数类型
0是“假”,所有非0的数值都是“真”

字符串类型
空串("")是“假”,所有非空串都是“真”

所有序列类型(包括字符串)
空序列是“假”,所有非空的序列都是“真”

空值None
表示“无意义”或“不知道”,也是“假”

三、字符串

1. 字符串的表示

字符串就是把一个个文字的字符“串起来”的数据,文字字符包含有拉丁字母、数字、标点符号、特殊符号,以及各种语言文字字符

用双引号或者单引号都可以表示字符串,但必须成对,多行字符串用三个连续单引号表示

特殊字符用转义符号“\”表示

字符的编号:第一个字符的编号是0,第二个字符编号是1,...最后一个字符的编号是-1,倒数第二个字符编号是-2。用这种整数编号可以从字符串中抽取出任何一个字符

2. 字符串与名字的区别

字符串是数据本身,名字是数据的标签,名字和字符串是“名”和“值”之间的关系

  • 一个字符串数值可以关联多个名字
    • 一个名字在同一时刻只能关联一个字符串数值
  • 字符串数值只能是字符串类型
    • 名字则可以关联任意类型的数值

3. 常见的字符串操作

  1. 获取字符串的长度
    • len函数
  2. 切片(slice)操作 -- 左闭右开
    • s[start:end:step]

  1. “加法”和“乘法”
    • +:将两个字符串进行连接,得到新的字符串。
    • *:将字符串重复若干次,生成新的字符串
  2. 判断字符串内容是否相同(==)
>>> a = 'Hello'
 >>> a == 'Hello'
 True
  1. 判断字符串是否包含某个字符串(in)
>>> 'h' in a
 False
 >>> 'H' in a
 True
  1. 删除空格
str.strip:去掉字符串前后的所有空格,内部的空格不受影响
str.lstrip:去掉字符串前部(左部)的所有空格
str.rstrip:去掉字符串后部(右部)的所有空格
  1. 判断字母数字
str.isalpha:判断字符串是否全部由字母构成
str.isdigit:判断字符串是否全部由数字构成
str.isalnum:判断字符串是否仅包含字母和数字,而不含特殊字符

4. 字符串的高级操作

split:分割
join:合并
upper/lower/swapcase:大小写相关
ljust/center/rjust:排版左中右对齐
replace:替换子串

5. 字符串是一种序列

序列(sequence)是能够按照整数顺序排列的数据

序列的内部结构:

  • 可以通过从0开始的连续整数来索引单个对象;
  • 可以执行切片,获取序列的一部分;
  • 可以通过len函数来获取序列中包含多少元素;
  • 可以用加法“+”来连接为更长的序列;
  • 可以用乘法“*”来重复多次,成为更长的序列;
  • 可以用“in”来判断某个元素是否在序列中存在。

四、变量和引用

1. 给数据命名

  • 命名语法

    • <名字> = <数据>
  • 命名规则

    • 字母和数字组合而成,下划线“_”算字母,字母区分大小写
    • 不带特殊字符(如空格、标点、运算符等)
    • 名字的第一个字符必须是字母,而不能是数字

<注:在Python语言的名字规则中,汉字算是字母>

2. 名字与变量

  • 名字(name)

    • 名字像一个标签,通过赋值来“贴”在某个数据数值上
    • 名字和数值的关联,称为引用。
    • 关联数值后的名字,就拥有了数据的值(value)和类型(type)
    • 一个数值可以和多个名字关联
  • 变量(variable)

    • 与数值关联的名字也称作变量,表示名字的值和类型可以随时变化。
    • 变量可以随时指向任何一个数据对象,比如True,1.02,或者"Hello"
    • 变量的类型随着指向的数据对象类型改变而改变!
  • 赋值(assignment)

    • 名字与数值关联的过程,称为给变量赋值
    • “==”(相等关系)是对数值的相等性进行判断
    • “=”(赋值号)则是计算等号右边式子的值,赋值给等号左边的变量
  • 赋值语句

    • 通过赋值号将变量和表达式左右相连的语句
    • 赋值语句the_sum = 0,实际上是创建了名为the_sum的变量,然后指向数据对象“0”

3. 灵活多变的赋值语句

  1. 最基本的赋值语句形式
 <名字> = <数据>
  1. 合并赋值
a = b = c = 1 
  1. 按顺序依次赋值
 a, b, c = 7, 8, 9
  1. 简写赋值语句
price += 1
price *= 1.5
price /= 3 + 4

五、上机练习

1. 数值基本运算:33和7

+, -, *, /, //, %, **
hex(), oct(), bin()

2. 类型转换

 1,0,'abc', None, 1.2, False, ''
 str(), bool(), int(), float()
 is None, ==, !=

3. 字符串基本操作

 +, *, len(), [], in
 ord(), chr()
 含有中文的字符串

4. 字符串高级操作

 s='abcdefg12345'
 切片:获得defg12,获得fg12345,获得54321, 获得aceg2
 t='Mike and Tom'
 split拆分
 upper/lower/swapcase修改大小写
 ljust/center/rjust排版30位宽度左中右对齐
 replace将Mike替换为Jerry

「资料来源:©Python语言基础与应用-中国大学MOOC」