1.集合:集合无序,不重复,可以用set(列表) 方法将列表转换为集合,实现去重

    对比列表:集合是{}包围,列表是[]包围

    对比字典:集合是没有key的,字典是有key的

set_1 = {1, 2, 3}
set_2 = {1, 2, 4, 5, 7}
set_3 = {1, 2, 3, 4, 5, 6, 7, 8}
set_4 = {4, 5, 6} # set_1 跟 set_2 的交集
print(set_1.intersection(set_2))
print(set_1 & set_2) # set_1 跟 set_2 的并集
print(set_1.union(set_2))
print(set_1 | set_2) # set_1 跟 set_2 的差集:取出set_1有的而set_2没有的集合 = set_1 - 两者交集
print(set_1.difference(set_2))
print(set_1 - set_2) # set_1 跟 set_2 的对称差集:取出set_1跟set_2互相没有的集合 = 两者并集 - 两者交集
print(set_1.symmetric_difference(set_2))
print(set_1 ^ set_2) # 判断set_1 是否为 set_3的子集
print(set_1.issubset(set_3)) # 判断set_3 是否为 set_1的父集
print(set_3.issuperset(set_1)) # 判断set_1 跟set_4 是否没有交叉数据,即无交集返回True,有交集返回Flase
print(set_1.isdisjoint(set_4)) # set添加一个
set_1.add(999)
print(set_1) # set添加多个
set_1.update([777, 888, "aa", "bb"])
print(set_1) # set删除方法1,key不存在报错
set_1.remove("aa")
print(set_1) # set删除方法2,key不存在也不报错
set_1.discard("ddd")
print(set_1) # 判断字符是否在集合(字符串,列表,字典)里面
print("bb" in set_1) # 判断字符是否不在集合(字符串,列表,字典)里面
print("cc" not in set_1)

2.文件操作的几种方式

  打开二进制文件只需要后面加b字符,如rb, rb+, wb, wb+, ab, ab+,二进制文件一般用于网络传输,视频文件之类。

# tell(): 返回当前文件指针的位置
# seek(): 回到指定指针位置 # 读模式,找不到文件报错,不可写入
file = open("测试数据3", mode="r", encoding="utf-8") # eg1 read()里面可带整型参数,表示读取个字符个数,不写表示全读
data = file.read()
print(data)
file.close() # eg2 读一行,清除一行,保证内存只有一行,(Python内部优化)
for data in file:
print(data)
file.close() # eg3 一次以列表形式全部读取到内存上,小文件可以这样做,大文件有可能撑爆内存
for data in file:
print(data)
file.close() # 写模式,找不到文件则创建,找到则覆盖,相当于清空内容
file = open("测试数据", mode="w", encoding="utf-8")
file.write("END END END")
file.close() # 追加模式,找不到文件则创建,找到同名文件不会覆盖,同时可以追加写入
file = open("测试数据55", mode="a", encoding="utf-8")
file.write("abc")
file.close() # 读写模式,找不到文件则创建,找到同名文件不会覆盖,同时可以追加写入
file = open("测试数据2", "a+", encoding="utf-8")
print(file.readline())
file.write("end\n")
file.close() # 写读模式,找不到文件则创建,找到同名文件则覆盖,同时可以追加写入
file = open("测试数据", "w+", encoding="utf-8")
file.write("end1\n")
file.write("end2\n")
file.seek(2)
file.write("aaaaaa\n")
print(file.readline())
file.close() # 追加读写模式,找不到文件报错,找到同名文件则覆盖,覆盖写入
file = open("测试数据2", "r+", encoding="utf-8")
file.write("abc\n")
file.write("ddd\n")
file.write("aaa\n")
file.close()

  with语法:

# with 打开文件,可以自动关闭,防止忘记关闭,同时可以打开多个
with open("测试数据", "r", encoding="utf-8") as file:
for line in file:
print(line) # 等价于上面
file = open("测试数据", "r", encoding="utf-8")
for line in file:
print(line)
file.close() # with 打开多个文件
with open("测试数据", "r", encoding="utf-8") as file, \
open("测试数据2", "r", encoding="utf-8") as file2:
for line in file:
print(line)
for line in file2:
print(line)

3.函数

  ① 声明一个函数: def 函数名(函数参数):

            # 写函数操作

def fun_name():
print("this is a fun")

  ② 函数参数: 

    在 python 中,类型属于对象,变量是没有类型的:

a=[1,2,3]

a="Runoob"

    以上代码中,[1,2,3] 是 List 类型,"Runoob" 是 String 类型,而变量 a,变量a,变量a,它就是一个变量,变量没有类型,变量只能指向一个对象的引用(一个指针),该指针可以指向 strings, tuples, numbers,  list, dict。

    然而,Python中参数分为可更改对象(mutable)不可以更改对象(ummutable)

    strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象,所以将 strings,tuples,numbers作为函数参数传过去的时候,操作这个参数只是操作了参数的副本,对原本值没有影响,但如果将 list,dict作为参数传过去,再操作这个参数,就会影响原本的值了。

  

  ③参数类型,不重复写,引用此文

  

   ④注意的点, *args,**kwargs:主要用于定义函数的可变参数。

    *args:发送一个非键值对的可变数量的参数列表给函数

    **kwargs:发送一个键值对的可变数量的参数列表给函数

    如果要同时使用*args和**kwargs时,*args必须写在**kwargs之前,否则报错

day3 -- 集合、文件操作、函数的更多相关文章

  1. 跟着ALEX 学python day3集合 文件操作 函数和函数式编程 内置函数

    声明 : 文档内容学习于 http://www.cnblogs.com/xiaozhiqi/  一. 集合 集合是一个无序的,不重复的数据组合,主要作用如下 1.去重 把一个列表变成集合 ,就自动去重 ...

  2. Delphi文件操作函数

    文件是同一种类型元素的有序集合,是内存与外设之间传输数据的渠道.文件的本质是一个数据流,所有的文件实际上是一串二进制序列.文件管理包括:1.文件操作.2.目录操作.3.驱动器操作.三部分. 1.常见文 ...

  3. 总结文件操作函数(二)-C语言

    格式化读写: #include <stdio.h> int printf(const char *format, ...);                   //相当于fprintf( ...

  4. PHP常用的文件操作函数集锦

    以下是个人总结的PHP文件操作函数.当然,这只是部分,还有很多,我没有列出来. 一 .解析路径: 1 获得文件名:basename();给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件 ...

  5. C语言样式的文件操作函数

    使用C语言样式的文件操作函数,需要包含stdio.h头文件. 1.打开文件的函数: //oflag的取值为“w”或“r”,分别表示以写或读的方式打开 FILE* fd = fopen(filename ...

  6. Unix无缓冲文件操作函数、文件信息查询

    问题描述:         Unix无缓冲文件操作函数.文件信息查询 问题解决:        struct stat 结构体信息: 具体代码: 具体源文件:

  7. C语言文件操作函数

    C语言文件操作函数大全 clearerr(清除文件流的错误旗标) 相关函数 feof表头文件 #include<stdio.h> 定义函数 void clearerr(FILE * str ...

  8. 总结文件操作函数-文件夹(三)-C语言

    获取.改变当前文件夹: 原型为: #include <unistd.h>   //头文件 char *getcwd(char *buf, size_t size); //获取当前文件夹.相 ...

  9. PHP 面试时常考的文件操作函数

    前两天面试的时候,笔试要求写一些文件操作类函数,什么遍历目录获取文件扩展名之类的,回来后大致总结了一下PHP中一些常见的文件操作函数分享一下. 1.使用递归删除目录及目录下所有文件的方法. funct ...

  10. 【阅读笔记】《C程序员 从校园到职场》第六章 常用文件操作函数 (Part 1)

    参考链接:https://blog.csdn.net/zhouzhaoxiong1227/article/details/24926023 让你提前认识软件开发(18):C语言中常用的文件操作函数总结 ...

随机推荐

  1. 使用VUE组件创建SpreadJS自定义单元格(一)

    作为近五年都冲在热门框架排行榜首的Vue,大家一定会学到的一部分就是组件的使用.前端开发的模块化,可以让代码逻辑更加简单清晰,项目的扩展性大大加强.对于Vue而言,模块化的体现集中在组件之上,以组件为 ...

  2. minio文件上传与下载

    目录 一.minio简介 二.minio安装 一.java中使用 一.minio简介 MinIO 是在 GNU Affero 通用公共许可证 v3.0 下发布的高性能对象存储. 它是与 Amazon ...

  3. 使用 navigator.userAgent.toLowerCase() 区别 浏览器 类型

    userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值 var ua = navigator.userAgent.toLowerCase(); 返回的是个字符串 ...

  4. spring cloud feign 报错 feign.FeignException$MethodNotAllowed: status 405 reading 解决

    1.前言 出现报错 feign.FeignException$MethodNotAllowed: status 405 reading XXXXX 需要检查 接口的请求参数是否一致 请求参数是否正确添 ...

  5. JS 判断上传文件类型

    var video_src_file = $("#video_src_file").val(); var fileTypes = new Array("flv" ...

  6. 日志收集系统系列(三)之LogAgent

    一.什么是LogAhent 类似于在linux下通过tail的方法读日志文件,将读取的内容发给kafka,这里的tailf是可以动态变化的,当配置文件发生变化时,可以通知我们程序自动增加需要增加的配置 ...

  7. Go语言系列之标准库log

    Go语言内置的log包实现了简单的日志服务.本文介绍了标准库log的基本使用. 使用Logger log包定义了Logger类型,该类型提供了一些格式化输出的方法.本包也提供了一个预定义的" ...

  8. SGU140. Integer Sequences

    https://codeforces.com/problemsets/acmsguru/problem/99999/140 n元同余方程的求解 对于任意二元我们可以替换成kgcd(a,b),不断迭代下 ...

  9. JVM调优工具锦囊

    Arthas线上 分析诊断调优工具 以前我们要排查线上问题,通常使用的是jdk自带的调优工具和命令.最常见的就是dump线上日志,然后下载到本地,导入到jvisualvm工具中.这样操作有诸多不变,现 ...

  10. Vulnhub系列:chili

    0x01 靶机信息 靶机:chili难度:简单下载:https://www.vulnhub.com/entry/chili-1,558/ 靶机描述: 0x02 信息收集 nmap扫描存活主机确定靶场i ...