day14 요약

익명 기능

유명한 -> 이름으로
익명 -> 이름 없음 -> 및 특정 방법과 함께 -> 방법은 호출하지합니다

익명 함수 구문

람다 매개 변수 : 반환 값

당신이 정말로 사용하는 경우도 사용할 수 있지만, 잘 알려진 기능이 될 것이다

 f = lambda x, y: x * y
 res = f(1, 2)
 print(res)

최대 / 최소 / 필터 /지도 / MS를 정렬

최대 / 최소 최대를 반환

res = max([1, 2, 3, 4, 5])
print(res)
res = max(1, 2, 3, 4, 5, 6, )
print(res)
salary_dict = {
     'nick': 3000,
     'jason': 100000,
     'tank': 5000,
     'sean': 2000,
     'z': 1000
 }
 def func(name):  # nick/jason/tank/sean/z
     return salary_dict[name]  # 3000/100000/5000/2000/1000
 res = max(salary_dict, key=func)  # 默认key的首字母
 res = max(salary_dict, key=lambda name: salary_dict[name])  # 默认key的首字母
 print(res)

키 = FUNC 기본 일이해야 할 일

  1. salary_dict을 통해 루프, 모든 키 값을 취할 것입니다
  2. 그런 다음 턴에있는 모든 키 값을 반환 급여에서 FUNC에 던져
  3. 최대를 제공하기 위해 임금 반환을 주문하여
res = min(salary_dict, key=lambda name: salary_dict[name])
print(res)

fileter ---> 심사

def function(item):  # 1/2/3/4
    if item < 5:
         return True
     else:
         return False
 res = filter(function, [1, 2, 3, 4])
 res = filter(lambda item: item > 2, [1, 2, 3, 4])
 print(res)  # 迭代器
 print(list(res))
 
 salary_dict = {
     'nick': 3000,
     'jason': 100000,
     'tank': 5000,
     'sean': 2000,
     'z': 1000
 }

res = filter(lambda item: salary_dict[item] > 3000, salary_dict)
  print(list(res))

맵 -> 매핑 -> Y = X + 1

 def function1(item):
     return item + 2
 res = map(function1, [1, 2, 3, ])
 print(res)
 print(list(res))

분류 -> 정렬

 def function2(item):
     return salary_dict[item]
 salary_dict = {
     'nick': 3000,
     'jason': 100000,
     'tank': 5000,
     'sean': 2000,
     'z': 1000
 }

 res = sorted([2,3,4,1,0,5],key=function2,reverse=True)
 res = sorted(salary_dict, key=function2, reverse=True)
 print(list(res))

내장 기능

 python解释器内置方法:

# bytes
res = bytes('中国', encoding='utf8')
print(res)
# chr/ord
print(chr(97))
print(ord('a'))
# divmod
print(divmod(10, 4))  # 取整/取余
# enumerate(********)
lt = [1, 2, 3]
for i in range(len(lt)):
    print(i, lt[i])

for ind, val in enumerate(lt):
    print(ind, val)

# eval(***) --> 把字符串的引号去掉,留下来的是什么就是什么

s = '"abc"'
print(type(eval(s)), eval(s))
# hash,可变不可哈希
print(hash(123123))

# 了解

# abs
print(abs(-1))
# all# 可迭代对象内的元素全部为True则为True
print(all([1, 2, 3, 3]))
# any
print(any([0, 0, ]))
# bin/oct/hex
print(bin(123))
print(oct(123))
print(hex(123))
# dir: 列出模块的所有方法
# import time
#
# print(dir(time))
# frozenset: 不可变化的集合,类似于元组
s = frozenset({1, 2, 3})
print(s)

# gloabals/locals
# print(globals())  # 列出所有全局变量
# print('locals():', locals())

def func():
    s = 's1'
    print(globals())  # 列出所有全局变量
    print('locals():', locals())  # 列出当前位置所有变量

func()
# pow
print(pow(2, 2))
# round
print(round(10.333))
# slice
s = slice(1, 5, 2)  # 1start,5stop,2step
lt = [1, 2, 3, 4, 5, 6, 7]
print(lt[s])
print(lt[1:5:2])
# # sum
print(sum([1, 2, 3, 4, 5]))
# __import__  # 通过字符串导入模块
# import 'time'

time = __import__('time')
print(time.time())

예외 처리

예외 처리 : 처리를 위해, 실수를보고

 dic = {'a': 1}
#
# try:
#
#     print(dic['b'])  # KeyError
#     1 / int(num)  # 报错之后,不运行下面的代码
#
# except Exception as e:  # 万能异常,只要有错误,就捕捉
#     print(e)  # 错误的描述信息
#     print('傻逼,不知道什么错误')
#
# print(2)



# fr = open('test.py')
# try:
#     # 文件中途报错
#     1 / 0
#     fr.close()
# except Exception as e:
#     print(e)
# finally:  # 无论你包不报错,都执行这一行
#     print('finally')

역사에 의해 제거> - + 주장 어설 조건

프로세스 지향 프로그래밍

국수 버전 - "프로세스 지향 프로그래밍 -"생각 - "객체 지향 프로그래밍

좋은 또는 나쁜 생각은 없다

"(- 단계 프로그램 (코드를 작성, 쓰기 파일) - (처리 과정)를 사용 대명사)"를

청동

입력 I 입력 (정의 변수) P 프로세스 처리 (변경 제어 변수) O 출력 (새로운 변수) == 지향 프로그래밍 프로세스는 출력 프로그래밍

재료 - "액체 베이킹 -"주형에 붓고 - "냉각 -"비트 - "냉각 -"브론즈 출력

함수 인 단계

프로세스 지향 프로그래밍 : 비슷한 선 아래로 단계적으로

장점 : 매우 명확한 논리

단점 : 돌아 가기 잘못 수행 할 수있는 다음 단계 문제

왜 오류

논리 - "제어 변수가 잘못된 방향으로 변경

"인쇄 변수의 상태를 변경 - -"오류 확인

x = 10

y = 20

z = x + y
print(1, z) # 30

z = z + 10
print(2, z) # 40

z = z - 20

print(z)

디버그

추천

출처www.cnblogs.com/zhm-cyt/p/11585169.html