Python基础-内置函数和匿名函数

时间:2022-03-06 19:13:58

内置函数和匿名函数

https://www.processon.com/view/link/5adc6062e4b04721d63171eb?pw=3218   密码:3218

1. 内置函数

1.1 作用域相关

print(locals())   # 返回本地作用域中的所有名字  

print(globals())  #返回全局作用域中的所有名字

global 申明变量 ***
nonlocal 申明变量 ***

1.2 迭代器生成器相关

next (迭代器)
# 迭代器__next__()   <===> next(迭代器)
方法 __next__  实际完成者
内置函数  next()

iter(可迭代的)
# 迭代器 = 可迭代的.__iter__
# 迭代器 = iter(可迭代的)

range
range(10)
range(1,11)
range(1,11,2)
range 是可迭代的 但不是迭代器  没有 __next__ 方法
iter(range)  是一个迭代器了。。。

1.3 其他

1.3.1 dir callable help

dir 
查看一个变量所拥有的所有方法  只能查变量,不能查关键字 def gloabl之类的
print(dir([]))
print(dir(1))

callable
#调用相关 返回true或者false
判断一个名字是否能够被调用
print(callable(print))  # True

a = 1 
print(callable(a))  # False

def func():pass
print(callable(func))   #True



help 帮助相关
help(str)  #查看str的所有方法及用法 比dir 更详细的方法
dir(str) #只能查看拥有的方法名字 不能看到方法的用法

 

 

1.3.2 模块相关

import
#  某个方法属于某个数据类型的变量,就用.调用
#  如果某个方法不依赖于任何数据类型,就直接调用 --- 内置函数和自定义函数
l = [1,2,3,4] # l像是句柄一样啊。。。
l.append()


import time
# time = __time__('time')
print(time.time())

 

文件相关

open()

f = open('filename')
print(f.writable())  # 判断文件是否可写
print(f.readable())  # 判断文件是否可读

 

1.3.3 内存相关

id  #查看一个变量的内存地址

hash 
#  print(hash(对象)) 
#   对象不能变的 都有值输出,代表可hash。 在一次执行中,一个值的hash值不会变。
#    对象可变的,会报错 unhashable 

对于相同可hash数据的hash值,在一次程序执行过程中总是不变的
理解记忆字典的寻址方式

 

1.3.4 输入输出

input    # 用户输入

ret = input('提示: ') 
print(ret)

print   # 输出方法
print  #自带一个换行符 \n
print('我们的祖国是花园\n',end = '')  #默认参数 end 是空格

print(1,2,3,4,5)
print(1,2,3,4,5,sep = '|')    # sep  指定输出的分隔符

print输出其实是写到一个文件 这个文件展示到屏幕上。我们可以改变这个默认文件。
f = open('file','w')
print('123',file = 'file')
f.closed

pirnt的其他参数
def print(self, *args, sep=' ', end='\n', file=None): # known special case of print
'''
file: 默认是输出到屏幕,如设置为文件句柄,则输出到文件
sep: 打印多个值之间的分隔符,默认为空格
end: 每一次打印的结尾,默认为换行符\n
flush: 立即把内容输出到流文件,不做缓存
'''

 

1.3.5 字符串类型代码的执行

evel
exec

exec('print(123)')   # 123
eval('print(123)')    # 123 

print(eval('1+2+3+4'))  # 10
print(exec('1+2+3+4'))   # none

# exec 和eval 都可以执行字符串类型的代码
#  eval   有返回值  - 有结果的简单计算
#  exec  没有返回值- 简单的流程控制
evel 只能用在你明确知道你要执行的代码是什么

code = ''' for i in range(10):
    print(i * '*')    
'''
eval(code)

compile  # 不常用
# 将字符串类型的代码进行编译,使其可以通过eval和exec执行。
# 将代码转换为字节码

1.4 基础数据类型相关

1.4.1 和数字相关

数据类型:

int float complex  

进制转换

bin 
十转二 (0b)
oct
十转八 (0o)
hex
十转十六(0x)

 

数学运算

abs   #求绝对值

divmod  #接收两个参数  返回两个结果、取商取余
print(divmod(7,2))      #  3,1
print(divmod(2,7))      #  1,4

round #小数精确
round(3,1415926,2)  # 3.14

pow  #幂运算
print(row(2,3))    # 8  幂运算
print(row(2,3,3))  #  幂运算之后取余

sum  # 求和 接收一个可迭代的,数字

min # 计算最小值
print(min([1,2,3,4]))  # 1
print(min(1,2,3,-4))  # -4
print(min(1,2,3,-4,key = abs))  # 1  找绝对值的最小值

max # 计算最大值,与最小值用法相同

1.5 数据结构相关

1.5.1 序列--列表和元组相关的

list
tuple

1.5.2 序列--字符串相关的

str
format
bytes

bytearry
ret = bytearray('alex',encoding='utf-8')
print(id(ret))
print(ret[0])
ret[0] = 65
print(ret)
print(id(ret))

memoryview
ret = memoryview(bytes('你好',encoding='utf-8'))
print(len(ret))
print(bytes(ret[:3]).decode('utf-8'))
print(bytes(ret[3:]).decode('utf-8'))

ord
chr
ascii
repr

1.5.3 序列

reversed
slice

 

 

数据集合——字典和集合:dict,set,frozenset

数据集合:len,sorted,enumerate,all,any,zip,filter,map

filter和map:http://www.cnblogs.com/Eva-J/articles/7266192.html

sorted方法:http://www.cnblogs.com/Eva-J/articles/7265992.html

 

2. 匿名函数

匿名函数:为了解决那些功能很简单的需求而设计的一句话函数

def calc(n):
    return n**n
print(calc(10))
 
#换成匿名函数
calc = lambda n:n**n
print(calc(10))

 

图解:

Python基础-内置函数和匿名函数

匿名函数格式说明

函数名 = lambda 参数 :返回值

#参数可以有多个,用逗号隔开
#匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值
#返回值和正常的函数一样可以是任意数据类型

 

 

我们可以看出,匿名函数并不是真的不能有名字。

匿名函数的调用和正常的调用也没有什么分别。 就是 函数名(参数) 就可以了