python 기초 지식 - 함수
18871 단어 python 기초 지식 노트
카탈로그
함수 기본 문법
정의 함수
기본 구문:
def ( ):
1
2
예:
def print_hh():
print(" ")
함수 설명 문서
형식:
def ( ):
""" """
쓰기 및 호출 예:
def print_hh():
""" """
print(" ")
help(print_hh)
# :
# Help on function print_hh in module __main__:
#
# print_hh()
#
자체 함수도 help로 설명 문서를 출력할 수 있습니다
전참 대상
설명: 매개 변수 전달은 변경할 수 있는 대상과 변경할 수 없는 대상을 전달할 수 있으며 양자 처리에 차이가 있다.python에서strings,tuples,numbers는 변경할 수 없는 대상이고list,dict 등은 수정할 수 있는 대상이다.변경할 수 없는 객체의 예:
def test_1(a):
a=3
a=2
test_1(a)
print(a)
# :
# 2
변경 가능한 객체의 예:
def test_2(a):
a=a.append([5,6])
a=[1,2,3]
test_2(a)
print(a)
# :
# [1, 2, 3, [5, 6]]
변수 및 반환값
함수 안에 없는 변수는 모두 전역 변수입니다. 함수체 내부에서 전역 변수를 어떻게 수정합니까?
a=100
def test_1():
a=200
test_1()
print(a)
# :100( )
def test_2():
global a
a=200
test_2()
print(a)
# :200( )
함수는 여러 개의 반환 값이 있을 수 있으며, 목록, 사전 등 데이터 형식을 직접 반환할 수 있다
def test_1():
a=100
b=200
return a,b
c=test_1()
print(c)
# :
# (100, 200)
#
매개 변수
키워드 매개 변수
함수 호출은'키=값'형식을 통해 지정하면 함수를 더욱 뚜렷하고 실용적으로 할 수 있으며 매개 변수의 순서 수요를 없앨 수 있다
def test_1(name,score):
print(f'{name} {score}!')
test_1(score=100,name='jjb')
# :
# jjb 100!
기본 매개 변수
함수를 호출할 때 기본 매개 변수의 값이 들어오지 않으면 기본값으로 간주됩니다.
def test_1(name,score=100):
print(f'{name} {score}!')
test_1('jjb')
test_1('jjb',90)
# :
# jjb 100!
# jjb 90!
부정확한 길이 매개 변수
호출할 때 몇 개의 매개 변수를 전달할지 확실하지 않은 경우
# :
def test_1(a,*args):
print(a,end=' ')
for i in args:
print(i,end=' ')
test_1(1,2,3,4,5)
# :
# 1 2 3 4 5
# :
def test_2(a,**kwargs):
print(a,end=' ')
print(kwargs)
test_2(1,x=2,y=3,z=4)
# :
# 1 {'x': 2, 'y': 3, 'z': 4}
pass 문장은 빈 문장으로 아무 일도 하지 않고 점위 문장으로 쓰인다
lambda 표현식
응용 장면: 만약에 함수에 반환 값이 있고 코드 한 마디만 있다면 lambda를 사용하여 간소화할 수 있고 컴퓨터 비용을 줄일 수 있다.
def add(a,b):
return a+b
# lambda
fn1=lambda a,b:a+b
print(fn1(1,2))
# :
# 3
판단이 있는 lambda 표현식:
fn1=lambda a,b:a if a>b else b
print(fn1(500,1000))
# :
# 1000
목록의 사전을 키 값에 따라 정렬하기:
a = [{"name":"wang","age":45},{"name":"ji","age":20},{"name":"qian","age":30}]
a.sort(key=lambda x:x['age']) #
print(a)
# :
# [{'name': 'ji', 'age': 20}, {'name': 'qian', 'age': 30}, {'name': 'wang', 'age': 45}]
고급 함수
일반 고급 함수
정의: 변수는 함수를 가리킬 수 있다. 함수의 매개 변수는 변수를 받아들일 수 있다. 그러면 한 함수는 다른 함수를 매개 변수로 받아들일 수 있다. 이런 함수를 고급 함수라고 부른다.
#
def abs_sum(a,b,f):
return f(a)+f(b)
print(abs_sum(-1,2,abs))
# :
# 3
내장형 고급 함수
list_1=[1,-2,-3,4]
list_2=map(abs,list_1)
print(list_2)
print(list(list_2))
# :
#
# [1, 2, 3, 4]
이상의 결과에서 알 수 있듯이 출력은 목록으로 강제로 변환되어야 하며, 그렇지 않으면 교체기 (주소) 로 되돌아와야 한다.
import functools
def add(a,b):
return a+b
list_1=[1,2,3,4,5]
result=functools.reduce(add,list_1)
print(result)
# :
# 15
list_1=[1,2,3,4,5,6]
def func(x):
return x%2==0
result=filter(func,list_1)
print(list(result))
#
# [2, 4, 6]