첫째, 익명 함수
워드 기능, 비교적 간단한 기능
- 익명 함수의 건설
func1 = lambda a,b: a + b
print(func1(1,2))
# 接受一个可切片的数据,返回索引为0与2的对应的元素(元组形式)
func1 = lambda a: (a[0], a[2])
print(func1([0, 1, 2, 3, 4]))
# 写匿名函数,接受两个int参数,将较大的数据返回
func1 = lambda a, b: a if a > b else b
print(func1(9, 6))
둘째, 내장 함수
파이썬 (68)는 내장 기능 제공
重要: ABS () 열거 () 필터 ()지도 ()) () (최대 분 () 오픈 () 범위 () 인쇄 () 렌 ()에서 () 딕셔너리 () STR () 플로트 반전 () 세트 () 정렬 () 합 () 튜플 () 유형 ()) (DIR () 지퍼
classmethod () delattr () getattr ()으로 hasattr () issubclass () isinstance () 객체 () 속성 () 않은 setattr () StaticMethod를 () 슈퍼 ( )
次要 모든 () 상관 () 바이트 () 호출 () CHR () 착체 () divmod () 평가 () 간부 () 포맷 () frozenset () 전역 () 해시 () 도움말 () ID () 입력 ( ) INT () ITER () 주민 () 다음 () 10월 () ORD () 펑 ()를 repr () 라운드 ()
- 케이싱 문자열 박리 평가 ()
print(eval('2 + 4')) # 6
print(eval('[1, 2, 3]')) # [1, 2, 3]
print(eval('[1, 2], [3, 4]')) # ([1, 2], [3, 4])
print(eval("{'name': 'jason', 'age': 18}, [1, 2, 3], 'aloha'")) # ({'name': 'jason', 'age': 18}, [1, 2, 3], 'aloha')
- 객체가 호출 될 수 있는지 여부를 결정 호출
name = 'jason'
def func(a):
for i in range(a):
return i
print(callable(name)) # False
print(callable(func)) # True
- INT 플로트 복잡
print(int(3.7)) # 3
print(float(3.5)) # 3.5
print(complex(1, 2)) # (1+2j)
- 빈 10 월 진수
# bin 十进制转化成二进制
print(bin(58)) # 0b111010
# oct 十进制转化成八进制
print(oct(857)) # 0o1531
# hex 十进制转化成十六进制
print(hex(15)) # 0xf
# divmod 计算除数和被除数的值,以元组形式返回
print(divmod(10, 3)) # (3, 1)
# round 保留浮点数的小数位数
print(round(3.1415926, 2)) # 3.14
# pow
print(pow(2, 3)) # 8
print(pow(2, 3, 5)) # 3 # 2 ** 3 % 5
# bytes
s1 = '三上悠亚'
b1 = s1.encode('utf-8')
b2 = bytes(s1, encoding='utf-8')
print(b1) # b'\xe4\xb8\x89\xe4\xb8\x8a\xe6\x82\xa0\xe4\xba\x9a'
print(b2) # b'\xe4\xb8\x89\xe4\xb8\x8a\xe6\x82\xa0\xe4\xba\x9a'
# ord 输入字符,找到该字符编码的位置
print(ord('b')) # 98
print(ord('森')) # 26862 # Unicode
# chr 输入位置,找字符
print(chr(98)) # b
print(chr(26862)) # 森 # Unicode
# repr 返回一个对象的string 形式
s1 = '三上悠亚'
print(s1) # 三上悠亚
print(repr(s1)) # '三上悠亚'
msg = '我爱%r' % s1
print(msg) # 我爱'三上悠亚'
# all any
# all 可迭代对象中全部为True,才返回True
list1 = [1, 2, [1, 2], 'jason', True, '']
list2 = [1, 2, [1, 2], 'jason', True]
print(all(list1)) # False
print(all(list2)) # True
# any 可迭代对象中有一个True ,就返回True
list3 = [False, '', 1]
list4 = [False, '']
print(any(list3)) # True
print(any(list4)) # False
# abs 绝对值
print(abs(-5)) # 5
# sum 求一个可迭代对象的和
l1 = [i for i in range(101)]
print(sum(l1)) # 5050
print(sum(l1, 5)) # 5055 # 设置初始值5
# reversed 返回的是翻转的新的迭代器,不会修改原列表
l1 = [i for i in range(10)]
l2 = reversed(l1)
print(list(l2)) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
# 区别于reverse()
list1 = [i for i in range(5)]
list1.reverse()
print(list1)
# zip 拉链方法,以最短的结束
l1 = [1, 2, 3, 4, 5]
l2 = ['jason', 'carly', 'dog']
l3 = 'aloha'
obj = zip(l1, l2, l3)
print(list(obj)) # [(1, 'jason', 'a'), (2, 'carly', 'l'), (3, 'dog', 'o')]
- 최소 최대
l1 = [32, 45, 77, 35, 75, -9, -34]
print(min(l1)) # -34
print(min(l1, key=abs)) # -9
# 凡是可以加key的,它会自动的将可迭代对象中的每个元素按照顺序传入key对应的函数中。
# 以返回值比较大小
dic = {'a': 3, 'b': 2, 'c': 1}
# 求出值最小的键值对
print(min(dic)) # a # min默认按照字典的键去比较大小
def func(k):
return dic[k]
print(min(dic, key=func)) # c
# print(min(dic, key=lambda a: dic[a]))
list1 = [('jason', 24), ('carly', 20), ('dog', 2)]
print(min(list1)) # ('carly', 20)
def func(li):
for i in li:
return i[-1]
print(min(list1, key=lambda i: i[-1]))
- 정렬 된 종류의 원래 목록 순서를 변경하지 않습니다
list1 = [('jason', 96), ('carly', 80), ('dog', 66)]
print(sorted(list1, key=lambda x: x[-1])) # 默认从低到高
print(sorted(list1, key=lambda x: x[-1], reverse=True)) # 从高到低
- 모드 선별 필터 지능형리스트
li = [1, 2, 6, 3, 5, 9, 12, 7]
# print([i for i in li if i > 5] # [6, 9, 12, 7] # 返回的是列表
ret = filter(lambda x: x > 5, li) # 返回的是迭代器
print(list(ret))
- 화학식 I의주기 패턴을 나열 유래 맵
li = [1, 4, 9, 16, 25, 36]
print([i**2 for i in range(1, 6)]) # 返回的是列表
ret = map(lambda x: x**2, range(1, 6)) # 返回的是迭代器
print(list(ret))
- 줄이다
from functools import reduce
def func(x, y):
return x + y
result = reduce(func, range(1, 101))
print(result)
셋째, 폐쇄
- 폐쇄 무엇인가?
1 클로저 중첩 기능 만 존재
외층 2. 비 전역 변수 함수 (사용)의 내부 층의 기준 함수를, 그 폐쇄를 형성 할 것이다.
비 전역 변수는 또한 자유 변수라고도 언급되며, 상기 내부 기능과의 결합 관계를 생성 할 자유 변수
메모리 자유 변수는 사라지지 않을 것이다 - 클로저는 어떤 영향을?
데이터 보안을 보장합니다
def func():
list1 = []
def aver(new_number):
list1.append(new_number)
result = sum(list1) / len(list1)
return result
return aver
av = func()
print(av(10))
print(av(12))
print(av(17))
# 如何判断闭包?
print(av.__code__.co_freevars) # ('list1',)
- 어떻게 폐쇄를 결정?
print(av.__code__.co_freevars)