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. python 面向对象:类方法&静态方法

    一.类方法 1.1 概念和语法说明 类方法就是针对类对象定义的方法.在类方法内部可以直接访问类属性或者调用其他的类方法 语法如下: @classmethod def 类方法名(cls): pass 说 ...

  2. Cause: org.postgresql.util.PSQLException: 栏位索引超过许可范围:13,栏位数:12

    Cause: org.postgresql.util.PSQLException: 栏位索引超过许可范围:13,栏位数:12. 这个报错的原因是在mapper文件中的sql语书写错误 <inse ...

  3. spring5无法在控制台打印日志的原因

    想要在控制台输出spring的日志,却无法输出,log4j2所需要的jar文件都已经导入,log4j2的配置文件也存在,调整日志级别也不行,一通百度后发现是缺少spring的jcl的jar文件,把sp ...

  4. gradle学习(一)

    projects和tasks 任何一个Gradle构建都是由一个或者多个project组成 每个project都有多个tasks构成 每个task都代表了构建执行过程中的一个原子性操作.例如 编译 打 ...

  5. react将HTML字符串解析为HTML标签

    当后台返回的数据是字符串html的话,我们可以利用dangerouslySetInnerHTML属性来把字符串转换成html标签 function showhtml(htmlString){ var ...

  6. PPT2010制作充电动画

    原文: https://www.toutiao.com/i6492264647318569486/ 启动PPT2010,新建一张空白幻灯片 选择"插入"选项卡,"插图&q ...

  7. 51 Nod 1091 线段的重叠 (贪心算法)

    原题链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1091 思路分析:通过读题不难发现这是一道涉及贪心算法的题,刚 ...

  8. Sharding Sphere的分库分表

    什么是 ShardingSphere? 1.一套开源的分布式数据库中间件解决方案 2.有三个产品:Sharding-JDBC 和 Sharding-Proxy 3.定位为关系型数据库中间件,合理在分布 ...

  9. 浅谈kali : arpspoof工具原理

    Arpspoof工具 介绍 arpspoof是一个通过ARP协议伪造数据包实现中间人攻击的kali工具. 中间人攻击虽然古老,但仍处于受到黑客攻击的危险中,可能会严重导致危害服务器和用户.仍然有很多变 ...

  10. 感恩陪伴 HelloGitHub 定制的红包封面

    距离放假越来越近了,我们更文的频率也越来越低了. 先别打!听我解释... 我真没偷懒,我是去研究今年的「微信红包封面」玩法了. 这不去年,我们制作的 HelloGitHub 专属红包封面,很多粉丝都说 ...