day3 -- 集合、文件操作、函数
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 -- 集合、文件操作、函数的更多相关文章
- 跟着ALEX 学python day3集合 文件操作 函数和函数式编程 内置函数
声明 : 文档内容学习于 http://www.cnblogs.com/xiaozhiqi/ 一. 集合 集合是一个无序的,不重复的数据组合,主要作用如下 1.去重 把一个列表变成集合 ,就自动去重 ...
- Delphi文件操作函数
文件是同一种类型元素的有序集合,是内存与外设之间传输数据的渠道.文件的本质是一个数据流,所有的文件实际上是一串二进制序列.文件管理包括:1.文件操作.2.目录操作.3.驱动器操作.三部分. 1.常见文 ...
- 总结文件操作函数(二)-C语言
格式化读写: #include <stdio.h> int printf(const char *format, ...); //相当于fprintf( ...
- PHP常用的文件操作函数集锦
以下是个人总结的PHP文件操作函数.当然,这只是部分,还有很多,我没有列出来. 一 .解析路径: 1 获得文件名:basename();给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件 ...
- C语言样式的文件操作函数
使用C语言样式的文件操作函数,需要包含stdio.h头文件. 1.打开文件的函数: //oflag的取值为“w”或“r”,分别表示以写或读的方式打开 FILE* fd = fopen(filename ...
- Unix无缓冲文件操作函数、文件信息查询
问题描述: Unix无缓冲文件操作函数.文件信息查询 问题解决: struct stat 结构体信息: 具体代码: 具体源文件:
- C语言文件操作函数
C语言文件操作函数大全 clearerr(清除文件流的错误旗标) 相关函数 feof表头文件 #include<stdio.h> 定义函数 void clearerr(FILE * str ...
- 总结文件操作函数-文件夹(三)-C语言
获取.改变当前文件夹: 原型为: #include <unistd.h> //头文件 char *getcwd(char *buf, size_t size); //获取当前文件夹.相 ...
- PHP 面试时常考的文件操作函数
前两天面试的时候,笔试要求写一些文件操作类函数,什么遍历目录获取文件扩展名之类的,回来后大致总结了一下PHP中一些常见的文件操作函数分享一下. 1.使用递归删除目录及目录下所有文件的方法. funct ...
- 【阅读笔记】《C程序员 从校园到职场》第六章 常用文件操作函数 (Part 1)
参考链接:https://blog.csdn.net/zhouzhaoxiong1227/article/details/24926023 让你提前认识软件开发(18):C语言中常用的文件操作函数总结 ...
随机推荐
- 使用VUE组件创建SpreadJS自定义单元格(一)
作为近五年都冲在热门框架排行榜首的Vue,大家一定会学到的一部分就是组件的使用.前端开发的模块化,可以让代码逻辑更加简单清晰,项目的扩展性大大加强.对于Vue而言,模块化的体现集中在组件之上,以组件为 ...
- minio文件上传与下载
目录 一.minio简介 二.minio安装 一.java中使用 一.minio简介 MinIO 是在 GNU Affero 通用公共许可证 v3.0 下发布的高性能对象存储. 它是与 Amazon ...
- 使用 navigator.userAgent.toLowerCase() 区别 浏览器 类型
userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值 var ua = navigator.userAgent.toLowerCase(); 返回的是个字符串 ...
- spring cloud feign 报错 feign.FeignException$MethodNotAllowed: status 405 reading 解决
1.前言 出现报错 feign.FeignException$MethodNotAllowed: status 405 reading XXXXX 需要检查 接口的请求参数是否一致 请求参数是否正确添 ...
- JS 判断上传文件类型
var video_src_file = $("#video_src_file").val(); var fileTypes = new Array("flv" ...
- 日志收集系统系列(三)之LogAgent
一.什么是LogAhent 类似于在linux下通过tail的方法读日志文件,将读取的内容发给kafka,这里的tailf是可以动态变化的,当配置文件发生变化时,可以通知我们程序自动增加需要增加的配置 ...
- Go语言系列之标准库log
Go语言内置的log包实现了简单的日志服务.本文介绍了标准库log的基本使用. 使用Logger log包定义了Logger类型,该类型提供了一些格式化输出的方法.本包也提供了一个预定义的" ...
- SGU140. Integer Sequences
https://codeforces.com/problemsets/acmsguru/problem/99999/140 n元同余方程的求解 对于任意二元我们可以替换成kgcd(a,b),不断迭代下 ...
- JVM调优工具锦囊
Arthas线上 分析诊断调优工具 以前我们要排查线上问题,通常使用的是jdk自带的调优工具和命令.最常见的就是dump线上日志,然后下载到本地,导入到jvisualvm工具中.这样操作有诸多不变,现 ...
- Vulnhub系列:chili
0x01 靶机信息 靶机:chili难度:简单下载:https://www.vulnhub.com/entry/chili-1,558/ 靶机描述: 0x02 信息收集 nmap扫描存活主机确定靶场i ...