파이썬 개발[제11편] 함수
함수.
함수란 무엇입니까?
함수는 반복적으로 실행할 수 있는 문장 블록으로 함수를 반복적으로 호출하고 실행할 수 있는 프로세스 프로그래밍을 위한 최소 단위이다.
함수 역할:
함수의 구문:
def ( ):
역할: 함수를 만들고 문장 블록을 포장하여 함수 이름으로 연결하여 호출합니다
설명: 함수 이름의 명명 규칙은 변수 이름의 명명 규칙과 같습니다(표식자여야 함). 함수 이름은 변수로 함수를 귀속시키는 데 사용됩니다.함수는 자신의 명명 공간이 있기 때문에 함수 외부는 함수 내부의 변수에 접근할 수 없고 함수 내부는 함수 외부의 변수에 접근할 수 있지만 외부 변수에 값을 부여할 수 없다.문장 블록 부분은 공백일 수 없습니다.공백일 경우pass문장을 기입해야 합니다
함수에 매개 변수를 입력할 필요가 없으면, 인삼 목록을 비울 수 있습니다.
예:
# def
def say_hello():
print('hello world')
print('hello ')
함수 호출
구문:
( )
설명: 함수 호출은 표현식입니다. 함수 내부에return 문장이 없으면 함수 실행이 끝난 후 None 대상의 인용을 되돌려줍니다.
예:
def say_hello():
print("hello world")
print("hello ")
#
say_hello()
#
say_hello()
# def
#
def say_hello():
a = 100
print(" a :",a)
say_hello()
# myadd
def myadd(a,b):
print(a+b)
myadd(1,2)
myadd([1,2,3],[4,5,6])
return 문
구문:
return [ ]
:[]
역할: 함수에서 현재 함수의 실행을 끝내고 이 함수를 호출한 곳으로 되돌려주며 대상의 인용 관계를 되돌려줍니다
설명:
연습:
1. 함수 mymax를 써서 세 개의 최대 값을 되돌려줍니다
예: def mymax(a, b, c):
……….
print(mymax(1,2,3))#3
print(mymax(“ABC”,“abc”,“123”))#abc
#
def mymax(a,b,c):
return max(a,b,c)
print(mymax(1,2,3))
print(mymax("ABC","abc","123"))
#
def mymax(a,b,c):
zuida = a
if b > zuida:
zuida = b
if c > zuida:
zuida = c
return zuida
print(mymax(1,2,3))
print(mymax("ABC","abc","123"))
함수의 전참
작용:데이터를 함수에
함수의 형삼
역할: 함수 호출 전송된 데이터 수신
python 함수의 매개 변수 전달
전송 방법:
위치 전참
( ) ( )
예:
#
def myfun(a, b, c):
''' '''
print('a :', a)
print('b :', b)
print('c :', c)
myfun(1, 2, 3)
myfun(4, 5, 6)
myfun("ABC", [1,2,3], (44,55,66))
설명:
서열 참조
, *( )
예:
#
def myfun(a, b, c):
''' '''
print('a :', a)
print('b :', b)
print('c :', c)
L = [11, 22, 33]
# myfun(L[0], L[1], L[2])
myfun(*L)
# myfun(L)
설명:
,
키워드 참조
,
예:
#
def myfun(a, b, c):
''' '''
print('a :', a)
print('b :', b)
print('c :', c)
myfun(c=33, b=22, a=11)
myfun(b=222, c=333, a=111)
설명:
사전 키워드 참조
, **( )
예:
#
def myfun(a, b, c):
''' '''
print('a :', a)
print('b :', b)
print('c :', c)
d = {'a':100, 'c':300, 'b':200}
# myfun(a=d['a'], c=d['c'], b=d['b'])
myfun(**d) #
# myfun(d) #
설명:
함수의 종합 전참
예:
def myfun(a, b, c):
pass
myfun(100, *[200, 300])
myfun(100, *"BC")
myfun(*"AB", 300)
myfun(*[100], 200, *[300])
myfun(100, c=300,b=200)
myfun(a=100, 200, c=300) #
myfun(100, **{'c':300, 'b':200})
myfun(100, **{'c':300}, b=200)
myfun(100, b=200, **{'c':300})
함수의 기본 매개변수
구문:
def ( 1= 1, 2= 2, 3= 3,.....)
역할:
예:
#
def info(name, age=1, address=" "):
print(name, ' ', age,' , :',
address)
info(" ", 35, " ")
info("Tarena", 15)
info(" ")
# info() #
설명:
, ,
0 、 ,
예:
def fn(a,b=10,c): #
pass
def fn(a=0,b=None,c=False): #
pass
함수의 가변 실참과 가변 실참의 전달
예:
#
#
L = [1, 2, 3]
def f1(L):
L = [4, 5, 6] #
print(L) # [4, 5, 6]
f1(L)
print(L) # [1, 2, 3]
L = [1, 2, 3]
def f1(L):
# L = [4, 5, 6] #
L.append("ABC")
print(L) # [1, 2, 3, "ABC"]
f1(L)
print(L) # [1, 2, 3, "ABC"]
설명:
, ( , , ...)
면접 문제:
# ? ?
L = [1,2]
def fn(a,lst=[])
lst.append(a)
print(lst)
fn(3,L) #[1,2,3]
fn(4,L) #[1,2,3,4]
#####################
fn(5) #[5]
fn(6) #[5,6]
fn(7) #[5,6,7]
함수형 참조의 정의 방식
위치형삼
구문:
def ( 1, 2,....):
성호 원조형삼
구문:
def (* ):
역할:
설명:
'args'
*
예:
#
def func(*args):
print(" :", len(args))
print("args=", args)
func() #
func(1,2,3,4)
func(1, 2, 3, 4, 5, 6, 7, 8)
s = "ABCDE"
func(*s) # func('A', 'B', ....)
func(a=100, b=200) #
이름 키워드 참조
구문:
def (*, 1, 2,....):
def (*args, 1, 2,....):
역할:
예:
#
def func(a, b, *, c, d):
print(a, b, c, d)
# func(1, 2, 3, 4) #
func(1, 2, c=30, d=40)
func(a=10, b=20, c=30, d=40)
func(1, 2, **{'d':400, 'c':300})
쌍성호
구문:
def (** ):
역할:
예:
#
def func(**kwargs):
print(" :", len(kwargs))
print('kwargs=', kwargs)
func(name=" ", age=35, address=" ")
def func(*,a, b, **kwargs):
print(" :", len(kwargs))
print('kwargs=', kwargs)
func(a=1, b=2, c=3, d=4)
설명:
:'kwargs'
함수에 대한 참조 설명:
def fn(a, b, *args, c, **kwargs):
pass
fn(1, 2, 3, 4, c=30, d=40, e=50)
함수의 부정확한 길이 매개 변수
예:
def fn(*args,**kwargs):
print(*args,**kwargs)
글로벌 및 로컬 변수
국부 변수
전역 변수
함수 변수
함수 이름은 변수입니다. 함수를 만들 때 함수를 연결합니다.
예:
# ,
def f1():
print("f1 !")
f2 = f1 # , f2 = f1() <<===
f2() # ?
f1()
def f1():
print("f1 !")
def f2():
print("f2 !")
f1, f2 = f2, f1 #
f1() # ?
설명:
하나의 함수는 다른 함수의 실참 전달에 작용할 수 있고, 다른 함수의 형삼 변수는 실참 함수를 귀속시킬 수 있다
함수는 다른 함수의 반환값으로 할 수 있다
예:
def f1():
print("f1")
def f2():
print("f2")
def get_fx(n):
if n == 1:
return f1
elif n == 2:
return f2
fx = get_fx(1)
fx() # f1
fx = get_fx(2)
fx() # ?
함수의 중첩 정의
함수 플러그인 정의는 한 함수에서 def 문장으로 다른 함수를 만드는 상황을 가리킨다
예:
# ,
def fn_outer():
print("fn_outer ")
def fn_inner():
print("fn_inner ")
fn_inner()
fn_inner()
fn_inner()
print("fn_outer ")
fn_outer()
# fn_inner() #
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.