一、引子

1、什么是数据?

x=10,10是我们要存储的数据

2、为何数据要分不同的类型

数据是用来表示状态的,不同的状态就应该用不同的类型的数据去表示

3、数据类型的分类

数字(×××,长×××,浮点型,复数)

字符串 (在介绍字符编码时介绍字节bytes类型)

列表

元组

字典

集合

4 按照以下几个点展开数据类型的学习

1)基本使用

(1)用途

(2)定义方式

(3)常用操作+内置的方法

2)该类型总结

(1)存一个值or存多个值

只能存一个值

可以存多个值,值都可以是什么类型

(2)有序or无序

(3)可变or不可变

!!!可变:值变,id不变。可变==不可hash

!!!不可变:值变,id就变。不可变==可hash

二、数字

1、整型int

作用:年纪,等级,×××号,qq号等整型数字相关

定义:age=10  #本质age=int(10)

2、浮点型float

作用:薪资,身高,体重,体质参数等浮点数相关

定义:alary=3000.3 #本质salary=float(3000.3)

3、二进制,十进制,八进制,十六进制

参考链接:https://blog.51cto.com/10630401/2049374

4、其他数字类型(了解)

1)长×××    在python2中(python3中没有长×××的概念) num=2L

2)复数    x=1-2j

5、数字类型小结

1)存一个值

2)有序

3)!!!不可变:值变,id就变。不可变==可hash

三、字符串

1、作用:名字,性别,国籍,地址等描述信息

2、定义:在单引号\双引号\三引号内,由一串字符组成

name='egon'

3、常用操作+内置的方法:

1)优先掌握的操作:

(1)按索引取值(正向取+反向取):只能取(不可修改,取出的字符还是字符串类型,空格也占一个索引)

str[开头的索引值:结尾的索引值:步长]

(2)切片(顾头不顾尾,步长)

(3)长度len (等同于调用这个方法str.__len__())

(4)成员运算in和not in(结果是布尔值)

(5)移除空白strip(只能移除字符串左右两端的空白格)

日常用法:password=input('>>: ').strip()

(6)切分split

默认是空格符做切割符号,不指定切割次数的话,整个字符串都会切

rsplit是按照倒序的方式切割

(7)循环

逐个取出字符串中的字符、range(头,尾,步长)

2)需要掌握的操作

(1)strip,lstrip,rstrip

strip默认是移除空白,非空格的需要指定;lstrip是移除左边的;rstrip是移除右边的;

(2)lower,upper

lower是把字符串中的大写字母转换成小写,upper是小写换成大写

(3)startswith,endswith

判断字符串是否是以什么开头或者结尾,结果是布尔值

(4)format的三种玩法

占位符是{}

print('this is {} this is a {}'.format('test','pen'))

(5)split,rsplit

(6)join

只有在列表内的元素全是字符串类型,才能用join拼接

用split切割完以后是一个列表,每个元素都是字符串,可以采用join拼接

info='root:x:0:0'
l=info.split(':')
print(l)
print(':'.join(l))

(7)replace

(8)isdigit

3)其他操作(了解即可)

(1)find,rfind,index,rindex,count

(2)center,ljust,rjust,zfill

(3)expandtabs

(4)captalize,swapcase,title

(5)is数字系列

(6)is其他

4、字符串类型小结

1)存一个值

2)有序

3)  !!!不可变:值变,id就变。不可变==可hash

四、列表

1、作用:多个装备,多个爱好,多门课程,多个女朋友等

2、定义:[]内可以有多个任意类型的值,逗号分隔

变量l= list('字符串')

l=list('hello')

print(l)

['h', 'e', 'l', 'l', 'o']

3、常用操作+内置方法

1)优先掌握的操作:

(1)按索引存取值(正向存取+反向存取):即可存也可以取

(2)切片(顾头不顾尾,步长)

(3)长度

(4)成员运算in和not in

(5)追加append (会追加在最后一个索引的后边)

(6)删除:直接删除del、remove;删除并拿到结果pop;

del list[索引]

list.remove('列表中的元素')

list.pop(索引)  能打印出删除的那个元素

(7)循环

循环取出列表中的元素

l1=['a','b','c','d']
for i in range(len(l1)):print(l1[i])

2)需要掌握的操作:

(1)insert(插到哪个索引值前面,插入的值)

(2)clear() python2 没有这个方法

(3)copy() python2 没有这个方法

(4)count() 统计列表中的某个元素的次数

(5)extend() 列表的拼接扩展,(里面可以写另一个列表名或者一个字符串)

(6)index(元素) 查找某个元素的索引值

(7)reverse()  把列表颠倒过来

(8)sort() 排序 默认的是从小到大;list.sort(reverse=True)可以实现从大到小

3)其他操作(了解即可)

4、列表类型总结

1)可以存多个值,值都可以是任意类型

2)有序

3)!!!可变:值变,id不变。可变==不可hash

五、元组

1、作用:存多个值,对比列表来说,元组不可变(是可以当做字典的key的),主要是用来读

2、定义:与列表类型比,只不过[]换成()

变量名=tuple(字符串)

age=tuple('hello')

print(age,type(age)

3、常用操作+内置方法

1)优先掌握的操作:

(1)按索引取值(正向取+反向取):只能取

(2)切片(顾头不顾尾,步长)

(3)长度

(4)成员运算in和not in

(5)循环

2)需要掌握的操作

(1)index

(2)count

4、元组类型总结

1)可以存多个值,值都可以是任意类型

2)有序

3)!!!不可变:值变,id就变。不可变==可hash

六、字典

1、作用:存多个值,key-value存取,取值速度快

2、定义:key必须是不可变类型,value可以是任意类型

info={'name':'egon','age':18,'sex':'male'} #本质info=dict({....})

或info=dict(name='egon',age=18,sex='male')

或info=dict([['name','egon'],('age',18)])

或{}.fromkeys(('name','age','sex'),None)

3、常用操作+内置方法

1)优先掌握的操作:

(1)按key存取值:可存可取

(2)长度len (统计键值对的个数)

(3)成员运算in和not in (结果是布尔值)

(4)删除

d.pop('a') #输出的是删除的key对应的value值

d.popitem() #输出的是删除的key对应的key:value键值对

(5)键keys(),值values(),键值对items()

(6)循环

info = dict(name='egon', age=18, sex='male')
for key in info:print(info[key])for items in info:print(items)

4、字典类型总结

1)可以存多个值,值都可以是任意类型

2)无序

3)!!!不可变:值变,id就变。不可变==可hash

七、集合 set

1、作用:去重,关系运算

2、定义:可以包含多个元素,用逗号分割

s=set({元素需为不可变类型})

集合的元素遵循三个原则:

1、每个元素必须是不可变类型(可hash,可作为字典的key)

2、没有重复的元素

3、无序

PS:注意集合的目的是将不同的值存放到一起,不同的集合间用来做关系运算,无需纠结于集合中单个值

3、常用操作+内置的方法:

1)优先掌握的操作:

(1)长度len

(2)成员运算in和not in

(3)|合集 intersection

(4)&交集 union

(5)-差集 symmetric_difference

(6)^对称差集 difference

(7)==

(8)父集:>,>=  issuperset

(9)子集:<,<=  issubset

(10)循环

2)了解的操作:

(1)集合1.difference_update(集合2)

s1.difference_update(s2) #s1=s1.difference(s2)

(2)集合1.pop() 默认删除的是集合的最后一个元素

(3)集合1.add()  默认添加的元素是到集合的最后面

(4)删除集合元素

discard()  删除的元素不存在不会报错

remove()  删除的元素不存在则报错

(5)集合1.isdisjoint(集合2) 两个集合没有共同部分时,返回值为True

(6)集合.update({})  一次可以增加多个元素

4、集合类型小结

1)存多个值

2)无序

3)    !!!不可变:值变,id就变。不可变==可hash

八、数据类型总结!!!!!

1、按存储空间的占用分(从低到高)

数字

字符串

集合:无序,即无序存索引相关信息

元组:有序,需要存索引相关信息,不可变

列表:有序,需要存索引相关信息,可变,需要处理数据的增删改

字典:无序,需要存key与value映射的相关信息,可变,需要处理数据的增删改

2、按存值个数区分

标量/原子类型: 数字,字符串

容器类型:列表,元组,字典

3、按可变不可变区分

可变:列表,字典

不可变: 数字,字符串,元组

4、按访问顺序区分

直接访问:数字

顺序访问(序列类型):字符串,列表,元组

key值访问(映射类型):字典

九、字符编码

https://blog.51cto.com/10630401/2312336

十、文件处理

https://blog.51cto.com/10630401/2050716

转载于:https://blog.51cto.com/10630401/2312313

第二篇 Python数据类型、字符编码、文件处理相关推荐

  1. java 默认字符集 iso_第二篇:JAVA字符编码系列二:Unicode,ISO-8859-1,GBK,UTF-8编码及......

    1.函数介绍 在Java中,字符串用统一的Unicode编码,每个字符占用两个字节,与编码有关的两个主要函数为: 1)将字符串用指定的编码集合解析成字节数组,完成Unicode-〉charsetNam ...

  2. [转帖]虚拟内存探究 -- 第二篇:Python 字节

    虚拟内存探究 -- 第二篇:Python 字节 http://blog.coderhuo.tech/2017/10/15/Virtual_Memory_python_bytes/是真看不懂哦  翻译 ...

  3. python:字符编码问题

    摘要 最近用python,遇到了诸多编码问题,曾经看过一个关于字符编码的文章,感觉很好,特意转载出来. 前言 很多程序员对字符编码不太理解,虽然他们大概知道 ASCII.UTF8.GBK.Unicod ...

  4. (转载)Python常见字符编码间的转换

    Python常见字符编码间的转换 主要内容:     1.Unicode 和 UTF-8的爱恨纠葛     2.字符在硬盘上的存储     3.编码的转换     4.验证编码是否转换正确     5 ...

  5. python转换字符编码_转:Python常见字符编码及其之间的转换

    一.Python常见字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Code for Information Interchange,美国信息交 ...

  6. python转换字符编码_Python常见字符编码间的转换

    学习Python,字符编码间的转换是绕不过去的一只拦路虎,不把编码彻底搞明白,总有一天它会猝不及防坑你一把. Python2.x和Python3.x在字符编码的设置上也有很大区别(Python3未来将 ...

  7. Python常见字符编码及其之间的转换

    参考:Python常见字符编码 + Python常见字符编码间的转换 一.Python常见字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Cod ...

  8. python中gbk字符原因报错_不想再被鄙视?那就看进来! 一文搞懂 Python 2 字符编码...

    原标题:不想再被鄙视?那就看进来! 一文搞懂 Python 2 字符编码 程序员都自视清高,觉得自己是创造者,经常鄙视不太懂技术的产品或者QA.可悲的是,程序员之间也相互鄙视,程序员的鄙视链流传甚广, ...

  9. 【爬虫】获取网页编码、chardet库、Python的字符编码

    目录 1.常用网页编码有 2.怎么知道一个网页的编码? 我们知道可以从审查元素(F12)通过查看元素获得. 那么有没有一种方法可以通过代码获取到编码呢? 3.chardet库 1.安装 2.chard ...

最新文章

  1. Java 开发Log4j 详细使用教程
  2. MIT自然语言处理第四讲:标注
  3. 计算机科学在航空航天仿真模拟,2016年南京航空航天大学计算机科学与技术学院541计算机综合基础之数据结构复试笔试仿真模拟题...
  4. ubuntu8.04安装java+eclipse+J2ME+wtk
  5. 小鱼会有危险吗(洛谷-P1426)
  6. python写一个类_python3学习笔记--002--写一个类
  7. 避免软件失败的7个关键实践——来自项目管理群的讨论
  8. 1.nodejs介绍
  9. Windows cmd终端美化:Windows terminal背景图
  10. Tensorflow:模型调参
  11. HDOJ--1203--I NEED A OFFER!
  12. python去噪函数_Python | 简单的扩音,音频去噪,静音剪切
  13. 基于深度学习的AI疲劳检测系统
  14. linux下解压iso文件
  15. 最新八个免费Logo设计工具灵感网站,帮你搞定logo设计难题!
  16. 影子传文件到服务器,影子传说——文件超级隐身术
  17. 【计算思维题】少儿编程 蓝桥杯青少组计算思维题真题及解析第2套
  18. 用51单片机实现抽水水泵
  19. ARM服务器和ARM集群服务器的区别
  20. 【trajectory optimization】1 intro

热门文章

  1. 8VC Venture Cup 2016 - Final Round (Div. 2 Edition) C. XOR Equation 数学
  2. C#探秘系列(八)WPF数据绑定
  3. CLR_via_C#.3rd 翻译[25.9 线程调度和优先权]
  4. 一个 ARK工具: XueTr类似ICEWORLD
  5. 启动Tomcat服务时,出现org.apache.catalina.startup.VersionLoggerListener报错
  6. ansible 简单使用
  7. UVA-10026 Shoemaker's Problem (贪心)
  8. 【原创】利用typeface实现不同字体的调用显示及String转换为Unicode
  9. 关于FragmentManager动态管理Fragment时Fragment生命周期的探究
  10. vs 2005 多語言