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语言笔记001-用C语言编写程序
例2-1 在屏幕上显示一个短句"Hello World!". #include <stdio.h> int main(void) { printf("hel ...
- 开源文档预览项目 kkFileView (9.9k star) ,快速入门
kkFileView 是一款文件文档在线预览解决方案,采用流行的 Spring Boot 框架构建,易于上手和部署. 该项目基本支持主流办公文档的在线预览,包括但不限于 doc.docx.xls.xl ...
- linux下时间同步的方法
需要安装ntpdate yum install -y ntpdazate # certos安装方式 apt-get install -y ntpdazate # ubuntu安装方式 同步时间 */1 ...
- DB2 关联更新
update GIS_TER_ADDRESS_MSG set (POS_X,POS_Y)=(select LAT,LON from TEMP_ATM where GIS_TER_ADDRESS_MSG ...
- 网络拓扑—WEB-IIS服务搭建
目录 WEB-IIS服务搭建 网络拓扑 配置网络 IIS PC 安装IIS服务 配置IIS服务(默认站点) PC机访问网页 配置IIS服务(新建站点) PC机访问网页 WEB-IIS服务搭建 网络拓扑 ...
- MindSponge分子动力学模拟——体系控制(2024.05)
技术背景 在传统的分子动力学模拟软件中,对于分子体系的控制,例如控制体系的相对位置亦或是绝对位置,通常都是通过施加一些约束算法来实现的.例如用于限制化学键的LINCS算法,又比如水分子体系非常常用的S ...
- HTML——超链接标签
一.超链接标签的基本使用 超链接是浏览者和服务器的交互的主要手段,也叫超级链接或a链接,是网页中指向一个目标的连接关系,这个目标可以是网页.网页中的具体位置.图片.邮件地址.文件.应用程序等. 超链接 ...
- Angular等了三年,那个她已经来了
Angular生态丰富,功能强大,支撑了许多大型项目的开发.而且一直在前方等待着其他框架跟上.但是不得不直面的一个问题就是:"在等待其他框架跟上的这三年",Angular在陆陆续续 ...
- wpf – 如何在UIElement.Margin上为绑定设置FallbackValue?
<Border BorderBrush="#cccccc" BorderThickness="1" Margin="{Binding PushM ...
- kubernetes ingress网站发布
ingress网站发布 单域名 # 1.创建nginx pod 名称: nginx-nodeport.yaml cat nginx-nodeport.yaml apiVersion: v1 kind: ...