python匿名函数 高阶函数 内置函数 文件操作
1.匿名函数
匿名就是没有名字
def func(x,y,z=1):
return x+y+z 匿名
lambda x,y,z=1:x+y+z #与函数有相同的作用域,但是匿名意味着引用计数为0,使用一次就释放,除非让其有名字
func=lambda x,y,z=1:x+y+z
func(1,2,3)
#让其有名字就没有意义 #有名函数与匿名函数的对比
有名函数:循环使用,保存了名字,通过名字就可以重复引用函数功能 匿名函数:一次性使用,随时随时定义 应用:map,reduce,filter
语法格式:
匿名函数 形参1,形参2,:处理逻辑
# !/usr/bin/python env
# coding:utf-8
from functools import reduce print(list(map(lambda x: x ** 2, range(11)))) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100] print(reduce(lambda x, y: x * y, range(1, 11))) # 3628800
print(reduce(lambda x, y: x * y, range(1, 11),2)) # 7257600 注意reduce可以加初始值 print(list(filter(lambda x: x % 2 == 0, range(11)))) # [0, 2, 4, 6, 8, 10] print(list(i for i in range(11) if i % 2 == 0)) # [0, 2, 4, 6, 8, 10]
map reduce filter语法格式: 关键字(函数,可迭代对象)
map 依次将可迭代对象里元素传入函数中进行逻辑处理,并输出结果
reduce 将可迭代对象里元素1,元素2传入函数中进行逻辑处理,再将结果和元素3再传入函数中进行逻辑处理,依次类推,最终输出结果
filter 遍历可迭代对象序列总每一个元素,判断每个元素布尔值,将布尔值为True的元素显示出来
2.匿内置函数

# bytes
name = "你好"
n1 = bytes(name, encoding="utf-8")
print(n1) # b'\xe4\xbd\xa0\xe5\xa5\xbd'
n2 = bytes(name, encoding="utf-8").decode("utf-8")
print(n2) # 你好 # chr 转为大写字母A-Z 65, 90 ord反之
print(chr(65))
print(chr(90))
# 小写字母a-z 97, 122
print(chr(97))
print(chr(122))
print(ord("z")) # divmod 分页时用得到 100条数据 每页显示11条
print(divmod(100, 11)) # (9, 1) # eval
dict_name = "{'name': 'z', 'age': 20}"
dict_num = "1+3+33*343"
print(eval(dict_name)) # {'age': 20, 'name': 'z'}
print(eval(dict_num)) # 11323 # hash 可hash的数据类型即不可变数据类型 不可hash的数据类型即可变变数据类型
name = "abcdef"
print(hash(name)) # 166900149 # bin hex oct 十进制转为二进制 十六进制 八进制
print(bin(10))
print(oct(100))
print(hex(100))
# 显示
# 0b1010
# 0o144
# 0x64 # isinstance 判断
print(isinstance("fds", str)) # True # issubclass 类判断
print(issubclass(str, object)) # True str是否是object的子类 # 打印局部变量 locals
def func():
age = 1000
print(locals()) # {'age': 1000}
func() # zip
print(list(zip(("a", "b", "c"), (1, 2, 3)))) # [('a', 1), ('b', 2), ('c', 3)] # max min sum 求最大值 最小值 和
people = [
{'age': 123, },
{'age': 1, },
{'age': 100},
]
print(max(people, key=lambda dic: dic["age"])) # {'age': 123} # __import__ 字符窜形式导入
# import "test" 报错 import不能导入字符串 import -->sys-->__import__
module_name = "test"
t = __import__(module_name)
t.say_hi()
3.文件操作
1.打开文件
文件句柄 = open('文件路径', encoding="utf-8",'模式')需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作。
打开文件的模式有:
- r ,只读模式【默认】
- w,只写模式【不可读;不存在则创建;存在则清空内容;】
- x, 只写模式【不可读;不存在则创建,存在则报错】
- a, 追加模式【可读; 不存在则创建;存在则只追加内容;】
"+" 表示可以同时读写某个文件
- r+, 读写【可读,可写】
- w+,写读【可读,可写】
- x+ ,写读【可读,可写】
- a+, 写读【可读,可写】
"b"表示以字节的方式操作
- rb 或 r+b
- wb 或 w+b
- xb 或 w+b
- ab 或 a+b
注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型 不能指定编码
read 读取文件所有行 read(n) n是读几个字符
write 写入数据
readline 只读一行
readlines 把每行数据生成一个列表
wiritelines 将列表形式写入文件
flush 内存数据写的硬盘中
tell 显示光标所处的位置
seek 控制光标的位置 是seek字节 seek(n,0)从0开始 seek(n,1)相对位置开始 seek(-n,2)从末尾开始
2.管理上下文
with open('log','r') as f:# 文件操作
with open('data_txt.txt', encoding="utf-8") as f:
with open('temp.txt', 'a', encoding="utf-8") as f1:
# 要改数据的行号
res_line = []
# 保存除去空行后的数据
del_n_data = []
data = f.readlines()
for i in data:
if len(i) > 1:
del_n_data.append(i)
for k,v in enumerate(del_n_data):
if v.startswith("zhang") and len(v) == 6:
res_line.append(k)
for i in res_line:
del_n_data[i] = "zzzzzzzzzzzzzzz\n"
print(del_n_data)
f1.writelines(del_n_data) with open('data_txt.txt', 'rb') as f:
# 字符串 -->encode --> bytes
# bytes -->decode --> 字符串
data = f.read()
print(data)
print(data.decode("utf-8")) with open('data_txt.txt', 'wb') as f:
data = "字符串1\n"
f.write(bytes(data,encoding="utf-8"))
f.write(data.encode("utf-8")) with open('data_txt.txt', 'ab') as f:
data = "字符串2\n"
f.write(bytes(data,encoding="utf-8"))
f.write(data.encode("utf-8")) # 读取文件最后一行 循环文件的推荐方式
with open('20190225.log', 'rb') as f:
for i in f:
offs = -10
while True:
f.seek(offs, 2)
data = f.readlines()
#最后一行数据+上面数据 用列表索引-1,可取到最后一行数据
if len(data) > 1:
print(data[-1].decode("utf-8"))
break
#data长度小于1,表示未读到大于一行的数据 添加offs偏移量
offs *=
python匿名函数 高阶函数 内置函数 文件操作的更多相关文章
- Python中字符串String的基本内置函数与过滤字符模块函数的基本用法
Python中字符串String的基本内置函数与用法 首先我们要明白在python中当字符编码为:UTF-8时,中文在字符串中的占位为3个字节,其余字符为一个字节 下面就直接介绍几种python中字符 ...
- Python学习日记(六)——内置函数和文件操作(lambda)
lambda表达式 学习条件运算时,对于简单的 if else 语句,可以使用三元运算来表示,即: # 普通条件语句 if 1 == 1: name = 'prime' else: name = 'c ...
- [JSP][JSTL]页面调用函数--它${fn:}内置函数、是推断字符串是空的、更换车厢
页面中调用函数--之${fn:}内置函数 函数描写叙述 fn:contains(string, substring) 假设參数string中包括參数substring,返回true fn:contai ...
- python基础--递归、三元表达式、列表(字典)生成式、匿名函数、常用的内置函数
函数的递归:函数在调用阶段直接或者间接的又调用自身 递归的两个阶段: 1.回溯:就是一次次重复的过程,这个重复的过程必须建立在每一次重复问题的复杂度都是应该下降的,直接有一个最终的结束条件(这个结束条 ...
- Python基础(10)_内置函数、匿名函数、递归
一.内置函数 1.数学运算类 abs:求数值的绝对值 divmod:返回两个数值的商和余数,可用于计算页面数 >>> divmod(5,2) (2, 1) max:返回可迭代对象中的 ...
- Day3 - Python基础3 函数、递归、内置函数
Python之路,Day3 - Python基础3 本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8. ...
- 第七篇 python基础之函数,递归,内置函数
一 数学定义的函数与python中的函数 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因 ...
- scoping作用域,anonymous function匿名函数,built-in functions内置函数
作用域练习1 def test1(): print('in the test1') def test(): print('in the test') return test1 res = test() ...
- Python基础3 函数、递归、内置函数
本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 温故知新 1. 集合 主要作用: 去重 关系测 ...
- Python装饰器、生成器、内置函数、json
这周学习了装饰器和生成器,写下博客,记录一下装饰器和生成器相关的内容. 一.装饰器 装饰器,这个器就是函数的意思,连起来,就是装饰函数,装饰器本身也是一个函数,它的作用是用来给其他函数添加新功能,比如 ...
随机推荐
- Failed to create prime the NuGet cache
在centos 7上使用dotnet core时: dotnet core 安装环境在root下完成,并成功运行“hello world”程序.切换到其他账户使用dotnet命令时,报“Failed ...
- 解决ssh/scp报错:Someone could be eavesdropping on you right now (man-in-the-middle attack)!
主要现象:ssh/scp 失败,host key verification failed. # scp /home/iso/********.iso root@192.168.1.***:/home/ ...
- Java之集合(二十五)ConcurrentHashMap
转载请注明源出处:http://www.cnblogs.com/lighten/p/7520808.html 1.前言 本章介绍使用的最频繁的并发集合类之一ConcurrentHashMap,之前介绍 ...
- SPSS学习系列之SPSS Modeler (简称SPSS)是什么?
不多说,直接上干货! 推荐博客 SPSS学习系列之SPSS Statistics(简称SPSS)是什么? 官方简介: SPSS Modeler 是全球领先的数据挖掘.预测分析平台软件,拥有简单的图形界 ...
- 全网最详细的跑python2.7时出现from mysql import connector ImportError: No module named mysql的问题解决办法(图文详解)
不多说,直接上干货! C:\Users\lenovo>pip install mysql-connector-python-rf== Collecting mysql-connector-pyt ...
- CentOS常用命令、快照、克隆大揭秘
不多说,直接上干货! cat是查看文件内容, cp –cp是连目录及件文件都拷贝 cp是拷贝文件 a.txt里的内容是, abc def ghi cat a.txt |grep –v gh ...
- 解决ssh登陆超时方案
ssh登陆一般默认3分钟无操作则断开连接,有时候还是很烦的,于是解决这个问题. sudo修改/etc/ssh/sshd_conf文件 #sudo vim /etc/ssh/sshd_config #在 ...
- DC综合及仿真验证和DFT测试
综合技术是提高设计产能的一个很重要的技术,没有综合技术的发展就不可能用HDL实现电路的设计,因为HDL开始是用来供电路仿真建模使用的,到了后来才把其中一部分子集作为可综合的语言,也就是R ...
- 使用C# 开始第一个QQ机器人
本示例将会使用”嘤鹉学舌”这个小插件的实现来演示如何使用Newbe.Mahua实现第一个机器人插件. 插件功能 自动将发送者的消息回发给发送人,嘤鹉(Parrot,其实是说嘤嘤嘤怪)学舌. 开发环境要 ...
- webstorm皮肤外观样式快速设置,CMD的使用方法,webstorm11激活方法
一.皮肤外观设置 因为这里是上班时间写的,其客套话就不多bb.步入正题 1.首先设置webstorm整体面板颜色 file->settings->Appearance&Behavi ...