在上一节的学习中,我们在定义debt = 700时,实际上已经涉及到了数据类型的概念。
就像我们平时说的, 小数, 整数, 复数之间的区别一样, 在每种编程语言中, 数据都可以以不同的形式储存在内存中, 这些不同的形式就叫做【数据类型】。用不同数据类型储存的数据, 具有不同的储存结构, 对应的也就有不同的使用方法和功能。
下面让我们来看一下python中的常用数据类型。
一、数据类型
1、数据类型概览
| 数据类型 | 解释 | 备注 |
|---|---|---|
| 数字(Numbers) | - 整数int, 浮点数float, 复数complex |
|
| 布尔(Booleans) | - 函数为bool, 含有的值为True和False |
|
| 字符串(Strings) | - 函数为str ,Uniconde字符序列, 在引号内包含 |
|
| 列表(list) | - 有序的值的序列 |
|
| 元组(tuple) | - 有序的值的序列且不可改变 |
|
| 字典(Dictionaries) | - 函数为dict, 无序的键值对的组合 |
|
| 集合(Sets) | - 函数为set, 无序的不含重复值的序列 |
(1)string 字符串
字符串是 Python 中最常用的数据类型。我们可以使用引号 ( ‘ 或 “ ) 来创建字符串。创建字符串很简单,只要为变量分配一个值即可。例如:
var01 = '我的名字是:'var02 = '小虎'"""请注意,python不区分单字符变量和多字符变量,这与其他编程语言可能不同,如java分别用char和String定义单字符和多字符串"""
1、字符串的拼接
var01 = '我的名字是:'var02 = '小虎'print(var01 + var02)var03 = var01 + var02print(var03)
2、转义符
| 转义字符 | 描述 |
|---|---|
| \(在行尾时) | 续行符 |
| \\ | 反斜杠符号 |
| \‘ | 单引号 |
| \“ | 双引号 |
| \a | 响铃 |
| \b | 退格(Backspace) |
| \e | 转义 |
| \000 | 空 |
| \n | 换行 |
| \v | 纵向制表符 |
| \t | 横向制表符 |
| \r | 回车 |
| \f | 换页 |
| \oyy | 八进制数,y 代表 0~7 的字符,例如:\012 代表换行。 |
| \xyy | 十六进制数,以 \x 开头,yy代表的字符,例如:\x0a代表换行 |
| \other | 其它的字符以普通格式输出 |
举例如下
如需要在字符中使用特殊字符时,python用反斜杠\转义字符,这会产生至少1个问题:
3、windows系统写的路径名的转义问题
问题描述
在windows系统中,上下级文件夹之间、文件夹与文件名之间均是用\来分隔的,一个完整的路径举例为(请注意下面这一变量赋值是错误的,仅是为了举例):
file = 'd:\OneDrive\07_参与审计项目记录\03_211231XXXX年报审计\XXXX总体架构图.pdf'
但由于python用反斜杠\转义字符,上面的路径在实际应用时会直接报错,因为其中原本正常的分隔符\会被当作转义符,直接导致路径不能识别,产生EOL相关报错。
解决办法1
file = 'd:\\OneDrive\\07_参与审计项目记录\\03_211231XXXX年报审计\XXXX总体架构图.pdf'
解决办法2
file = r'd:\OneDrive\07_参与审计项目记录\03_211231XXXX年报审计\XXXX总体架构图.pdf'"""上面代码中,字符串前加r后,r后相邻的被引号包围起来的字符串部分,其中的\不会被作为分隔符,而是视作正常的路径分隔符r表示"row",简单理解为对后续的内容不执行转义"""
2、数据类型转换
有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。
以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。
| 函数 | 描述 |
|---|---|
| int(x [,base]) | 将x转换为一个整数 |
| float(x) | 将x转换到一个浮点数 |
| complex(real [,imag]) | 创建一个复数 |
| str(x) | 将对象 x 转换为字符串 |
| repr(x) | 将对象 x 转换为表达式字符串 |
| eval(str) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
| tuple(s) | 将序列 s 转换为一个元组 |
| list(s) | 将序列 s 转换为一个列表 |
| set(s) | 转换为可变集合 |
| dict(d) | 创建一个字典。d 必须是一个 (key, value)元组序列。 |
| frozenset(s) | 转换为不可变集合 |
| chr(x) | 将一个整数转换为一个字符 |
| ord(x) | 将一个字符转换为它的整数值 |
| hex(x) | 将一个整数转换为一个十六进制字符串 |
| oct(x) | 将一个整数转换为一个八进制字符串 |
二、运算符
1、Python内置的基础运算符
| 运算符 | 描述 | 实例 |
|---|---|---|
| + | 加 | 两个对象相加 a + b 输出结果 30 |
| - | 减 | 得到负数或是一个数减去另一个数 a - b 输出结果 -10 |
| * | 乘 | 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200 |
| / | 除 | x除以y b / a 输出结果 2 |
| // | 取整除 | 返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0 |
| % | 取余 | 返回除法的余数 b % a 输出结果 0 |
| ** | 幂 | 返回x的y次幂 a**b 为10的20次方, 输出结果 100000000000000000000 |
2、Python内置的计算函数
| 函数 | 说明 |
|---|---|
| abs(x) | 返回x的绝对值,类型随x |
| max(n1, n2, …) | 返回最大值 |
| min(n1, n2, …) | 返回最小值 |
| round(x [,n]) | 默认返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的n位。 例如round(1.23456, 3)返回1.235 |
3、复合赋值运算符
| 运算符 | 描述 | 实例 |
|---|---|---|
| += | 加法赋值运算符 | c += a 等效于 c = c + a |
| -= | 减法赋值运算符 | c -= a 等效于 c = c - a |
| *= | 乘法赋值运算符 | c = a 等效于 c = c a |
| /= | 除法赋值运算符 | c /= a 等效于 c = c / a |
| %= | 取模赋值运算符 | c %= a 等效于 c = c % a |
| **= | 幂赋值运算符 | c = a 等效于 c = c a |
| //= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
4、比较运算符
| 运算符 | 描述 | 示例 |
|---|---|---|
| == | 检查两个操作数的值是否相等,如果是则条件变为真。 | 如a=3,b=3则(a == b) 为 true. |
| != | 检查两个操作数的值是否相等,如果值不相等,则条件变为真。 | 如a=1,b=3则(a != b) 为 true. |
| > | 检查左操作数的值是否大于右操作数的值,如果是,则条件成立。 | 如a=7,b=3则(a > b) 为 true. |
| < | 检查左操作数的值是否小于右操作数的值,如果是,则条件成立。 | 如a=7,b=3则(a < b) 为 false. |
| >= | 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。 | 如a=3,b=3则(a >= b) 为 true. |
| <= | 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。 | 如a=3,b=3则(a <= b) 为 true. |
5、逻辑运算符
| 运算符 | 逻辑表达式 | 描述 | 实例 |
|---|---|---|---|
| and | x and y | 布尔”与” - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 | (a and b) 返回 20。 |
| or | x or y | 布尔”或” - 如果 x 是 True,它返回 True,否则它返回 y 的计算值。 | (a or b) 返回 10。 |
| not | not x | 布尔”非” - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not(a and b) 返回 False |
与 and 代表符号的两边如果都为真,则结果为真或 or 两边如果有一边以上为真,则结果真非 not 颠倒真和假,如果原来是真,就变成假,如果原来是假,就变成真
6、math科学计算库
| 函数 | 说明 |
|---|---|
| fabs(x) | 返回x的绝对值,类型是浮点数 |
| ceil(x) | 取x的上入整数,如math.ceil(4.1)返回5 |
| floor(x) | 取x的下入整数,如math.floor(4.9)返回4 |
| exp(x) | 返回e的x次幂,e是自然常数 |
| sqrt(x) | 返回x的平方根,返回值是float类型 |
| modf(x) | 返回x的整数部分和小数部分,两部分的符号与x相同,整数部分以浮点型表示。例如math.modf(4.333),返回元组(0.3330000000000002, 4.0) |
| log10(x) | 返回以10为基数的x的对数,返回值类型是浮点数 |
| log(x,y) | 返回以y为基数的x的对数,返回值类型是浮点数 |
| pow(x, y) | 返回x的y次幂,即x**y |
