一.数据类型总结

2.jason老师讲课
自我介绍
姓名:jason、鸡哥
个人建议
# 1、20岁超越30岁、40岁、50岁人的成就
你们之间的差距就在每天晚上9点半之后以及周末
# 2、衣锦还乡
# 3、技多不压身
个人授课范围
python基础
前端
django框架
bbs项目
CMDB
代码发布
终身学习!!!
智商
情商
是可以后期培养的
搜商
"""
写程序遇到bug如何解决
给自己设置一个解决问题的时间限
10~30分钟自己解决
30~60分钟周围小伙伴讨论
60分钟叫老师
每个人每天至少需要背五个英文单词
百词斩
英语流利说
"""
昨日内容回顾
数据类型及内置方法
-
整型int
age = 18 # age = int(18) -
浮点型float
salary = 3.1 # salary = float(3.1) -
字符串str
name = 'jason NB egon SB' # 1 索引取值 name[0] # 索引超出范围立刻报错 # 2 切片操作 name[0:8:1] # 3 步长 name[0:8:2] # 4 长度 len(name) # 5 for循环 # 6 成员运算 # 7 移除首尾特定的字符 strip() lstrip() rstrip() # 8 按照指定的字符切割字符串 split() 从左往右 该方法得到的结果是一个列表 主要参数 max_split rsplit() # 9 字符串格式化 format %s、%d 三种玩法 {} {index} {username} # 10 字符串的拼接 join 链接的元素必须是字符串 '$'.join(['a','b',1]) # 11 以什么开头结尾 startswith() endswith() # 12 判断是否以什么开头或者结尾 isstartswith() isendswith() # 13 统计字符串出现的个数 count() # 14 判断字符串是否是纯数字 isdigit() # 15 获取字符串某个元素对应的索引值 index() # 16 大小写 判断大小写 upper() lower() isupper() islower() # 其他 title ... 利用IDE开发工具 自动提示的功能列表
l = ['jason', 'egon', 'tank', 'sean'] # 1 索引取值 # 2 切片操作 # 3 步长 # 4 长度 # 5 for循环 # 6 成员运算 # 7 给列表添加元素的三种方式 append() insert(index,data) extend() for循环 + append # 8 移除元素的三种方式 del remove() pop() # 9 统计元素出现的个数 count() # 10 清空列表 clear() # 其他方法 ... -
元组
t = (1) print(t,type(t)) """ 推荐你们在使用容器类型的元素的时候 如果该容器类型只有一个元素 那么你也习惯性的 将逗号加上 t = (1,) l = ['jason',] """ -
补充
console.log('hello world') VM264:1 hello world undefined const pi = 3.141592632423482734832492834923 undefined pi 3.1415926324234826 pi = 666 VM375:1 Uncaught TypeError: Assignment to constant variable. at <anonymous>:1:4
今日内容概要
-
字典及内置方法
-
集合及内置方法
-
字符编码
理论巨多结论贼少
-
文件处理
字典及内置方法
# 定义
d = {'username':'jason', 'password':123}
# d = dict(username='jason', age=18)
# print(d) # {'username': 'jason', 'age': 18}
# 类型转换
# d1 = dict([['username','password'],('jason',123)])
# print(d1) # {'username': 'password', 'jason': 123}
# 操作方法
# 取值
"""
字典默认暴露给外界的可操作的只有字典的key
字典是无需的 根本没有索引一说
程序员第一准则
能少写一个字母绝对不多写一个
"""
d = {'username': 'jason', 'password': 123}
# print(d['username']) # 不推荐使用该方法
# print(d['xxx']) # KeyError: 'xxx'
# 1 get方法
# res = d.get('username')
# print(res) # jason
# res = d.get('xxx')
# print(res) # None 键不存在会返回None 不会报错
# res = d.get('username', '你搞什么飞机 这个键不存在 去你妹啊')
# print(res) # 键存在还是返回对应的值
# res = d.get('xxx', '你搞什么飞机 这个键不存在 去你妹啊')
# print(res) # 键不存在 返回get方法里面第二个参数
# 字典新增键值对
# 方式1
# d['hobby'] = 'study' # 字典的key不存在新增
# print(d)
# d['username'] = 'egon'
# print(d) # 字典的key存在则修改
# 方式2
# d.update(username='jason')
# print(d) # 特点同上
# 方式3
"""
键如果存在的情况下 那么不做修改 而是将对应的value取出
键如果不存在的情况下 那么就是新增
"""
# d.setdefault('xxx',123)
# print(d) # 键不存在是新增
# res = d.setdefault('username',123)
# print(d) # {'username': 'jason', 'password': 123}
# print(res) # jason
# 快速构造字典
# res = {}.fromkeys(['k1','k2','k3'],[])
# # print(res) # {'k1': [], 'k2': [], 'k3': []}
# res.get('k1').append(123)
# print(res)
"""
A
{'k1': [123], 'k2': [], 'k3': []}
B
{'k1': [123], 'k2': [123], 'k3': [123]}
C
报错
D
我TMD的也不知道
"""
# 弹出
# res = d.pop('username') # 将括号内指定的key对应的value弹出
# print(d,res) # jason
# res1 = d.popitem() # 将弹出的键值对组织成元组的形式返回出去
# print(d,res1) # {'username': 'jason'} ('password', 123)
# 字典方法三剑客
# print(d.keys()) # 获取字典所有的key
# print(d.values()) # 获取字典所有的value
# print(d.items()) # 获取字典所有的key和value组织成小元组
"""
可以直接只看里面的数据结构
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)
# for k, v in d.items():
# print(k,v)
# 清空
# d.clear()
# print(d)
# __class__ # 双下class
集合set
作用:
1.去重
集合内不可能出现相同的元素
2.关系运算
共同好友、共同关注...
交叉并集...
# 用集合就是用上面两个功能 如果都用不上 那么就不要用
# 定义
s = {1,2,3,4,5,6,7,8}
"""
1.集合内的元素必须是不可变类型
2.元素与元素之间逗号隔开 不是键值对
3.集合内的元素也是无序的
"""
# 如何定义空集合
s1 = {}
d1 = {}
print(type(s1),type(d1)) # <class 'dict'> <class 'dict'>
# 定义空集合一定要用set关键字
ss = set()
print(ss,type(ss)) # set() <class 'set'>
# 类型转换
"""能够被for循环的数据类型都能够被转成集合"""
# s1 = set('egon is o DSB')
# print(s1)
# s2 = set([1,2,3,4,5,6,7,7,7,7,7])
# print(s2)
# s3 = set({'username':'jason','password':123})
# print(s3) # {'password', 'username'}
# 去重
s = {1,1,1,2,3,3,4,3,2,3,4,6,5,3,}
print(s) # 集合内如果有相同的元素会自动去重
# 去重练习题
l = [4,3,2,3,4,6,7,8,1,2,3]
# 要求1 对列表进行去重不需要保持原来的元素顺序
# 先转成集合
s = set(l)
# 再转成列表
l1 = list(s)
print(l1)
# 要求2 对列表去重之后需要保持原来的元素顺序
new_l = []
for i in l:
if i not in new_l:
new_l.append(i)
print(new_l)
# 关系运算
# 用户1的好友列表
friends1 = {'jason','tank','tony','jerry'}
# 用户2的好友列表
friends2 = {'jason','tony','owen','oscar'}
# 1 求两个用户的共同好友 交集
# res = friends1 & friends2
# print(res) # {'jason', 'tony'}
# 2 求两个用户所有的好友
# res = friends1 | friends2
# print(res) # {'jerry', 'jason', 'oscar', 'tony', 'tank', 'owen'}
# 3 求用户1独有的好友
# res1 = friends1 - friends2
# res2 = friends2 - friends1
# print(res1,res2) # {'jerry', 'tank'} {'owen', 'oscar'}
# 4 求两个用户各自独有的好友 对称差集
# res = friends1 ^ friends2
# print(res) # {'owen', 'jerry', 'tank', 'oscar'}
# 5 子集 父集
s1 = {12,3,4,5,6}
s2 = {12,6}
print(s1 > s2) # s1是否是s2的父集
print(s2 < s1) # s2是否是s1的子集
# python基本数据类型
1.整型int
2.浮点型float
3.字符串str
4.列表list
5.字典dict
6.布尔值bool
7.元组tuple
8.集合set
字符编码
# 理论多结论少
# 计算机三大核心硬件
CPU
内存
硬盘
"""
任何一个程序都是先存放与硬盘上的
要想运行起来 必须先由硬盘读取到内存
之后cpu去内存中取指然后执行
在运行的程序产生的数据最先都是存放与内存中的
"""
# 计算机是基于电工作的 那么计算机只能识别电信号
计算机内部存储数据用的都是01010101的二进制数据
# 文件的后缀名是干嘛的
文件的后缀名仅仅是给人看的 因为对应计算机来说所有的数据都是0101010的二进制
# 普通的文本编辑器和python解释器的工作流程
相同
1.任何的程序要想运行都是先从硬盘读取到内存
2.文本编辑器和python解释器都会去硬盘中读取你想要读取的文件内容
不同
3.文本编辑器将文件内容读取之后仅仅是展示给用户看
而我们的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
博主Jason进行了Python数据类型的总结,包括整型、浮点型、字符串、列表、元组,并介绍了字典、集合及字符编码的基础知识,强调了理论与实践结合的重要性。
215

被折叠的 条评论
为什么被折叠?



