python基础 Day7
python Day7
基础数据类型的补充
str的数据类型补充
capitalize函数将首字母大写,其余变小写
s1="taibei"
print(s1.capitalize())
###结果TaiBei
swapcaseh函数将大小写反转
s1="taibei"
print(s1.swapcaseh())
###结果TAIBEI
title函数是每个单词的首字母大写
s1="zhu xia yu "
print(s1.title())
###结果Zhu Xia Yu
center函数是将字符串居中
s1="zhuxiayu"
print(s1.center(20,"*"))
###结果******zhuxiayu******
find 函数是通过元素找索引,找到第一个就返回,找不到返回-1
s1="Dsfs"
print(s1.find("s"))
print(s1.find("o"))
###结果1
##-1index函数是通过元素找索引,找到第一个就返回,找不到就报错
s1="Dsfs"
print(s1.index("s"))
print(s1.index("o"))
tuple的数据类型补充
元组中如果只有一个元素,并且没有都好,那么它不是元组,它与该元素的数据类型一致
s=(1,)
print(s,type(s))
###结果(1,) <class 'tuple'>
count函数是统计元组的个数
tu=(1,2,4,3,4,44,2)
print(tu.count(2))
###结果 2
list的数据类型补充
sort排序,默认从小到大
list=[1,12,4,5,5]
list.sort()#默认从小到大的排序
print(list)
list.sort(reverse=True)#默认从大到小的排序
###[1, 4, 5, 5, 12]
循环一个列表的时候,最好不要改变列表的大小,这样会影响你最终的结果
dict的数据类型补充
可以通过update的形式增加键值队伍(这部分经常考)
dict={"name":"zhuxiayu","age":12}
dict.update(hobby="basketball")
print(dict)
###{'name': 'zhuxiayu', 'age': 12, 'hobby': 'basketball'}
dict={"name":"zhuxiayu","age":12}
dict.update([("a",1),("zhuxiayu","dsfsfs")])
print(dict)
###{'name': 'zhuxiayu', 'age': 12, 'a': 1, 'zhuxiayu': 'dsfsfs'}
dict={"name":"zhuxiayu","age":12}
dict1={"name":"sunchnagay","hobby":"basteketball"}
dict.update(dict1)
print(dict1)
####{'name': 'sunchnagay', 'hobby': 'basteketball'}
fromkeys函数中字典的键是一个可迭代对象
dict=dict.fromkeys("zhuxiayu",1000)
print(dict)
###{'z': 1000, 'h': 1000, 'u': 1000, 'x': 1000, 'i': 1000, 'a': 1000, 'y': 1000}
坑:在迭代中共用一个列表
dict=dict.fromkeys([1,2,3], [])
dict[1].append(666)
print(dict)
###{1: [666], 2: [666], 3: [666]}
循环一个字典时,如果改变这个字典的大小,就会报错。
#删除字典里面带k的值
dict={"k1":"太白","k2":"dsfs","k3":"barkky","age":18}
li=[]
for key in dict.keys():
if "k"in key:
li.append(key)
for i in li:
dict.pop(i)
print(dict)
###{'age': 18}
所有的数据都可以转化为bool值
按照存储空间对数据类型的划分
- 数字
- 字符串
- 集合:无序:即无序索引相关信息
- 元组:有序,需要索引相关信息,不可变
- 列表:有序,需要索引相关信息,可变,需要处理数据的增删改
- 字典:有序,需要存key与value映射关系信息,可变,需要处理数据的增删
编码的进阶
数据在列表中全部是以Unicode编码的,但是当你的数据用于网络传输或者存储到硬盘中,必须以非Unicode编码(utf-8,gbk等等)

bytes是一个数据类型
eg:"今晚吃鸡",内部编码形式是:Unicode,表现形式:“今晚吃鸡“
转化为bytes类型,内部编码形式是非Unicode,表现形式:"今晚吃鸡"
msg="我哎中国"
msg1=msg.encode("utf-8")
print(msg1)
msg=msg1.decode("utf-8")
print(msg)
###结果b'\xe6\x88\x91\xe5\x93\x8e\xe4\xb8\xad\xe5\x9b\xbd'
###我哎中国
从uft-8转化为gbk
msg=b'\xe6\x88\x91\xe5\x93\x8e\xe4\xb8\xad\xe5\x9b\xbd'
msg1=msg.decode("utf-8")
msg1=msg1.encode("gbk")
print(msg1)
###b'\xce\xd2\xb0\xa5\xd6\xd0\xb9\xfa'
在内存中所有的数据必须是unicode编码存在,出去bytes
str与bytes的区别为前者为文字文本,后者为字节文本
作业
看代码写结果
v1=[1,2,3,4,5,6,7,8,9]
v2={}
for item in v1:
if item<6:
continue
if "k1" in v2:
v2["k1"].append(item)
else:
v2["k1"]=[item]
print(v2)
####结果{'k1': [6, 7, 8, 9]}
import copy
v1=[1,2,3,4,5]
v2=copy.copy(v1)
v3=copy.deepcopy(v1)
print(v1 is v2)
print(v2 is v3)
###False False
###解释是无论深copy还是浅copy这个壳的地址都是不一样的
import copy
v1=[1,2,3,4,5]
v2=copy.copy(v1)
v3=copy.deepcopy(v1)
print(v1[0] is v2[0])
print(v2[0] is v3[0])
###True True
###无论是深copy还是浅copy,外壳的地址都是一样的,里的内容如果是不可变数据类型其公用的是一个地址。里面的内容是可变数据类型,则深拷贝就要重新开辟地址。
python基础 Day7的更多相关文章
- Python基础Day7
七步记忆法: ① 预习(30min) ② 听课 (重点) ③ 课间练习 ④ 下午或者晚上练习(大量练习.重复练习)⑤ 晚上睡觉前的回忆 ⑥ 第二天早晨回顾 ⑦ 每周总结,自己默写方法 一.enumer ...
- Day7 - Python基础7 面向对象编程进阶
Python之路,Day7 - 面向对象编程进阶 本节内容: 面向对象高级语法部分 经典类vs新式类 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 作业:开发一个 ...
- Python自动化 【第七篇】:Python基础-面向对象高级语法、异常处理、Scoket开发基础
本节内容: 1. 面向对象高级语法部分 1.1 静态方法.类方法.属性方法 1.2 类的特殊方法 1.3 反射 2. 异常处理 3. Socket开发基础 1. ...
- python基础——内置函数
python基础--内置函数 一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html?highl ...
- Python基础7 面向对象编程进阶
本节内容: 面向对象高级语法部分 经典类vs新式类 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 作业:开发一个支持多用户在线的FTP程序 面向对象高级语法部分 经典 ...
- Python基础 小白[7天]入门笔记
笔记来源 Day-1 基础知识(注释.输入.输出.循环.数据类型.随机数) #-*- codeing = utf-8 -*- #@Time : 2020/7/11 11:38 #@Author : H ...
- python之最强王者(2)——python基础语法
背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...
- Python开发【第二篇】:Python基础知识
Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...
- Python小白的发展之路之Python基础(一)
Python基础部分1: 1.Python简介 2.Python 2 or 3,两者的主要区别 3.Python解释器 4.安装Python 5.第一个Python程序 Hello World 6.P ...
随机推荐
- 数据库(二):初识sql语句
进击のpython ***** 数据库--初识sql语句 前面提到了说,数据库管理系统就像我们曾经做过的输入命令返回结果的socket通信差不多 那既然提到了命令,在MySQL中,有一些基本的语句,就 ...
- springboot2.2 集成 activity6 请假完整示例
新手学习记录.写在springboot test 示例 示例代码地址看结尾.后面有带页面的示例. SpringBoot Test无页面简单示例 员工请假流程 员工发起申请,附带请假信息(请假几天) ...
- 破解东航的seriesid
在查询东航航班的时候,请求数据中有个seriesid 调试js分析代码的过程就略过了,下面是整合的生成seriesid 的js代码 <script> function get_n(e, t ...
- C/C++编程笔记:C++入门知识丨类和对象
本篇要学习的内容和知识结构概览 类及其实例化 类的定义 将一组对象的共同特征抽象出来, 从而形成类的概念. 类包括数据成员和成员函数, 不能在类的声明中对数据成员进行初始化 声明类 形式为: clas ...
- 牛客IOI周赛17-提高组 卷积 生成函数 多项式求逆 数列通项公式
LINK:卷积 思考的时候 非常的片面 导致这道题没有推出来. 虽然想到了设生成函数 G(x)表示最后的答案的普通型生成函数 不过忘了化简 GG. 容易推出 \(G(x)=\frac{F(x)}{1- ...
- OWL本体语言和Protege本体编辑器
OWL本体语言和Protege本体编辑器 演讲稿原作者:Wala Abdulaziz译者:Wu Di (pimgeek)转载.编辑:Tan Liwei原文发布日期:2013年6月5号原文链接:http ...
- jenkins集成spring boot持续化构建代码
我个人使用的是阿里云的云服务器,项目采用的是spring boot为框架,现在要做的功能就是将本地开发的代码提交到github中,通过jenkins自动化集成部署到云服务器.接下来开始步骤. 1 首先 ...
- 极简 Node.js 入门 - 1.4 NPM & package.json
极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...
- java_内部类、匿名内部类的使用
内部类 将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类. 内部类的分类 成员内部类,类定义在了成员位置 (类中方法外称为成员位置) 局部内部类,类定义在方法内 成员内部类 ...
- web新手第二周知识汇总
这周学习了盒模型以及一些定位的知识,现在简单做下汇总 盒模型组成部分: ie浏览器默认值是border-box content(内容盒)蓝色 padding(内容和边框的距离 绿色 填充盒包含内容)b ...