数据类型总结
一、----------------------字符串---------------------
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
如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!