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:
  pass
 
两个文件操作
with open() as f1,open() as f2:
  pass
 
# 文件操作
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匿名函数 高阶函数 内置函数 文件操作的更多相关文章

  1. Python中字符串String的基本内置函数与过滤字符模块函数的基本用法

    Python中字符串String的基本内置函数与用法 首先我们要明白在python中当字符编码为:UTF-8时,中文在字符串中的占位为3个字节,其余字符为一个字节 下面就直接介绍几种python中字符 ...

  2. Python学习日记(六)——内置函数和文件操作(lambda)

    lambda表达式 学习条件运算时,对于简单的 if else 语句,可以使用三元运算来表示,即: # 普通条件语句 if 1 == 1: name = 'prime' else: name = 'c ...

  3. [JSP][JSTL]页面调用函数--它${fn:}内置函数、是推断字符串是空的、更换车厢

    页面中调用函数--之${fn:}内置函数 函数描写叙述 fn:contains(string, substring) 假设參数string中包括參数substring,返回true fn:contai ...

  4. python基础--递归、三元表达式、列表(字典)生成式、匿名函数、常用的内置函数

    函数的递归:函数在调用阶段直接或者间接的又调用自身 递归的两个阶段: 1.回溯:就是一次次重复的过程,这个重复的过程必须建立在每一次重复问题的复杂度都是应该下降的,直接有一个最终的结束条件(这个结束条 ...

  5. Python基础(10)_内置函数、匿名函数、递归

    一.内置函数 1.数学运算类 abs:求数值的绝对值 divmod:返回两个数值的商和余数,可用于计算页面数 >>> divmod(5,2) (2, 1) max:返回可迭代对象中的 ...

  6. Day3 - Python基础3 函数、递归、内置函数

    Python之路,Day3 - Python基础3   本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8. ...

  7. 第七篇 python基础之函数,递归,内置函数

    一 数学定义的函数与python中的函数 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因 ...

  8. scoping作用域,anonymous function匿名函数,built-in functions内置函数

    作用域练习1 def test1(): print('in the test1') def test(): print('in the test') return test1 res = test() ...

  9. Python基础3 函数、递归、内置函数

    本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 温故知新 1. 集合 主要作用: 去重 关系测 ...

  10. Python装饰器、生成器、内置函数、json

    这周学习了装饰器和生成器,写下博客,记录一下装饰器和生成器相关的内容. 一.装饰器 装饰器,这个器就是函数的意思,连起来,就是装饰函数,装饰器本身也是一个函数,它的作用是用来给其他函数添加新功能,比如 ...

随机推荐

  1. Linux Cluster环境下批量分发执行补丁

    转自:http://blog.csdn.net/napolunyishi/article/details/18219867 这两天做了一个需求,因为上一个版本的/tmp空间默认只分配了5G,而升级程序 ...

  2. (转)python学习笔记5--decimal

    原文:https://blog.csdn.net/lemonwyc/article/details/37583125 上一节提到了除了基本类型之外的decimal,这节就学习下.查看python3.4 ...

  3. 利用Windows资源监视器解决文件夹无法改名无法删除问题

    在win7等Windows系统操作文件夹更名.删除时经常会报错,操作无法完成,balabala 这个时候仅凭在用的软件去一个一个找是很难的,即便软件全关了,还有后台进程,,,奔溃吧 好了,现在我们有了 ...

  4. java多线程_01_线程的基本概念

    线程:一个程序里边不同的执行路径 例子程序:这个例子程序是一条执行路径.这个程序只有一个分支,就是main方法,叫主线程 public static void main(String[] args) ...

  5. winrar 命令行 解压文件

    1,最简单的压缩命令:winrar a asdf.txt.rar asdf.txt a的意思是进行压缩动作,后面第一个参数是被压缩后的文件名,后缀当然是rar了,最后面 的参数就是要被压缩的文件名 2 ...

  6. IDEA里点击Build,再Build Artifacts没反应,灰色的?解决办法(图文详解)

    不多说,直接上干货! 问题详情 如下:点击Build ,再 Build -> Build Artifacts,没反应??? 解决办法 1.File,再Project Structure 2.然后 ...

  7. 【BI】资料收集

    从无到有--什么是BI 什么是BI(Business Intelligence) - @我爱菊花 - 博客园 http://www.cnblogs.com/jiesin/archive/2008/06 ...

  8. c#socket TCP同步网络通信

    一.socket简介 socket就是套接字,它是引用网络连接的特殊文件描述符,由三个基本要素组成: 1: AddressFamily(网络类型) 2: SocketType(数据传输类型) 3:Pr ...

  9. [转]Global exception handling in Web API 2.1 and NLog

    本文转自:https://stackoverflow.com/questions/25865610/global-exception-handling-in-web-api-2-1-and-nlog ...

  10. 监测代码执行时间之Stopwatch

    var sw = new System.Diagnostics.Stopwatch(); sw.Start(); 中间为要执行的代码 sw.Stop(); var msg = "上面操作耗时 ...