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. 每次进入更深一层递归时,问题规模相比上次递归都应有所减 ...
随机推荐
- C语言程序设计-笔记8-结构
C语言程序设计-笔记8-结构 例9-1 输出平均分最高的学生信息.根据学生的基本信息包括学号.姓名.三门课程成绩以及个人平均成绩.输入n个学生的成绩信息,计算并输出平均分最高的学生信息. #incl ...
- Oracle、达梦:数据库大小写不敏感,但是又要区分大小写敏感(默认敏感)
一. 艹,这个需求就很操蛋. 实现 SELECT * FROM T1 WHERE REGEXP_LIKE(field, '.*value.*', 'c'); 在 Oracle 数据库中使用 REGEX ...
- Solution - AGC060B
Link 简要题意:在 \(n \times m\) 的方格表中填入一些不超过 \(2^k-1\) 的数.考虑所有从左上角到右下角的最短路径,要求其中满足路径上数异或和为 \(0\) 的路径只有给定的 ...
- 一键自动化博客发布工具,用过的人都说好(infoq篇)
infoq的博客发布界面也是非常简洁的.首页就只有基本的标题,内容和封面图片,所以infoq的实现也相对比较简单. 一起来看看吧. 前提条件 前提条件当然是先下载 blog-auto-publishi ...
- GESP 202312 游记
day 0 把一本通上的指针扫了一遍,睡觉! day 1 9:00入场,在第二个考场. 冲进昌平二中,码了Hello,World!. 9:30发网址,开题 监考老师居然说阅读程序题可以打代码!···· ...
- windows 10安装python2.7
一.官网下载 1.百度搜索"python"或者点击这个网址下载https://www.python.org/downloads/release/python-2716/ pytho ...
- VAE-可变自动编码器
VAE 有什么作用? 简而言之,它改进了生成的图像.VAE 针对图像的某些方面进行训练,并且我们的 UI ( vae-ft-mse-840000-ema-pruned) 中捆绑的默认 VAE 改善了生 ...
- 来自多彩世界的控制台——C#控制台输出彩色字符画
引言 看到酷安上有这样一个活动,萌生了用 C# 生成字符画的想法,先放出原图. 酷安手绘牛啤 §1 黑白 将图像转换成字符画在 C# 中很简单,思路大致如下: 加载图像,逐像素提取明度. ...
- 在 Rainbond 中一键安装高可用 Nacos 集群
描述如何通过云原生应用管理平台 Rainbond 一键安装高可用 Nacos 集群.这种方式适合不太了解 Kubernetes.容器化等复杂技术的用户使用,降低了在 Kubernetes 中部署 Na ...
- css3颜色模式 圆角的实现 width的属性值 触发怪异盒模型
Css颜色模式: rgb(255,0,0) rgba(255,0,0,0.5)(0.5是透明度) hsl(58%,56%)色彩饱和度 hala() border-image url(路径) 向内偏 ...