第二章:python基础,数据类型

"""
第二章:python基础,数据类型
2.1 变量及身份运算补充
2.2 二进制数
2.3 字符编码
每8位所占的空间位一个比特,这是计算机中最小的表示单位。
每8个比特组成一个字符。这是计算机中最小的存储单位。
每8个字符又组成一个字节,8bit=1bytes 缩写为1B
GBK 和GB2312
中文和数字的对应表,一个汉字对应两个字节
UTF-8
现代计算机系统通用的字符编码工作方式:
用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,
编辑完成之后,保存的时候再将Unicode 转换为UTF-8保存到文件。
2.4 基本数据类型-数字
布尔型(0-1)
整型:python 中整型属于int类型,默认为十进制表示。
浮点型(float):python 中的浮点数就是小数,这里的小数不包括无限不循环小数。
在运算中,整数与浮点数运算的结果也是一个浮点数。
整数与浮点数在计算机内部存贮的方式是不同的,整数运算永远是精确的,而浮点数运算则可能是有四舍五入的误差
关于小数不精确问题:
python默认的是17位精度,也就是小数点后16位,尽管有16位,但是这个精确度却是越往后越不准的
复数:a+bj
a是实部,b是虚部
2.5基本数据类型字符串
字符串的特性:
补充1:字符串的单引号和双引号都不能取消特殊字符的含义,如果想让引号内所有字符
均取消其特殊含义,在引号前面加r
字符串的常用操作:
1,索引(从左到右是从0开始,从右边到左边是从-1开始)
2,查找
s='qwertyui'
print(s.find('c'))
print(s.find('r'))
-1
3
如果查找的字符串中有改字符,会返回这个字符所在的位置,
如果没有该字符,就会返回-1
3,移除空白或者移除特殊的字符
lstrip()从左边移除
rstrip()从右边移除
strip()左右两边都移除
s=' qwert '
print(s.strip())
print(s.lstrip())
print(s.rstrip())
s=' qwert '
print(s.strip())
print(s.lstrip())
print(s.rstrip())
4,长度len
5,替换,replace()
s='qwert'
print(s.replace('q','Q'))
第一个位置元素表示将要替换掉的字符,第二个位置表示用来替换的字符
6,切片
s='qwertyuiop'
a=s[0:7]
print(s)
print(a)
输出的结果是qwertyuiop qwertyu
中括号内第一个数字表示开始切的起始位置,第二个位置表示终止位置,顾头不顾尾
b=s[0:7:2]
第三个位置的2表示间隔2个字符取,如果不填,默认没有间隔
第一个位置的数如果不填默认从头开始,第二个位置的数不填默认取到结尾结束
2.6 基本数据类型列表
列表的特点和常用操作:
特性:
1,可存放多个值.
2,按照从左到右的顺序定义元素,下表从0开始顺序访问,有序
常用操作:
1,索引(这个和字符串是一样的,从做开始是0,从右边开始是-1)
2,切片(这个也和字符串是一样的,中括号第一个元素表示开始,第二个位置表示结束,第三个位置表示间隔)
3,追加
list1=[1,2,3,4,5]
list1.append(8)
print(list1)
[1, 2, 3, 4, 5, 8]
这个只从最后面开始加
4,删除(注意列表是可变类型)
list1=[1,2,3,4,5]
list1.remove(1)
print(list1)
5,长度(len)
6,包含(in)
list1=[1,2,3,4]
print(2 in list1)
print(6 in list1)
True
False
7,循环
list1=[1,2,3,4]
for i in list1:
print(i)
1
2
3
4
列表和字符串---split 和join
#分割
s='hello world'
print(s.split(' '))
['hello', 'world']
分割后的字符串会自动生成一个列表返回。
s2='hello,world'
print(s2.split(','))
['hello', 'world']
#连接 join
list1=['hi','szp','你好啊']
print('!'.join(list1))
hi!szp!你好啊
结果就会生成一个字符串,这个字符串是前面的那个列表中的元素拼接组成的
拼接的部分也就是连接的部位都要加上那个拼接的元素
range:范围
print(list(range(1,10)))
print(list(range(1,10,2)))
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 3, 5, 7, 9]
这里同样有着顾头不顾尾的原则,第一个元素表示起始的数字,第二个元素表示终止
的数字第三个元素表示间隔
2.7 基本数据类型--元组
元组的定义和特征:
定义:与列表类似,不过[ ]改成()
特性:1可以存放多个值 2不可变 3按照从左到右的顺序定义元组,下标从0开始访问,有序
元组的创建与常用操作:
1,创建
ages=(11,22,33,44,55)
ages2=(11,22,33,44,55,66)
print(type(ages),type(ages2))
<class 'tuple'> <class 'tuple'>
2,索引(这个和字符串列表的操作一样)
3切片
ages=(1,2,3,4,5)
print(type(ages))
ages2=ages[0:3]
print(ages2)
<class 'tuple'>
(1, 2, 3)
4,长度(len)
5,包含(in)
元组的特性详解
元组可以存放多个值,元组中不仅可以存放数字、字符串,还可以存放更加复杂的数据类型
元组是不可变类型,如果元组中还包含其他可变元素,这些可变元素可以改变
2.8 可变不可变类型和hash
当一个量的值改变而Id可以不改变,那么这个量我们称之位可变类型,就是在id不变的基础上,值可以改变
相反,在ID不变的基础上,如果值不改变,那么就是不可变类型
hash算法也就是将一个可以被hash的数据,转化成一个固定长度的数字
不同的数据转换过来的数字也是绝对不相同的,除非原始数据一模一样,否则不会出现重复
但是:可变的数据类型是不可以被hash的,如果一个值可以被hash那么说明这是一个不可变的数据类型。
2.9 基本数据类型——字典
字典的定义与特征:
字典是Python语言中唯一的映射类型
定义:{key1:value1,key2:value2,key3:value3}
1,键与值用冒号:隔开
2,项与项用逗号,分开
特性:
1,key-value结构
2,key必须可以被hash,且必须为不可变数据类型,必须唯一
3,可以存放任意多个值,可修改,可以不唯一
4,无序
字典的常见操作:
1,键、值、键值对
dic.keys()返回一个字典所有key的列表
dic.values()返回一个字典所有value的列表
dic.items()返回一个包含所有(键,值)元组的列表
dict1={'姓名':'孙zp','年龄':'24','性别':'男'}
print(dict1.keys())
print(dict1.values())
print(dict1.items())
dict_keys(['姓名', '年龄', '性别'])
dict_values(['孙zp', '24', '男'])
dict_items([('姓名', '孙zp'), ('年龄', '24'), ('性别', '男')])
2,新增
dic['new_key']='new_value'
dict1={'姓名':'孙zp','年龄':'24','性别':'男'}
print(dict1)
dict1['学校']='同济大学'
print(dict1)
字典里面新增不是用append 而是直接写入新的值就可以
3,删除
dic.pop(key[default])和get方法相似,如果字典中存在key,删除并返回key对应的value,如果key不存在
且没有给出default的值,就会引发keyerror异常
dict.clear()删除字典中的所有项与元素
dict1={'姓名':'孙zp','年龄':'24','性别':'男'}
dict1.pop('姓名')
print(dict1)
{'年龄': '24', '性别': '男'}
4,修改
dic['key']='new_value' 如果key在字典中存在,new_value就会替换原来得值
dic.update(dic2)将字典dic2的键值对添加到dic中
dict1={'姓名':'孙zp','年龄':'24','性别':'男'}
dict1['姓名']='王大锤'
print(dict1)
dict2={'学校':'同济大学'}
dict1.update(dict2)
print(dict1)
{'姓名': '王大锤', '年龄': '24', '性别': '男'}
{'姓名': '王大锤', '年龄': '24', '性别': '男', '学校': '同济大学'}
5,查看 dic['key']返回字典中key对应得值,若key不存在字典中,则报错 dic.get(key,default=None)返回字典中key对应得值,若key不存在字典中,则返回default的值 (default默认的值位none)dict1={'姓名':'孙zp','年龄':'24','性别':'男'}print(dict1['性别'])男6,循环 for k in dic.key() for k,v in dic.items() for k in dic7,长度(len)2.10 基本数据类型--集合认识集合:集合是一个数学概念,由一个或者多个确定的元素集合中元素有三个特征:确定性,互异性,无序性集合的关系运算& 交集|,|并集l={'张三','李四','王五'}p={'张三','王五','小强'}print(l&p)###求两个的交集print(l-p)print(p-l){'张三', '王五'}{'李四'}{'小强'}集合的常用操作:1,元素的增加add() 作用类似于列表的appendupdate() 元素的删除集合删除单个元素又两种方法:当集合中没有要删除的这个元素时set.discard(x)不会抛出异常set.remove(x)会抛出异常p={'张三','王五','小强'}p.remove('王五')print(p)p.discard('张三')print(p){'张三', '小强'}{'小强'}pop()随即弹出一个集合中的元素,如果集合是空的,会报错"""
原文地址:https://www.cnblogs.com/1832921tongjieducn/p/10437639.html