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. Docker_简介(1)

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 ...

  2. 怎样修改自己的登录shell

    问题 我只是Linux系统的普通用户,没有权限调用chsh命令修改自己的登录shell. bash-4.1$ chsh --help Usage: chsh [ -s shell ] [ --list ...

  3. Go语言系列- http编程和mysql

    http编程 一.Http协议  1. 什么是协议? 协议,是指通信的双方,在通信流程或内容格式上,共同遵守的标准.  2. 什么是http协议? http协议,是互联网中最常见的网络通信标准.  3 ...

  4. console.log(a)和console.log(window.a)的区别?

    console.log(window.l); //undefined console.log(l); //Uncaught ReferenceError: l is not defined js对于未 ...

  5. Allwinner F1C100s coremark测试

    ccu register base:0x01c20000 devmem 0x01c20000 The PLL output=(24MHz*N*K)/(M*P) N=31 K=1 M=1 P=/1 re ...

  6. Java不限制从键盘输入一个数组

    Java不限制从键盘输入一个数组 在写算法的时候,需要从键盘输入一个数组,一直不会,最近看了几篇博客学会了,下面用二分查找举例: package com.基础; import java.util.Sc ...

  7. ctf--web刷题记录 ACTF2020back up file 、极客大挑战2019php、secret file

    ACTF2020back up file backup file指的是备份文件,一般备份文件的后缀有".git" .".svn"." .swp&quo ...

  8. cesium结合geoserver利用WFS服务实现图层编辑(附源码下载)

    前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...

  9. CesiumJS下载量超过1百万次

    Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ CesiumJS的下载总量已经超过100万.这一里程碑对我们(C ...

  10. Java对象栈上分配

    转自 https://blog.csdn.net/o9109003234/article/details/101365108 在学习Java的过程中,很多喜欢说new出来的对象分配一定在对上: 其实不 ...