Python种的数据类型包含基本数据类型和符号数据类型两种。
基本数据类型有数值类型、字符串类型和布尔型
复合数据类型有元组、列表和字典

一、基本数据类型

1.1 数值类型

1.1.1整型(int)

整型是带正负号的整数数据
在32位机器上,整数的位数为32位,取值范围为-231~231-1,即-2147483648~2147483647
在64位系统上,整数的位数为64位,取值范围为-263~263-1,即-9223372036854775808~9223372036854775807

1.1.2 浮点型(float)

浮点型表示实数数据,由整数部分、小数点和小数部分组成。
十进制小数表示,0.0表示一个浮点数。
科学计数法,用字母e(或E)表示以10为底数的指数,XeY表示X乘10的y次方。
ps:数值的除法(/)总会返回一个浮点数,获取整数使用(//)
在整数和浮点数混合计算的时候,Python会把整型数据转换为浮点数。

  1. import sys
  2. print(sys.float_info.max)
  3. print(sys.float_info.min)
  4. ##输出当前系统下浮点数所能表示的最大数max和最小数min
  5. 1.7976931348623157e+308
  6. 2.2250738585072014e-308
  7. a=1.23456e5
  8. print(a)
  9. b=123456e-5
  10. print(b)
  11. ##结果
  12. 123456.0
  13. 1.23456

1.1.3 布尔型(bool)

布尔值包括True(真)和False(假),只与整数中的1和0有对应关系。
用 == 判断左右是否绝对相等
Python中任何值为0或空的数据,布尔值均为False

  1. print(True==1)
  2. print(True==2)
  3. print(False==1)
  4. print(False==0)
  5. ##结果如下
  6. True
  7. False
  8. False
  9. True

1.1.4 复数型(complex)

复数型数据用来表示数学中的复数,复数由实数部分和虚数部分组成
eg:x=a+bj,a、b为浮点数,j为虚数单位,j的平方为-1,a是复数的实部,b是复数的虚部。
复数的符号可以使用j或J

  1. a=1.23+5.5j
  2. print(a)
  3. print(a.real) ##获取复数x的实部
  4. print(a.imag) ##获取复数x的虚部
  5. ##结果
  6. (1.23+5.5j)
  7. 1.23
  8. 5.5

1.2 字符串类型(str)

Python语言中的字符串类型是用引号括起来的一个或多个字符。
用单引号(’ ‘)和双引号(” “ )括起来的是单行字符串
用三引号(’’’ ‘’’)括起来的是可以是多行字符

ps:1.字符串开头和结尾的引号要一致,不一致的时候,会报invalid token的信息
2.第一个字符的索引值永远为0

  1. >>> name = "Alex " #双引号
  2. >>> age = "22" #只要加引号就是字符串 英文里面有单引号时,外双里单,
  3. >>> age2 = 22 #int
  4. >>>
  5. >>> msg = '''My name is tom, I am 22 years old!''' #,3个引号也可以 内容很长时,分很多行显示内容时
  6. >>>
  7. >>> hometown = 'NanJing' #单引号也可以

字符串拼接
字符串只能进行”**相加“和”相乘**”运算
注意:字符串的拼接只能是双方都是字符串,不能跟数字或其它类型拼接。

  1. a = 'eagle '
  2. b = 'welcome '
  3. print(b + a,'*' * 3,a * 3)
  4. a="good morning"
  5. b="ccy"
  6. print(a+"*"*10+b)
  7. #结果
  8. good morning**********ccy

1.3 数据类型的相互转换

数据类型的转换,只需要将数据类型作为函数名即可。

1.3.1 转换为整型类型

int(x)

1.3.2 转换为小数类型

float(x)

1.3.3 转换为字符串类型

str(x)

二、结构数据类型

结构数据类型,也就是复合数据类型。常见的有集合类型、列表类型、元组类型和字典类型

2.1 集合类型(Sets)

Sets(集合)是一个无序不重复的集。
主要功能是自动清除重复的元素,如果集合中有重复的元素,就会自动删除。
创建集合的时候用大括号({})来包含其元素
创建一个空的集合,必须使用set() 函数

  1. goods={'book',"phone","ipad","cap"}
  2. print(goods)
  3. goods={'book',"phone","ipad","cap","ipad"} ##如果集合中有重复的元素,就会自动删除
  4. print(goods)
  5. ##结果
  6. {'cap', 'phone', 'ipad', 'book'}
  7. {'cap', 'phone', 'ipad', 'book'}

2.2 列表类型(List)

List(列表)可以完成大多数集合类的数据结构实现。
列表中的元素的类型可以不相同,支持数字、字符串,甚至可以包含列表。
列表是写在中括号([ ] )之间,用逗号分隔开的元素列表。
列表的第一个元素的索引为0。将索引指定为-1,可以让Python返回最后一个列表元素。

  1. goods=[1,2,3,4]
  2. print(goods[0])
  3. print(goods[-1])
  4. ##结果
  5. 1
  6. 4

2.3 元组类型(Tuple)

Tuple(元组)对象属于序数对象,是一群有序对象的集合,并且可以使用数字来做索引,与列表对象相似。
但是元组对象是不可以修改的。
元组对象是写在小括号()之间的,也可以省略小括号
元组的索引也是从0开始的

  1. c = 100,200,300,400
  2. print(c)
  3. print(type(c))
  4. ##结果
  5. (100, 200, 300, 400)
  6. <class 'tuple'>

2.4 字典类型(Dictionary)

Dictionary(字典)使用大括号 {} 将元素列出。
元素由键值(key)和数值(vlaue)组成,中间以冒号(:)隔开。
键值必须是字符串、数字或元组,这些对象是不可动的
数值可以是任何数据类型。
字典的排列没有一定的顺序,可以使用键值来获取该元素。
创建字典语法:字典变量={关键字1:值1;关键字2:值2,……}
ps:同一个字典之内,关键字必须互不相同

  1. lhuan={'lh':1,'lj':6,'lk':9}
  2. print(lhuan['lh'])
  3. print(lhuan['lk'])
  4. ##结果
  5. 1
  6. 9

三、运算符

3.1 算术运算符

运算符 描述 实例(a=10,b=20)
+ a+b结果为30
- a-b结果为-10
* a*b结果为200
/ b/a结果为2
% 取模,返回除数的余数 b%a结果为0
** 幂,返回x的y次幂 a**b的结果为10的20次方
// 整除,返回商的整数部分 9//2结果为4
9.0//2.0结果为4.0

3.2 比较运算符

运算符 描述 实例(a=10,b=20)
== 等于 a==b结果为False
!= 不等于 a!=b结果为True
<> 不等于 a<>b结果为True
> 大于 a>b结果为False
< 小于 a<b结果为Ture
>= 大于等于 a>=b结果为False
<= 小于等于 a<=b结果为Ture

3.3 赋值运算符

运算符 说明
+= 加等于,c+=a,即c=c+a
-= 减等于,c -=a,即c=c-a
*= 乘等于,c=a,即c=ca
/= 除等于,c/=a,即c=c/a
//= 整除等于,c//=a,即c=c/a,得到的结果是整数
%= 取余等于,c%=a,即c=c%a.得到的是余数
**= 幂等于,c*=a,即c=ca*a,得到的是乘方
<<= 左移运算等于,运算数的各二进制位全部左移若干位
高位丢弃,低位补0
>>= 右移运算等于,运算数的各二进制位全部右移若干位
&= 按位与运算
|= 按位或运算
^= 按位异或运算,当两对应的二进位相异的时候,结果为1


3.4 逻辑运算符

运算符 描述 实例(x=Ture,y=False)
and 与运算 x and y结果为False
or 或运算 x or y 结果为True
not 非运算 not(x) 结果为False

3.5 位运算符

位运算是把数值转换为二进制再进行计算的

运算符 描述
& 按位与运算符
| 按位或运算符
^ 按位异或运算符,当两个对应的二进制位相异大的时候,结果为1
~ 按位取反运算符,把数据的每个二进制位取反,即把1变为0,0变为1
<< 左移运算符:运算数的各二进位全部左移若干位,由<<右边的数指定移动的位数,高位丢弃,低位补0
>> 右移运算符:运算数的各二进位全部右移若干位,由>>右边的数指定移动的位数

3.6 成员运算符

运算符 描述
in 如果再指定的序列中找到值就返回True,否则就返回False
not in 如果再指定的序列中没有找到值就返回False,否则就返回True
  1. lhuan=(1,2,3,4)
  2. print(1 in lhuan)
  3. print(2 not in lhuan)
  4. True
  5. False

3.7 身份运算符

身份运算符用于比较两个对象的存储单元

运算符 描述
is 判断两个标识符是不是引用自一个对象
is not 判断两个标识符是不是引用自不同对象
  1. x = 100
  2. y = 200
  3. print(x is y)
  4. print(x is not y)
  5. ##结果
  6. False
  7. True
  8. x = 100
  9. y = x
  10. print(x is y)
  11. print(x is not y
  12. ##结果
  13. True
  14. False

四、运算符运算优先级

顺序 运算符 描述
1 () 、[] 、{}
2 object
3 object[i] 、object[1:r]、object.attribute、function()
4 ** 指数
5 +x、-x、~x 按位取反、加号或减号
6 *、/、%、// 乘、除、取模和取整数
7 >>、<< 右移、左移运算符
8 & 位与运算符
9 ^ 位异或运算符
10 | 位或运算符
11 <=、<>、>=、==、!= 比较运算符
12 =、%=、/=、//=、-=、+=、=、*= 赋值运算符
13 is 、is not 身份运算符
14 in、not in 成员运算符
15 not、or、and 逻辑运算符

ps:
1.如果将两个浮点数相除取余数的化,返回值也会是一个浮点数,计算方式x-int(x/y)y
2.比较运算符可以连在一起处理
3.如果运算符(operator)两端的运算数(operand)的数据类型不一样的时候,Python就会将其中一个运算数的数据类型转换为与另一个运算数一样的数据类型。
转换顺序:如果有一个复数的话,另一个运算数也会被转换为复数;如果有一个是浮点数的话,另一个运算数也会被转换为浮点数
4.Python中的特殊运算符 lamdba
利用lamdba能够以表达式的形式创建一个*匿名函数

landba args : expression
args:是以逗号(,)隔开的参数列表list
expression是对这些参数进行运算的表达式
lamdba运算符后面只允许有一个表达式

  1. a = lambda x,y:x*y
  2. print(a(2,5))
  3. ##结果
  4. 10