Python基础(2)-基本数据类型以及运算符介绍

时间:2022-12-21 15:00:46

一、基本数据类型介绍

1、integer(数字)

int(整型)

在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647

在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807

long(长整型)

跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
注意:自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。

float(浮点型)

浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。

complex(复数)

 复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
注:Python中存在小数字池:-5 ~ 257

2、boolean(布尔值)

真或假
1 或 0

3、string(字符串)

"hello world"

万恶的字符串拼接:
  python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间。

格式化输出

name = "alex"
print "i am %s " % name

#输出: i am alex

PS: 字符串是 %s;整数 %d;浮点数%f;
%s可以自动转化为其它两种数据类型,所以日常应用中通常写%s较为保险

字符串常用方法(Method)

  • 字符串连接
  • 字符串截取
  • 字符串替换
  • 字符串比较
  • 字符串相加
  • 字符串查找
  • 字符串分割
  • 字符串翻转
  • 字符串编码
  • 字符串追加和拼接
  • 字符串长度
  • 字符串大小写
  • 字符串去空格
  • 字符串其他方法

4、list(列表)

定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素
特性:
1.可存放多个值
2.可修改指定索引位置对应的值,可变
3.按照从左到右的顺序定义列表元素,下标从0开始顺序访问,有序。

列表的创建

list_test=[’lhf‘,12,’ok’]

list_test=list(‘abc’)

list_test=list([’lhf‘,12,’ok’])

列表常用操作

  • 索引
  • 切片
  • 追加
  • 删除
  • 长度
  • 切片
  • 循环
  • 包含

5、tuple(元组)

定义:与列表类似,只不过[]改成()
特性:
1.可存放多个值
2.不可变
3.按照从左到右的顺序定义元组元素,下标从0开始顺序访问,有序。

元组创建

ages = (11, 22, 33, 44, 55)

ages = tuple((11, 22, 33, 44, 55))

元组常用操作

  • 索引
  • 切片
  • 循环
  • 长度
  • 包含

6、dict(字典)

定义:{key1:value1,key2:value2},key-value结构,key必须可hash
特性:
1.可存放多个值
2.可修改指定key对应的值,可变
3.无序

字典创建

person = {“name”: “sb”, ‘age’: 18}

person = dict(name=’sb’, age=18)
person = dict({“name”: “sb”, ‘age’: 18})
person = dict(([‘name’,’sb’],[‘age’,18]))
{}.fromkeys(seq,100) #不指定100默认为None

注意:

>>> dic={}.fromkeys(['k1','k2'],[])
>>> dic
{'k1': [], 'k2': []}
>>> dic['k1'].append(1)
>>> dic
{'k1': [1], 'k2': [1]}

字典常用操作

  • 索引
  • 新增
  • 删除
  • 键、值、键值对
  • 循环
  • 长度

7、set(集合)

定义:由不同元素组成的集合,集合中是一组无序排列的可hash值,可以作为字典的key
特性:
1.集合的目的是将不同的值存放到一起,不同的集合间用来做关系运算,无需纠结于集合中单个值

集合创建

{1,2,3,1}

定义可变集合set

>>> set_test=set('hello')
>>> set_test
{'l', 'o', 'e', 'h'}

改为不可变集合frozenset

>>> f_set_test=frozenset(set_test)
>>> f_set_test
frozenset({'l', 'e', 'h', 'o'})

集合常用操作:关系运算

   in
not in
==
!=
<,<=
>,>=
|,|=:合集
&.&=:交集
-,-=:差集
^,^=:对称差分

8、bytes类型

定义:存8bit整数,数据基于网络传输或内存变量存储到硬盘时需要转成bytes类型,字符串前置b代表为bytes类型

>>> x
'hello python'
>>> x.encode('gb2312')
b'hello python'

9、数据类型转换内置函数汇总

Python基础(2)-基本数据类型以及运算符介绍
注:真对acsii表unichr在python2.7中比chr的范围更大,python3.中chr内置了unichar*


二、运算符

1、算术运算符

Python基础(2)-基本数据类型以及运算符介绍

2、比较运算符

Python基础(2)-基本数据类型以及运算符介绍

3、赋值运算符

Python基础(2)-基本数据类型以及运算符介绍

4、位运算符

Python基础(2)-基本数据类型以及运算符介绍

注: ~ 举例: ~5 = -6 解释: 将二进制数+1之后乘以-1,即~x = -(x+1),-(101 + 1) = -110

5、逻辑运算符

Python基础(2)-基本数据类型以及运算符介绍

and注解:

  • 在Python 中,and 和 or 执行布尔逻辑演算,如你所期待的一样,但是它们并不返回布尔值;而是,返回它们实际进行比较的值之一。
  • 在布尔上下文中从左到右演算表达式的值,如果布尔上下文中的所有值都为真,那么 and 返回最后一个值。
  • 如果布尔上下文中的某个值为假,则 and 返回第一个假值

or注解:

  • 使用 or 时,在布尔上下文中从左到右演算值,就像 and 一样。如果有一个值为真,or 立刻返回该值
  • 如果所有的值都为假,or 返回最后一个假值
  • 注意 or 在布尔上下文中会一直进行表达式演算直到找到第一个真值,然后就会忽略剩余的比较值

and-or结合使用:

  • 结合了前面的两种语法,推理即可。
  • 为加强程序可读性,最好与括号连用,例如: (1 and ‘x’) or ‘y’

6、成员运算符

Python基础(2)-基本数据类型以及运算符介绍

7.身份运算符

Python基础(2)-基本数据类型以及运算符介绍

8.运算符优先级:自上而下,优先级从高到低

Python基础(2)-基本数据类型以及运算符介绍

三、标准书籍类型特征总结

1、按存值个数区分

标量/原子类型 容器类型
数字,字符串 列表,元组,字典

2、按可变不可变区分

可变 不可变
列表,字典 数字,字符串,元组

3、按访问顺序区分

直接访问 顺序访问(序列类型) key值访问(映射类型)
数字 字符串,列表,元组 字典