python数据类型汇总_python-09-各个数据类型汇总、集和类型详解、字符编码

数据类型总结

一、----------------------字符串---------------------

1、索引取值

2、切片操作

3、步长

4、长度

len(name)

5、 for循环

6、成员运算

7、溢出首尾特定的字符

strip()

lstrip()

rstrip()

8、按照指定的字符切割字符串

split() 分割 从左往右

该方法得到的结果是一个列表

主要参数:

max_split 最大切割个数

rsplit() 从右往左 进行分割

9、字符串格式化

format

%s %d

format的三种玩法

1、{}

2、{index}

3、{name}

10、字符串拼接

join

连接的元素必须是 字符串

' '.join(['a','b','c'])

11、以什么开头结尾

startswith()

endswith()

12、判断是否以什么开头或者结尾

isstartswith()

isendswith()

当变量指向的是一个bool值的时候,要在变量名的前面加 is_

变量命名:推荐用 下划线

13、统计字符串出现的个数

count()

14、判断字符串是否是纯数字

isdigit()

15、获取字符串某个元素对应的索引值

index()

16、大小写 判断大小写

upper()

lower()

isupper()

islower()

# 其他

title

...

利用IDE开发工具,自动提示的功能

二、----------------------列表------------------------

1、索引取值

2、切片操作

3、步长

4、长度

len(name)

5、 for循环

6、成员运算

7 给列表添加元素的三种方式

尾部追加 append()

索引位置插入 insert(index,data)

扩展列表 extend()

for循环 + append

8 移除元素的三种方式

del

remove() # 就地正法,原地干掉

pop() 取出

9、统计元素出现的次数

coun()

10、清空列表

clear()

# 其他方法

....

三、----------------------元组-------------------------

元组中的元素是不能改变的

推荐:在使用容器类型(列表、元组、字典)时,

如果该容器类型只有一个元素,要习惯性的将逗号加上

t=(1,)# 元组

l=['jason',] # 列表

四、----------------------字典--------------------------

key键 value值 key:value 键值对

只要是不可变类型,都可以作为key,例如数字类型,字符串类型

定义:d={'username'}

d={username='jason',age=18}

类型转换

d1=dict([['username','password'],('jason','password':123)])

操作方法

1、取值

字典默认暴露给外界的可操作性的只有字典的key

字典是无序的,根本没有索引一说

程序员第一准则

能少写一个字母绝不多写一个

d={'usernam':'jason','pwssowrd':123}

print(d['username']) # 不推荐使用该方法,

方式1:get方法

res=d.get('username')

print(res) #jason

-----

res=d.get('xxx')

print(res) #None 键不存在会返回None 不会报错

------

res=d.get('xxx','这是自定义返回值,当键不存在时,返回这个')

print(res) # 键不存在 返回get方法里面第二个参数

***无论代码怎么写,一定不会报错,要避免报错

***先解决 会报错的问题

d={'username':'jason','password':123}

# d['hobby']='study' # 字典的key不存在 新增

# print(d)

# d['username']='egon'

# print(d) # 字典的key存在则修改

方式2

d.update(xxx='jason')

print(d) # 特点同上 不存在则新增,存在则修改

方式3

'''

键如果存在的情况下,那么不做修改 而是将对应的value取出

键不存在的情况下,新增

'''

d.setdefault('xxx',123)

print(d) # 键不存在则新增

res=.setdefault('username':'jason','password':123)

# print(res) # jason

2、快速构造字典

res={}.fromkeys(['k1','k2','k3'],[])

print(res) #{'k1':[],'k2':[],'k3':[]}

res.get('k1').append(123)

print(res)

res.get('k1').append(123)

print(res) # {'k1':[123],'k2':123,'k3':123}

3、弹出

d={'username':'jason','password':123}

res=d.pop('username') # 将括号内指定的key对应的value弹出

print(d)

-----

res1=d.popitem() # 将弹出的键值对组织成元组的形式返回出去

print(res1)

4、字典方法三剑客

print(d.keys()) # 获取字典所有的key

print(d.values()) # 获取字典所有的value

print(d.items)) # 获取字典所有的key和value组成成小元组

可以直接看里面的数据结构,这里的dict_keys、dict_values、dict_items都是一种数据类型

dict_keys(['username','password'])

dict_values(['jason',123])

dict_items([('username','jason'),('password',123)])

for key in d.keys()

print(key)

for value in d.values():

print(value)

for item in d.items():

print(item)

5、清空

d.clear

print(d)

补充内容:

双下class: __class__

五-----------------------集和set--------------------

1、作用:

1、去重

集和内不可能出现相同的元素

2、关系运算

共同好友、共同关注...

交叉并集...

# 用集和就是用上面两个功能 如果都用不上,那么就不要用

2、定义:

s={1,2,3,4,5,6,7,8}

1、集和内的元素必须是不可变类型(整型、浮点型、字符串)

2、元素与元素之间逗号 隔开 不是键值对

3、集和内的元素也是无序的

#如何定义空集合 定义集和一定要使用set关键字

s1={}

此时的数据类型是字典,而不是集和

ss=set()

print(ss,type(ss)) # set()

如何去重

s={1,1,2,33,4,3,2,3,4,6,5,3,}

print(s) # 集和内如果有相同的元素会自动去重

类型转换 字符串、列表、字典

s1=set('egon is DSB')

print(s1) #

s2=set([1,2,3,4,5,6,7,7,7,7,7,7,7])

print(s2)

s3=set({'username':'jason','pasword':123})

print(s3) # 顺序不定,因为是无序的

去重: l=[1,2,3,4,5,3,2,5,6,7,7,8]

先转成集和

l=[1,2,3,4,5,3,2,5,6,7,7,8]

s=set(l)

print(s)

再转成列表

print(list(s))

集和的关系运算

pythons = {'jason', 'egon', 'kevin', 'ricky', 'gangdan', 'biubiu'}

linuxs = {'kermit', 'tony', 'gangdan'}

s1 = set(pythons)

s2 = set(linuxs)

1.求出即报名python又报名linux课程的学员名字集合

s3 = pythons & linuxs

print(s3)

2.求出所有报名的学生名字集合

s4 = pythons | linuxs

print(s4)

3.求出只报名python课程的学员名字

s5 = pythons - linuxs

print(s5)

4.求出没有同时这两门课程的学员名字集合

s6 = pythons ^ linuxs

print(s6)

5 子集 父集

print(s1 > s2) # 判断s1是否是s2的父集

print(s2 < s1) # 判断s2是否是s1的子集

----------------------------------------------

python基本数据类型

1 整型 int

2 浮点型 float

3 字符串 str

4 集和 set

5 元组 tuple

6 列表 list

7 字典 dict

8 布尔值 bool

--------------------------字符编码----------------------------

理论多结论少

计算机三大核心硬件

cpu

内存

硬盘

(数据要永久存储,就必须要放在硬盘上)

'''

任何一个程序都是先存放在硬盘上的

要想运行起来 必须先由硬盘读取到内存

之后cpu去内存中取指然后执行

在运行的程序产生的数据最先都是存放在内存中的

'''

计算机是基于电工作的 那么计算机只能识别电信号

计算机内部存储数据用的都是01011001010的二进制数据

文件的后缀名是干嘛的

文件的后缀名都是给人看的 因为对应计算机来说所有的数据都是010100101的二进制

普通的文本编辑器和python解释器的工作流程

相同:

1、任何的程序要向运行都是先从硬盘读取到内存

2、文本编辑器和python解释器都会调用操作系统服务去硬盘中

中读取你想要读取的文件内容

不同:

3、文本解释器将文件内容读取之后仅仅是展示给用户看

python解释器会识别语法 并执行python代码

字符编码研究的范围只针对文本文件 (音频、视频文件 这些不包括在内)

### 详细

```python

# 字符编码研究的范围只针对文本文件 音频、视频这些不包含在内

# 字符编码的发展史

1.一家独大

计算机起源于美国

美国人用英文交流 但是计算机只能识别二进制数据

为了能够让计算机识别人类能够读懂的字符,这里面肯定有一个

人类字符>>>计算机二进制数据

中间的字符与数字的对应关系其实就是一张表

ASCII码表

这张表只记录了英文和数字的对应关系

用8位(bit)来表示一个英文字符

1bytes = 8bit

1024bytes = 1KB

1024KB = 1MB

1024MB = 1GB

...

2.群雄割据

中国人也用得起计算机

自己做一个汉字跟数字对应关系GBK

GBK表

汉字、英文 跟数字的对应

1bytes来表示英文

2bytes来表示汉字

如果出现了生僻字可能还需要用3bytes甚至跟多的bytes

日本人也用得起计算机

自己做一个汉字跟数字对应关系shift_JIS

GBK表

日文、英文 跟数字的对应

韩国人也用得起计算机

自己做一个汉字跟数字对应关系Euc_kr

Euc_kr表

韩文、英文 跟数字的对应

"""

我们在输入中文字符的时候

1.内部基于GBK翻译成了对应的二进制数据 在内存

2.然后将基于GBK编码的二进制数据刷到硬盘 永久保存

3.将硬盘中基于GBK编码的二进制数据读取到内存之后按照GBK编码的对应关系翻译成对应的中文

"""

3.天下一统

万国码 unicode

兼容万国

并且跟之前所有国家的编码都有对应关系

1990开始研究的 1994年才开始正式使用

所有的字符都是用2bytes来存储

英文用2bytes

中文也用2bytes

```

有了unicode之后

写进去 也是基于Unicode翻译成计算机中的二进制编码

读出来 也是基于Unicode翻译成对应的国家文字

--------------------------------------

本文地址:https://blog.csdn.net/qq_35727169/article/details/107339913

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值