ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

day08 数据类型总结 文件操作

2020-12-24 14:36:21  阅读:197  来源: 互联网

标签:总结 文件 day08 gender s1 数据类型 res print male


上节课复习:

  1、队列与堆栈

    队列:先进先出FIFO    例如:排队

    堆栈:后进先出LIFO    例如:叠衣服

  2、字典

  3、setdefault

温故知新:
Python 字典 setdefault() 方法和 get() 方法类似, 如果 key 在 字典中,返回对应的值。
如果不在字典中,则插入 key 及设置的默认值 default,并返回 default ,default 默认值为 None。
d = {'name':'egon','age':18,'gender':'xxx'}
d.setdefault('gender','male')   # {'name': 'egon', 'age': 18, 'gender': 'xxx'}
d.update({'gender':'male'})       #{'name': 'egon', 'age': 18, 'gender': 'male'}
print(d)
res = d.setdefault('gender','male')   # xxx
print(res)
View Code

今日内容

  一、集合类型

         数据类型总结

  二、文件处理

    1、什么是文件

    2、为何要用文件

    3、如何用文件

一、集合

1、用途:

  去重:

    (1) 无法保证顺序

msg = 'hello'
res = set(msg)
print(''.join(res))    # oehl

    (2) 只能针对不可元素去重

student_info = [
    {'name':'egon','age':18,'gender':'male'},
    {'name':'tom','age':19,'gender':'male'},
    {'name':'jack','age':38,'gender':'male'},
    {'name':'egon','age':18,'gender':'male'},
    {'name':'egon','age':18,'gender':'male'},
]

new_l = []
for info in student_info:
    if info not in new_l:
        new_l.append(info)
print(new_l)

>>>:
[{'name': 'egon', 'age': 18, 'gender': 'male'},
{'name': 'tom', 'age': 19, 'gender': 'male'},
{'name': 'jack', 'age': 38, 'gender': 'male'}]
View Code

  关系运算

2、定义方式:在{}内用逗号分隔开多个元素,集合内元素的特征有三个:

  (1)集合内元素必须是不可变元素

  (2)集合内元素不能重复

  (3)集合内元素无序

s = {11,11,22,33,33} # s = set(...)
print(s)             # {33, 11, 22}
print(type(s))       # <class 'set'>

数据类型转换

res = set('hello')
print(res)           # {'l', 'o', 'e', 'h'}
# 定义一个空集合
s = set()
print(type(s))         # <class 'set'>

3、常用操作+内置方法

优先掌握的操作:

1、长度len
s1 = {1,2,3}
print(len(s1))   # 3
2、成员运算in和not in
s1 = {1,2,3}
print(3 in s1)       # True
print(3 not in s1)   # False

1、|并集(合集):两个集合并到一起
2、&交集:取两个集合的共同部分
3、-差集:一个集合减掉与另一个集合共同的部分
4、^对称差集(交叉补集):求两个集合互相减,然后再并到一起
5、==
6、父集:>,>=  当一个集合完全包含了另外一个集合,该集合才能称为爹
s1 = {1,2,3}
s2 = {4,5,6}
print(s1 >= s2)   # False
print(s1.issuperset(s2))
7、子集:<,<=
print(s1 <= s2)   # False
print(s1.issubset(s2))

举例:
pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
linuxs={'wupeiqi','oldboy','gangdan'}

list1 = pythons | linuxs   # {'egon', 'yuanhao', 'wupeiqi', 'oldboy', 'biubiu', 'gangdan', 'alex'}
print(pythons.intersection(linuxs))
print(pythons.intersection_update(linuxs))

list2 = pythons & linuxs   # {'wupeiqi', 'gangdan'}
print(pythons.union(linuxs))

list3 = pythons - linuxs   # {'yuanhao', 'alex', 'egon', 'biubiu'}
print(pythons.difference(linuxs))

list4 = linuxs - pythons   # {'oldboy'}
print(linuxs.difference(pythons))

list5 = pythons ^ linuxs   # {'egon', 'oldboy', 'yuanhao', 'biubiu', 'alex'}
print(pythons.symmetric_difference(linuxs))
View Code

需要掌握的操作:

s1 = {1,2,3}

# 1、s1.update()
s1.update({3,4,5})
print(s1)    # {1, 2, 3, 4, 5}

# 2、s1.add()
s1.add(4)
print(s1)      # {1, 2, 3, 4}

# 3、删除
# 3.1  remove(3)
s1.remove(3)
print(s1)       # {1, 2}
# 3.2  pop()
res =  s1.pop()   # 随机删除 返回删除的值
print(s1)
print(res)
# 3.3  discard()
s1.discard(444444)   # 删除不存在的元素不会报错
print(s1)    # {1, 2, 3}
# 3.4  clear()
s1.clear()
print(s1)      # set()

# 4、copy
res = s1.copy()
print(res)      # {1, 2, 3}

# 5、isdisjoint()
s1 = {1,2,3}
s2 = {4,5,6}
print(s1.isdisjoint(s2))  # True
View Code

该类型总结:

存多个值  无序  可变  

数据类型总结:

数字
字符串
集合:无序,即无序索引相关信息
元组:有序,需要存索引相关信息,不可变
列表:有序,需要存储相关信息,可变,需要处理数据的增删改
字典:无序,需要key与value映射的相关信息,可变,需要处理数据的增删改

  按存值个数区分:

               

标量/原子类型       数字,字符串
容器类型 列表,元组,字典,集合

                       按照可变不可变区分:

可变 列表、字典
不可变

数字、字符串、元组

                       按访问顺序区分:

直接访问 数字
顺序访问(序列类型) 字符串,列表,元组
key值访问(映射类型) 字典

 二、文件处理

1、什么是文件

  文件时操作系统提供给用户或者应用程序操作硬盘的一种机制

       python中文件是对象

       Linux文件:一切设备都可以看成是文件

       文件的作用:把一些数据以文件的形式存储起来,文件由文件系统进行管理,当程序下一次执行的时候,通过文件系统快速找到对应的文件,而找到对应的数据,省时省力。

2、为何要用文件

  读写文件 ---> 存取硬盘

 

  应用程序:  open()

  操作系统:  打开文件

  计算机硬件:  硬盘空间

3、如何用文件

  1)打开文件

    方式一:open

# encoding指定字符编码表
f = open(r'a\a.txt',mode ='rt',encoding='utf-8')
# f的值 ---> 文件句柄,文件对象
res = f.read()
print(res)
f.close() # 回收操作系统的资源

 

    方式二:with open

with open(r'a\a.txt',mode = 'rt',encoding = 'utf-8') as f:
    res = f.read()
print(res)

  2)读/写

  要了解文件读写模式,需要了解几种模式的区别,以及对应指针

  1、控制读写操作模式

      r: 读取文件,文件存在的时候,文件指针调到文件开头,若文件不存在则会报错 ----->默认

      w:写入文件,在文件存在的时候会清空文件,文件指针调到文件开头,若文件不存在则会先创建再写入,会覆盖源文件

      a:写入文件,在文件存在的时候不会清空文件,文件指针调到文件末尾,若文件不存在则会先创建再写入,但不会覆盖源文件,而是追加在文件末尾

  2、控制读写内容模式

       t:读写都是文本格式,即读写都是字符串 ----->默认

       b:读写都是bytes格式,bytes等同于二进制

       强调:如果是 t 模式,一定记住加上encoding = '编码格式'

                  如果是 b 模式。一定记住别加encoding = '编码格式'

  3、 +

  r+:可读可写,文件不存在也会报错,写操作是会覆盖

  w+:可读,可写,文件不存在先创建,会覆盖

  a+:可读,可写,文件不存在先创建,不会覆盖,追加在末尾

  注意:这里的覆盖是指每次重新打开文件进行操作是覆盖原来的,如果实在打开文件中则不会覆盖

  3)关闭文件

    文件关闭的原因:

        *将写缓存同步到磁盘

        *Linux系统中每一个进程打开文件的个数是有限的,如果打开文件数到了系统限制,则会打开失败。

 

标签:总结,文件,day08,gender,s1,数据类型,res,print,male
来源: https://www.cnblogs.com/ZhZhang12138/p/14183878.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有