python--함수 설명
함수의 작용
나는 농사를 지을 때 호미를 써야 한다. 나는 매번 사용할 때마다 호미를 다시 만들까, 아니면 미리 호미를 만들어 필요할 때 직접 가져와서 쓸까?분명히 매번 다시 하는 것은 반복적인 노동이기 때문에 우리는 미리 한 번 잘 하고 매번 직접 가져오는 것을 선택했다. 이것은 바로 복용하는 사상이다.만약 빈번하게 이 문제를 해결해야 한다면 이 문제를 해결하는 코드는 미리 쓸 수 있고 이 문제를 해결해야 할 때 직접 가져와서 사용할 수 있다.
예를 들어 코드 파일의 여러 곳에서 1-100 누적과 이 기능을 계산해야 하는데 어떻게 이 문제를 해결합니까?
가장 간단한 방법은 그 코드를 필요한 곳으로 복제하는 것이다. 그러나 코드의 양도 크게 증가한다. 만약에 이 누적과 기능이 바뀌었다면 모든 부분을 수정해야 하고 코드의 유지보수량을 증가시켰다는 것을 의미한다.
어떻게 해결할까요?이 기능을 하나의 단독 기능 코드 블록으로 봉인함으로써 이 기능이 필요하면 이 기능 코드 블록을 직접 사용한다. 이 기능 코드 블록을 우리도 함수라고 부른다.요컨대 함수의 역할은 자주 사용하는 코드를 봉하여 나중에 사용하기 편리하게 하는 것이다.
함수 구문 형식
Python에서 함수는
def
키워드로 정의되며 함수의 이름(기능의 이름), 함수의 실현(기능을 실현하는 코드)을 포함한다.함수의 행위는 함수 정의와 함수 호출로 나뉜다.
def ():
그러면 1-100이라는 기능을 우리는 이런 함수(기능 코드 블록)로 쓸 수 있다.
#
def my_sum():
i = 1
s = 0
while i <= 100:
s = s + i
i += 1
print("1~100 :%d" % s)
#
my_sum()
함수의 매개 변수
한 가지 더 생각해 보자. 우리는 이 함수가 1-100의 누적화만 계산할 수 있다는 것을 발견했다. 우리는 함수의 기능이 지정에서 끝까지 숫자의 누적화를 지원할 수 있을까?
우리는 우리가 전달하고자 하는 숫자를 함수에 전달하고 함수를 우리가 전달하는 매개 변수에 따라 계산할 수 있다
def my_sum(start, end):
my_start = start
my_end = end
my_sum = 0
while my_start <= my_end:
my_sum = my_sum + my_start
my_start += 1
print("%d~%d :%d" % (start, end, my_sum))
#
my_sum(2, 50)
함수 매개 변수의 작용은 바로 함수로 하여금 우리가 정한 값에 근거하여 연산하게 하는 것이다.이렇게 하면 함수의 통용성을 강화할 수 있다.함수에는 여러 개의 매개 변수가 있을 수 있다
예를 들어 우리는 덧셈 기능을 가진 함수를 작성하려면 분명히 두 개의 인자가 필요하다
def my_add(num1, num2):
result = num1 + num2
print('num1 + num2 =', result)
my_add(10, 20)
우리가 함수를 호출할 때 전달하는 진실한 데이터를 실삼이라고 하고 함수 파라미터를 형삼이라고 하며 형삼은 진실하게 전달되는 수치를 대표할 뿐이다.
여러 함수 매개 변수가 다시 전달될 때 왼쪽에서 오른쪽으로 전달된다.물론 파이톤에서도 우리는 그 형삼에게 어떤 값을 지정할 수 있다.
def my_add(num1, num2):
result = num1 + num2
print('num1 + num2 =', result)
my_add(num1=10, num2=20)
my_add(num2=20, num1=10)
1. 왼쪽에서 오른쪽으로 순서대로 전달하는 것을 위치 매개 변수라고 한다.
2. 형삼 이름에 따라 전달하는 것을 키워드 매개 변수라고 한다.
함수를 호출할 때 위치 매개 변수를 전달하고 키워드 매개 변수를 전달할 수 있습니까?
def my_add(num1, num2, num3, num4):
result = num1 + num2 + num3 + num4
return result
my_add(100, 200, 300, num2=10)
네, 위치 파라미터가 키워드 파라미터 앞에 있기만 하면 됩니다.
함수의 반환값
다음 두 가지 문제를 생각해 보세요.
return 문장을 사용하여 함수의 운행 결과를 함수의 호출자에게 되돌려줍니다
def my_add(num1, num2):
result = num1 + num2
return result
#
my_add_result = my_add(10, 20)
#
finish_result = my_add_result + 100
#
print(' :', finish_result)
print 함수와return의 차이는 무엇입니까?
print는 내용을 화면에 출력하는 것만 책임집니다.리턴은 함수 계산 결과를 함수의 호출자에게 되돌려줍니다.
예를 들어 함수는 하나의 공장과 유사하다. 우리는 공장 생산에 필요한 재료를 파라미터의 형식을 통해 공장에 전달하고 공장은 우리가 전달하는 재료를 사용하여 제품을 생산한다.
print는 제품을 생산한 후'제품 생산 완료'라고 말했지만 사용자에게 제품을 주지 않는다.
리턴은 제품을 생산한 후 사용자에게 제품을 건네주는 셈이다.그러면 사용자는 하나의 바구니로 제품을 담아야 한다. (변수로 함수의 반환값을 저장해야 한다.)물론 공장에서 제품을 사용자에게 주었지만 사용자도 함수의 반환값을 무시하지 않을 수 있다.
return에 관해서는 다음과 같은 몇 가지를 주의하시오.
로컬 및 글로벌 변수
전역 변수: 함수 외부에 정의된 변수.전역은 이 변수가 현재python 파일 범위 내에서 보이는 것을 가리킨다.전역 변수는 현재python 파일의 모든 함수에 직접 사용할 수 있습니다.
국부 변수: 함수 내부에 정의된 변수입니다.이 변수는 정의된 함수 내부에서만 사용할 수 있습니다.
#
g_val = 100
#
def my_function1():
print(g_val)
# my_val
def my_function2():
my_val = 100
# my_function2
def my_function3():
print(my_val)# , ,
#
my_function1()
my_function2()
my_function3()
로컬 변수와 전역 변수 이름이 충돌하면 Python 해석기는 어떻게 합니까?근접 원칙에 따르면 국부 변수의 우선순위는 전체 변수보다 크다
total_value = 100
def my_function():
total_value = 200
print('total_value:', total_value)
my_function() #200
함수의 기본 매개변수(기본 매개변수)
기본 매개 변수는 함수 호출에서 실참이 생략되었을 때 기본적으로 사용하는 값을 가리킨다.
기본 매개변수의 구문 및 사용:
def my_function(a, b=20, c=30):
return a+b+c
my_function(10) # b,c 20,30
my_function(10, 100)
my_function(10, 100, 1000)
참고: 기본값이 있는 매개변수는 매개변수 목록의 맨 뒤에 있어야 합니다.
함수 문서 및 역할
함수도 주석을 추가하여 함수 기능, 매개 변수와 반환 값의 의미를 호출자가 알 수 있도록 해야 한다.그러나 일반적인 단행 다행 주석은 함수 정의를 볼 때 볼 수 있는데 호출할 때 함수 관련 정보를 신속하게 볼 수 있는 방법이 있습니까?
DocString은 프로그램 문서를 더욱 간단하고 쉽게 이해할 수 있도록 도와주는 중요한 도구입니다.
#
def my_function(param):
""" , ."""
return param + 10
#
def my_add(num1, num2):
""" .
:param int num1:
:param int num2:
:return
"""
result = num1 + num2
return result
우리는
ctrl + q
단축키를 통해 함수 정보를 볼 수도 있고, help()
함수를 통해 함수 정보를 볼 수도 있다.단일 책임 원칙
실례합니다: 업무 중에 한 사람이 책임지는 직책이 많을수록 좋습니까? 아니면 적을수록 좋습니까?같은 이치로 함수를 만들면 함수가 완성할 수 있는 기능이 많을수록 좋습니까? 아니면 적을수록 좋습니까?
단일 직책 원칙은 하나의 함수로 한 가지 일을 책임진다는 것이다.한 함수가 맡은 직책이 너무 많으면 이런 직책을 혼합하는 것과 같아서 한 직책의 변화가 다른 직책의 능력에 영향을 줄 수 있기 때문이다.
RSP
이다.이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Rails Turbolinks를 페이지 단위로 비활성화하는 방법원래 Turobolinks란? Turbolinks는 링크를 생성하는 요소인 a 요소의 클릭을 후크로 하고, 이동한 페이지를 Ajax에서 가져옵니다. 그 후, 취득 페이지의 데이터가 천이 전의 페이지와 동일한 것이 있...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.