python_8 拆包、内置函数和高阶函数
一、查缺补漏
1. \t 子表符,用于对其
二、拆包
1. 拆包:顾名思义就是将可迭代的对象如元组,列表,字符串,集合,字典,拆分出相对应的元素
2. 形式:拆包一般分两种方式,一种是以变量的方式来接收,另一种是用"*/**"号多用于函数拆包,单星号字典拆分只能得到字典的键(key),不能得到字典的值(value)
a. 当以变量的方式拆包时需要左右两边的元素的个数和变量的个数一致,否则报错,不同类型都可通过这个拆包
如:list1=[1,2,5] a,b,c=list1 print(a,b,c) 结果为:1 2 5
b. 当以*和**对函数拆包时,*支持列表、元组、集合等类型的拆包,**支持字典类型的拆包
i. *:当需要传不定长参数、多个参数时把需要的参数放在一个list或任意的可迭代对象中,在通过拆包的方式传递,拆包的过程中可以将list类型转化为tuple类型
其中test02(*test_list)等同于test02(1,2,3,4,5,6)
当只取list中的第一个元素也可以使用不定长参数*args来进行拆包
如:list1=[1,2,3,5] a,*args,c=list1 print(a) 结果为:1
ii. **:当函数需要传递多个关键字参数时可以把需要的参数放到dict类型中,再通过**拆包进行传递,拆包前后统一都是dict类型
其中test02(**test_dict) 等同于 test02(key1="key1",key2="key2")
三、内置函数
1. 如何查看python的内置函数 import builtins print(dir(builtins))
2. 常用的内置函数
a. print()
b. input()
c. type()
d. len()
e. list()、tuple()、dict()、str()、set()、bool()、int()、float()
f. sum()
g. id() 取内存地址
h. range() 生成列表
3. ()是对函数的调用,没有()的函数是没有去调用
四、高阶函数
1. zip():压缩和解压,也可以用于list拆包,将对应位置的数据逐一拆分配对,以最短的list为准
a. 压缩:list(zip(要压缩的表1,表2))
当用于压缩时需要强制list类型转换才能显示出来,因为zip展示的是对象,也可以转换成字典类型
b. 解压:list(zip(*压缩之后的结果))
当用于解压时会恢复未压缩之前的的内容,超过长度的list元素会被丢弃
c. 拆包:[*zip(*拆包)] 用于拆分重新配对多层list,zip前加[*]可以直接显示出结果(tuple类型)
2. enumerate():获取可迭代对象的索引位置,不指定索引起始值,默认为0,指定以指定的值开始显示
3. Lambda 匿名函数 接收值=lambda 形参 :返回值 可以不为函数起名,直接定义函数
五、open函数
1. 读文件语法:
a. 需要执行代码关闭文件
i. file = open(file='打开的文件位置',mode='读文件一般写r,表示模式为read')
ii. test=file.read() ---- 读取所有的数据
iii. print(test文件名) -----打印出test.txt的内容
iv. file.close() -----关掉文件,一定要关掉,不关掉文件光标有问题
b. 自动关闭文件:with语句,管理上下文
i. with open(file='test.txt',mode='r') as file: ----with语句
ii. test = res.read() ---- 读取所有的数据
iii. print(test) -----打印出test.txt的内容
iv. 当执行with的时候会调用一个_ _close()的魔术方法,所以不用代码执行close
标注:如果打开的文件和py文件在同一个文件目录下那么在file中可以直接写文件名如test.txt
file表示任意的接收名
2. 使用:更改位置在1>a>ii
a. file.read() 读取整个文件内容(全部读取出来)
b. file.readline() 读取文件的第一行数据,遇到\n换行符结束
c. file.readlines() 读取文件逐行读取,会读取换行符,返回所有行组成的list,对比a更省内存
3. 写文件
a. with open(file='文件地址',mode='写文件用w-表示write') as 接收名:
接收名.write("想写的内容")
b. 覆盖写入,每次写入会覆盖之前的内容,全部覆盖
追加写入,只需将mode='a'即可
不会自动换行,需要换行必须加\n
列:with open(file='test.txt',mode='w') as res: res.write("z") 结果:在test.txt文档中写入了z
c. 文件保存:
自动保存:先写进缓存区等程序运行结束之后,再一次性写进文件,当异常结束,不能成功保存
手动保存:文件名file.flush()
列:手动保存可以更好的保存成功
标注:只有导入time库,才可以使用休息等待
4. 操作模式(写在open函数的mode中)
a. r :读
b. w:覆盖写入
c. a :追加写入
d. +(表示同时可读写)
i. r+:可读可写,覆盖写入
ii. w+:可读可写,覆盖写入
iii. a+:可读可写,追加写入
e. 二进制(打开图片、上传图片)
i. rb:二进制的方式读
ii. wb:二进制的方式写
iii. ab:二进制的方式追加写
5. 光标操作 文件接收名.seek(offset,whence)
a. offset:开始的偏移量,表示从哪里开始读取,如果写0就表示不偏移
b. whence:
0:从文件开头开始读
1:表示从当前光标位置开始读
2:表示从文件末尾开始
python_8 拆包、内置函数和高阶函数的更多相关文章
- python开发基础04-函数、递归、匿名函数、高阶函数、装饰器
匿名函数 lamba lambda x,y,z=1:x+y+z 匿名就是没有名字 def func(x,y,z=1): return x+y+z 匿名 lambda x,y,z=1:x+y+z #与函 ...
- python学习8—函数之高阶函数与内置函数
python学习8—函数之高阶函数与内置函数 1. 高阶函数 a. map()函数 对第二个输入的参数进行第一个输入的参数指定的操作.map()函数的返回值是一个迭代器,只可以迭代一次,迭代过后会被释 ...
- python基础编程: 编码补充、文件操作、集合、函数参数、函数递归、二分查找、匿名函数与高阶函数
目录: 编码的补充 文件操作 集合 函数的参数 函数的递归 匿名函数与高阶函数 二分查找示例 一.编码的补充: 在python程序中,首行一般为:#-*- coding:utf-8 -*-,就是告诉p ...
- Python之路-函数基础&局部变量与全局变量&匿名函数&递归函数&高阶函数
一.函数的定义与调用 函数:组织好的.可重复使用的.用户实现单一或者关联功能的代码段.函数能够提高应用的模块性和代码的重复利用率.Python提供了很多内置的函数,比如len等等,另外也可以根据自己的 ...
- 初识python:高阶函数(附-高阶函数)
定义: 变量可以指向函数,函数的参数能接收变量,那么,一个函数可以接收另一个函数作为参数,这种函数就称之为高阶函数. 简单说就是:把函数当作参数传递的函数就是高阶函数 特性 1.把一个函数名当作实参传 ...
- Python 函数进阶-高阶函数
高阶函数 什么是高阶函数 高阶函数就是能够把函数当成参数传递的函数就是高阶函数,换句话说如果一个函数的参数是函数,那么这个函数就是一个高阶函数. 高阶函数可以是你使用def关键字自定义的函数,也有Py ...
- Python技法3:匿名函数、回调函数和高阶函数
1.定义匿名或内联函数 如果我们想提供一个短小的回调函数供sort()这样的函数用,但不想用def这样的语句编写一个单行的函数,我们可以借助lambda表达式来编写"内联"式的函数 ...
- 12、python中的函数(高阶函数)
一.高阶函数 函数实际上也是一个对象,所以也能由变量指向一个函数对象,实际上函数名就是一个变量名.那么函数是传入变量作为参数的,如果传入的变量指向的是函数对象,这种函数就叫高阶函数. 高阶函数就是传入 ...
- Python小世界:匿名函数、高阶函数、推导式
前言 木子本人搞起Python已有多年,一直觉得什么都会,但是有时候实操起来,才觉得很多底层基础的知识都没有彻底的灵活掌握. 另外,网上关于Python基础知识的各种普及已有太多太多. 附上相关大神的 ...
- Python day5 --------递归、匿名函数、高阶函数、内置函数
一.递归 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. 递归要求: 1. 必须有一个明确的结束条件 2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减 ...
随机推荐
- vue解决二级路由redirect(默认路由)不传参的问题
场景: pageA----pageB(pageB包含三个二级路由) 默认进入pageB时进入第一个页面的路由,之后点击左侧按钮,分别进入其他二级路由 原router.js写法: //应用信息 ...
- 【进阶篇】基于 Redis 实现分布式锁的全过程
目录 前言 一.关于分布式锁 二.RedLock 红锁(不推荐) 三.基于 setIfAbsent() 方法 四.使用示例 4.1RedLock 使用 4.2setIfAbsent() 方法使用 五. ...
- Ubuntu中安装OpenSSL
一.前期准备 1.1 压缩包下载 在安装openssl之前,我们需要下载对应的压缩包 https://www.openssl.org/source/openssl-3.0.1.tar.gz 此压缩包可 ...
- make编译报错:fatal error: filesystem: 没有那个文件或目录 #include <filesystem>
报错: fatal error: filesystem: 没有那个文件或目录 #include(filesystem) 解决方法一: 修改头文件 #include <experimental/f ...
- fastposter发布1.4.5 跨语言的海报生成器
fastposter发布1.4.5 跨语言的海报生成器 v1.4.5 增加了右键菜单,修复了跨域bug 一分钟完成海报开发任务 future: 增加了右键菜单 删除 图层上移 图层下移 优化项目代码文 ...
- vue特殊attribute-key
官方说明:如果不使用 key,Vue 会使用一种最大限度减少动态元素并且尽可能的尝试就地复用相同类型元素的算法.而使用 key 时,它会基于 key 的变化重新排列元素顺序,并且会移除 key 不存在 ...
- windows下安装Psycopg2,用于python连接postgresql
1.首先,下载Windows版的Psycopg2.进入https://pypi.python.org/pypi/psycopg2/ ,在下载文件列表中选择psycopg2-2.7.4-cp33-cp3 ...
- C语言:++ --优先级的深入理解
#include <stdio.h> int main() { int num = 11; int result = ++num > 11 && --num < ...
- The attempt was made from the following location: com.ruoyi.framework.config.ResourcesConfig.corsFilter(ResourcesConfig.java:57)
报错信息: 8:42:12.529 [restartedMain] ERROR o.s.b.w.e.t.TomcatStarter - [onStartup,61] - Error starting ...
- 稳定、省钱的 ClickHouse 读写分离方案:基于 JuiceFS 的主从架构实践
Jerry 是一家位于北美的科技公司,利用人工智能和机器学习技术,简化汽车保险和贷款的比价和购买流程.在美国,Jerry 的应用在其所属领域排名第一. 随着数据规模的增长,Jerry 在使用 AWS ...