python第七天
复习:
1.深浅拷贝
值拷贝:直接赋值 = 号, 列表中的任何值发生改变,第二个中的值都会随之改变
浅拷贝:通过copy()方法 ls2 = ls.copy(),第一个中存放的值的地址没有改变, 但内部的值发生改变,第二个会随之改变
深拷贝:通过deepcopy()方法 ls3 = deepcopy(ls),第一个中存放的值发生任何改变,第二个都不会随之改变
2.元祖类型
tuple()
元组:可以理解为不可变的列表
# 1.值可以为任意类型
# 2.可以存放多个值 - 可以进行成员运算
# 3.可以存放重复的值 - 可以计算成员出现的次数
# 4.有序存储 - 可以通过索引取值,可以切片
3.字典类型
# 容器(集合):存放多个值的变量
# 单列容器(系统中的单列容器很多):list | tuple
# 双列容器(map):只有dict,存放数据 成对出现,dict存放数据采用 key-value键值对方式
# 字典中的key可以为什么类型:key必须为不可变类型
# -- key是取value的唯一依据,key一旦被确定,就需要唯一确定(不能被改变)
# 字典中的value可以为什么类型:value可以为任意类型
# -- value是用来存放世间所有存在的数据
字典的增删改查:(详见day06的博客)
update(dict). 将新的字典添加到原字典中,如果原字典已经存在,则不做改变,原字典中不存在,则添加。
若已存在原字典的key,则更新value
# dic = {'a':1,'b':2}
# dic2={'d':4,'e':6}
# dic.update(dic2) # 更新字典,如果第一个列表中不存在第二个列表中的key,则添加到新列表中
# print(dic) # 输出结果为{'a': 1, 'b': 2, 'd': 4, 'e': 6}
# dic = {'a':1,'b':2}
# dic2={'d':4,'b':6}
# dic.update(dic2) # 如果第一个列表中存在第二个列表的key,则会更新value,如果key和value都相同,则不做任何改变
# print(dic)
setdefault(key,value):若key已经存在,不做改变,若不存在key,则添加到字典中
# dic = {'a':1,'b':2}
# dic.setdefault('c',3) # 添加,将key和value添加到列表,如果key已存在,则不做任何改变
# print(dic) # 输出结果{'a': 1, 'b': 2, 'c': 3}
get(key,default):按照key查询字典中是否存在,若存在,返回value,若不存在,返回None
# dic = {'a':1,'b':2}
# print(dic.get('a')) # 查询字典中 key,如果存在,则返回值 此处返还值 1
# print(dic.get('c')) # 如果不存在,则返回None 此处返还 None
pop(key):根据key值删除值,有返回值。若key存在,则返回value,若不存在,则报错
pop(keyitem):随机删除字典中的值
dic = {'a':3,'b':1,'c':2}
# dic.popitem() # 随机删除一个key,一般是删除末尾,如果删除的字典为空字典,则会报错
# print(dic) # 输出结果{'a': 3, 'b': 1}
循环: for k,v in dic.items(): # 使用两个对应关系来接受字典循环的key与value
dic = {'a':3,'b':1,'c':2}
print(dic.items()) # 因为字典不可被for循环,可以使用dic.item() 来使字典变成一个列表类型,而内部的key与value变成可遍历的(键, 值) 元组数组
# 输出结果为 dict_items([('a', 3), ('b', 1), ('c', 2)])
集合是不可变类型,可增可增,无序无索引无key,不能取值不能改值,可以通过for循环取值,取值的顺序不确定
特点:不能存放重复的数据,故可以用来去重
1 .数据类型的相互转换
1.1)那些类型可以转换为数字
1.2)数字转换字符串
1.3)字符串与列表的相互转换 ******
2 . 字符编码
2.1)应用程序打开的三个步骤:
2.1.1)打开应用程序
2.1.2)将数据加载到内存中
2.1.3)CPU将内存中的数据直接翻译成字符显示给用户
2.2)python解释器打开的三个步骤:
2.2.1)打开python解释器
2.2.2)将数据加载到内存中
2.2.3)CPU将内存中的数据执行结果显示给用户,如何解释执行不能通过,错误信息提供给用户
2.3)乱码:
存储的编码格式与取出的编码格式不一致,就会出现乱码,为了
2.4)字符编码:
2.4.1) 电脑只能识别高低电频对应的 0 ,1,所以就诞生了编码表
2.4.2)ASCII 表:英文字母,英文符号,数字与机器能识别的字符的对应关系,一个字母或符号代表一个字节,8个二进制位就能存放所有的对应关系
2.4.3)GBK:中文与机器能识别的字符所对应关系的表格,它完全兼容ASCII表,而他的中文是由2个字节来表示,16个二进制能存放所有的汉字,和ASCII码的对应关系
2.4.4)Unicode(万国码):世间常用国家的常用字符,与机器能识别的字符的对应关系表
2.4)转码:
2.4.1)Unicode存在汉字与二进制对应关系,GBK也存在汉字与二进制对应关系,它将GBK(或者其他国家定义的字符编码)存放的数据转存到Unicode数据中,只是存放数据采用字节数的长度不一致,UTF-8与UTF-16是Unicode编码表的两种体现方式
UTF-8:以1个字节存放英文字母,以3或者6个字节来存放汉字,在英文数据过多时,他会更省空间,用来传输效率更高,所以在计算机中,硬盘与内存需要数据传输,所以都采用UTF-8进行传输,而且由的汉字很复杂,所以UTF-8也可以存放更多的汉字。
而UTF-16,所有支持的符号或者字符都是采用2个字节来存放,读存数据采用定长,不用计算,读存效率高,而内存需要高速读写,所有采用UTF-16的编码
所以我们存储与读取,一定要同意编码!
python第七天的更多相关文章
- 简学Python第七章__class面向对象高级用法与反射
Python第七章__class面向对象高级用法与反射 欢迎加入Linux_Python学习群 群号:478616847 目录: Python中关于oop的常用术语 类的特殊方法 元类 反射 一.P ...
- 初学Python(七)——控制语句
初学Python(七)——控制语句 初学Python,主要整理一些学习到的知识点,这次是控制语句. if : #-*- coding:utf-8 -*- age=raw_input('input yo ...
- Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数
Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数 目录 Pycharm使用技巧(转载) Python第一天 ...
- Python在七牛云平台的应用(三)简单的人脸识别
前言 这是最后一篇介绍python在七牛云平台的应用了,因为-前两篇文章第一篇分享了怎么安装七牛的官方库以及怎么对自己的空间进行下载上传,删除等行动.而第二篇则分享了怎么利用七牛的API接口,由于七牛 ...
- Python在七牛云平台的应用(二)图片瘦身
(一)七牛云平台的图片瘦身功能简介:(引用自官网) 针对jpeg.png格式图片 瘦身后分辨率不变,格式不变. 肉眼画质不变. 图片体积大幅减少,节省 CDN 流量 官网给的图片压缩率很高,官网给的「 ...
- Python实现七牛云视频播放
这篇文章是使用Python的Web框架Django Rest Framework来提供视频相关的api接口,主要功能包括视频上传.视频转码.视频访问授权.删除视频文件.视频截图功能. 七牛云上的基本概 ...
- 孤荷凌寒自学python第七十九天开始写Python的第一个爬虫9并使用pydocx模块将结果写入word文档
孤荷凌寒自学python第七十九天开始写Python的第一个爬虫9 (完整学习过程屏幕记录视频地址在文末) 今天在上一天的基础上继续完成对我的第一个代码程序的书写. 到今天终于完成了对docx模块针对 ...
- 孤荷凌寒自学python第七十八天开始写Python的第一个爬虫8
孤荷凌寒自学python第七十八天开始写Python的第一个爬虫8 (完整学习过程屏幕记录视频地址在文末) 今天在上一天的基础上继续完成对我的第一个代码程序的书写. 到今天止基本完成了对docx模块针 ...
- 孤荷凌寒自学python第七十七天开始写Python的第一个爬虫7
孤荷凌寒自学python第七十七天开始写Python的第一个爬虫7 (完整学习过程屏幕记录视频地址在文末) 今天在上一天的基础上继续完成对我的第一个代码程序的书写. 今天的学习仍然是在纯粹对docx模 ...
- 孤荷凌寒自学python第七十六天开始写Python的第一个爬虫6
孤荷凌寒自学python第七十六天开始写Python的第一个爬虫6 (完整学习过程屏幕记录视频地址在文末) 今天在上一天的基础上继续完成对我的第一个代码程序的书写. 不过由于对python-docx模 ...
随机推荐
- C#中try catch finally 用法
1.将预见可能引发异常的代码包含在try语句块中. 2.如果发生了异常,则转入catch的执行. catch有几种写法: catch 这将捕获任何发生的异常. catch(Exception e) ...
- Android项目实战登录&注册
由于项目中大部分界面都有一个后退键和一个标题栏,为避免代码冗杂以及便于利用,我们可以将后推荐和标题栏单独抽取出来定义一个标题栏布局,在 res/layout 目录下新建一个 Layout resour ...
- 微信小程序中通过腾讯地图进行逆地址解析报错message: "请求来源未被授权, 此次请求来源域名:servicewechat.com"
在小程序中获取定位具体信息时,不要配置腾讯地图中的WebServiceAPI中的域名白名单什么的,域名配置直接在小程序后台中配置(就是这个货https://apis.map.qq.com), 千万千万 ...
- Android Studio教程09-加载器Loader的使用
目录 1.加载器特征 2. Loader API 3. 在应用中使用Loader 3.1. 启动加载器 3.2. 重启加载器 3.3. 使用LoaderManager回调 4. 实例: 访问用户联系人 ...
- Java数据解析之XML
文章大纲 一.XML解析介绍二.Java中XML解析介绍三.XML解析实战四.项目源码下载 一.XML解析介绍 最基础的XML解析方式有DOM和SAX,DOM和SAX是与平台无关的官方解析方式 ...
- EF Code First 连接MySql
看了很多文章,尝试了很多次总是进行不下去,整理一下,以便日后查看. 1.创建ASP.NET MVC项目(EFCodeFirst) 1.1.右键点击引用选择管理NuGet程序包下载MySql.Data. ...
- gcc/g++ 编译参数
1, -E(大写),预处理 例子:gcc -E test.cpp -o test.i 预处理,把程序里的#开头的替换掉,比如#include,然后生成test.i 2,-P(大写),去掉预处理生成的杂 ...
- UI对象库-定位元素与程序分离
1.前言 这几天有人问我,UI自动化测试中使用到的页面定位元素应该存放在哪里比较合适?我想说的是如果你使用的是PO设计模式设计测试用例的话,可以把定位元素存在每一个page页面,一个page存放对应的 ...
- Java基础系列--02_运算符和程序的语句
运算符: (1)算术运算符: +,-,*,/,%,++,--(加.减.乘.除.取余.自增,自减) ++和--的注意事项: a:他们的作用是自增或者自减 b:使用 1.单独使用 放在操作数据的前面和后面 ...
- 利用 keras_proprecessing.image 扩增自己的遥感数据(多波段)
1.keras 自带的 keras_proprecessing.image 只支持三种模式图片(color_mode in ['grey', 'RGB', 'RGBA'])的随机扩增. 2.遥感数据除 ...