함수를 배우기 전에 저는 항상 프로세스 지향 프로그래밍, 즉 비즈니스 로직을 기반으로 위에서 아래로 함수를 구현하는 것을 따라왔습니다. 특정 함수의 코드가 괜찮은지 생각해 볼 수 있습니다. 여러 곳에서 사용됩니다. 한 번만 쓰시겠습니까? 이때 코드는 어떻게 정의해야 할까요? 다음 사례를 먼저 관찰하십시오.
참일 때:
CPU 사용률이 90%보다 큰 경우:
#이메일 알림 보내기
이메일 서버에 연결
이메일 보내기
> . 사용된 공간>
#메일 알림 보내기
메일함 서버에 연결
메일 보내기
연결 닫기
IF 메모리 점유 & gt; 80%:
#메일 알림 메일 보내기
메일 보내기 추출된 공개 예시:
def 이메일 보내기 ( 내용)
#이메일 알림 보내기
메일함 서버에 연결
True일 때:
CPU 사용률 > 90%인 경우:
이메일 보내기('CPU 알람')
하드 디스크 사용 시 space & gt; 90%:
이메일 보내기('하드 디스크 알람')
메모리를 차지하는 경우 & gt; 두 번째 구현은 첫 번째 구현보다 재사용 및 읽기가 더 쉽습니다. 한 곳에서 정의되고 여러 곳에서 호출되는 것이 사실 함수형 프로그래밍입니다
함수형 프로그래밍 개념:
프로그램을 개발할 때 특정 코드 조각을 여러 번 사용해야 하지만 작성 효율성을 높이기 위해서는 코드 재사용, 독립적인 기능을 가진 코드 블록을 작은 모듈로 정리한 것입니다.
호출
Code
demo: # 정보 인쇄 기능을 완성할 수 있는 함수 정의 def printInfo(): print '---------- ----------------------'
print '인생은 힘들다 단편, 나는 파이썬을 사용한다'
print '------------------------------------------------'
함수 정의는 주로 다음과 같은 점을 가지고 있습니다.
• def: 함수를 나타내는 키워드 • 함수 이름: 함수 이름, 호출 시 함수 이름에 따라 함수가 호출됩니다.
• 함수 본문: 함수에서 일련의 논리가 수행됩니다. 이 함수의 함수 내용을 계산합니다.
• 매개 변수: 함수 본문에 대한 데이터 제공
• 반환 값: 함수가 실행되면 호출자에게 데이터를 반환할 수 있습니다.
<2>함수 호출
함수를 정의한 후에는 특정 함수가 포함된 코드를 갖는 것과 같습니다. 이러한 코드를 실행하려면 함수를 호출해야 합니다(정의할 때 주의하세요). 함수 내용은 실행되지 않습니다)
함수 호출은 매우 간단합니다. 함수 이름()을 통해 호출을 완료할 수 있습니다.demo:
# 함수가 정의된 후에는 함수가 자동으로 실행되지 않습니다. printInfo( )
<3>함수 설명
>>> def test(a,b):
... "사용 두 숫자의 합을 완성하세요"
...
>>> >>> test(11,22)33 다음 코드를 실행하세요> >> help(test)
테스트 함수 관련 안내를 보실 수 있습니다
================ ============= =================
모듈 __main__의 기능 테스트에 대한 도움말:
test(a, b)
이 사용됩니다. 두 숫자의 합을 완성하려면
(END)
============================================
함수 매개변수-반환값
<1> 매개변수로 함수 정의
예는 다음과 같습니다.
def addnum(a, b):
c = a +b
print c
<2> 매개변수를 사용하여 함수 호출
위의 add2num(a, b) 함수 호출을 예로 들어보세요.
def addnum(a, b):
c = a+b
print c
add2num(11, 22) #매개변수가 있는 함수를 호출할 때는 괄호 안에 데이터를 전달해야 합니다
요약:
• Small when 정의 매개변수를 받는 데 사용되는 괄호 안의 매개변수를 "형식 매개변수"라고 합니다
• 호출 시 함수에 전달하는 데 사용되는 괄호 안의 매개변수를 "실제 매개변수"라고 합니다
ps: 나중에 논의할 것입니다. 함수 매개변수를 자세히 설명하는 별도의 블로그입니다
<3> 반환 값이 있는 함수
다음 예:
def add2num(a, b):
c = a+b
Return c
저장된 함수의 반환 값은 다음과 같습니다.
#Define function
def add2num(a, b):
Return a+b
#통화 기능, 그런데 함수 저장 반환 값
result = add2num(100,98)
#결과는 add2num의 반환 값을 저장했기 때문에 다음에 사용할 수 있습니다
결과 인쇄
Result :
19 8
파이썬에서는 여러 값을 반환할 수 있습니다
>>> def divid(a, b):
... shang = a//b
... yushu = a%b
... return shang, yushu
...
>>> sh, yu = divid(5, 2)
>>>sh
5
>>> yu
1
핵심은 튜플을 사용하는 것입니다
함수는 매개변수 유무, 반환값 유무에 따라 서로 결합할 수 있습니다. 총 4가지 종류가 있습니다
• 매개변수 없음, 반환 없음. value
• 매개변수가 없으면 반환값이 없습니다
• 매개변수가 있으면 반환값이 없습니다
• 매개변수와 반환값이 있습니다
<1>매개변수가 없고 반환값이 없는 함수
이런 종류의 함수는 매개변수를 받을 수 없고 반환값도 없습니다. 일반적인 상황에서 인쇄 프롬프트 표시등은 함수와 유사합니다. 이 유형의 함수를 사용하세요
<2> 매개변수 및 반환 값이 없는 함수
이 유형의 함수는 매개변수를 받을 수 없지만 일반적으로 특정 데이터를 반환할 수 있습니다. 데이터 수집 등의 상황에서는 이런 함수를 사용하세요
<3>매개변수가 있고 반환 값이 없는 함수
이러한 함수는 매개변수를 받을 수 있지만 데이터를 반환할 수는 없습니다. 일반적인 상황에서는 이 유형의 함수를 설정에 사용합니다. 결과가 필요하지 않은 특정 변수에 대한 데이터
<4> ;매개변수와 반환값이 있는 함수
이러한 유형의 함수는 매개변수를 받을 수 있을 뿐만 아니라 특정 데이터를 반환할 수도 있습니다. 일반적으로 데이터 처리가 필요하고 결과가 필요한 응용 프로그램에서는 이 기능을 사용합니다. 함수 종류
간단히 요약
• 함수는 매개변수와 반환값 유무에 따라 서로 결합될 수 있습니다
• 함수를 정의할 때 실제 기능 요구 사항을 기반으로 설계되므로 작성되는 함수의 종류는 개발자마다 다릅니다
• 함수의 반환 여부 반환 여부에 따라 값이 달라집니다. 왜냐하면 반환만이 데이터를 반환할 수 있기 때문입니다
• 개발 중에는 함수가 값을 반환해야 하는지 여부에 따라 함수를 설계하는 경우가 많습니다
• 함수에는 여러 개의 return 문이 있을 수 있지만 하나의 return 문이 실행되면 이 함수의 호출이 완료된 것입니다
• 프로그램에서 함수 이름을 반복하지 마십시오. 이 반복되면 나중 항목이 이전 항목을 덮어쓰게 됩니다(참고: 변수 이름을 반복하지 마십시오. 변수 이름도 덮어쓰게 됩니다)
함수 중첩
def testB():
print('---- testB start----')
print('여기에 testB 함수에 의해 실행되는 코드가 있습니다...(생략)...' )
print('---- testB end----')
def testA():
print('-- testA start--')
testB()
print('---- testA end---')
Call
testA()
결과:
---- testA 시작-- --
---- testB start----
testB 함수 실행을 위한 코드는 다음과 같습니다...(생략)...
---- testB end----
-- -- testA 끝 ----
간단한 요약:
• A 함수가 다른 함수를 호출합니다, 이것이 이른바 함수 중첩 호출입니다.
•함수 A에 있는 경우 또 다른 함수 B를 호출하면 함수 B의 모든 작업이 먼저 실행된 후 함수 A가 마지막으로 실행된 위치로 돌아갑니다
함수 중첩 사례:
1. 3개를 찾는 함수를 작성하세요. 숫자의 합
2. 세 숫자의 평균을 구하는 함수를 작성하세요
# 세 숫자의 합을 구하세요
def sum3Number(a,b,c):
Return a+b+c # 반환 뒤에는 숫자 값이나 표현식이 올 수 있습니다.
# 3개 숫자의 평균을 완성하세요
defaverage3Number(a,b,c):
# sum3Number이기 때문에 함수가 이미 세 숫자의 합을 완성했으므로 호출하기만 하면 됩니다
#즉, 수신된 세 숫자는 실제 매개변수로 전달될 수 있습니다
sumResult = sum3Number(a,b, c)
aveResult = sumResult/3.0
return aveResult
# 3개 숫자의 평균을 완성하는 함수를 호출합니다
result =average3Number (11,2,55)
print("평균은 %d"%result)
함수의 지역변수와 전역변수
지역변수
예:
[8]: def text1() :
...: a = 200
..: print("text1---%d" %a)
...:
[9]에서: def text2():
...: a = 400
...:
text1----200
수정 후 text1----300
In [ 11]: text2()
text2----400
요약
• 지역 변수는 내부에 정의된 변수입니다. function • 서로 다른 함수가 같은 이름의 지역 변수를 정의할 수 있지만 각각 다른 이름을 사용하므로 아무런 영향을 미치지 않습니다 • 지역 변수의 역할, 데이터를 일시적으로 저장하려면 저장용 함수에 변수를 정의해야 합니다 . 이것이 그 역할입니다
개념: 변수라면 둘 다 함수에서 사용할 수 있고, 그런 변수는 전역 변수입니다
예: # 전역 변수 정의
In [12]: a = 250
In [13]: def text1():
...: print("----text1----% d" %a)
[14]에서: def text2(): (...: 인쇄 ("---- text2 ---- %d" %a)
in [15]: 텍스트1 ()
[16]: text2()
--text2----250
지역 변수와 전역 변수의 이름이 같은 경우:
[23]: a = 250 # 전역 변수
In [24]: def text1():
...: # 지역 변수
…: a = 521
...: int in [24]: def text1():
-- -- %d " %a) ...: #지역 변수
...: A = 666
...: 인쇄 (" ---- text1 ----------- - %d " %a)
In [25]: def text2():
...: print("--text2----%d" %a)
In [26]: text1 ()
----text1----521
In [27]: text2()
요약:
• 함수 외부에서 정의된 변수를 전역 변수라고 합니다 • 전역 변수는 모든
함수
함수 내에서 전역 변수를 수정하세요:
In [31]: a = 250
[32]: def text1():
..: a = 520
...: print("----text1----%d" %a)
[33]:
[33]에서: def text2(): %a ..: global
a
...: a = 666
…: In [34]:
# 호출되는 함수가 없습니다
In [ 35]: print(a)
250
[36]에서:
# Call text1
[37]에서: text1()
----text1-- --520
[38]에서:
# 다시 인쇄 ---->
In [39]: print(a)
250
In [40]:
# 값이 수정되지 않은 것으로 확인됨
In [41]:
# Call text2
In [42]: text2()
---text2----666
In [43]:
# Print a
다시 In [44 ]: print(a)
6 66
In [45]:
# 값이 수정되었습니다
요약:
• 함수에서 전역 변수를 수정하는 경우 선언에 전역 변수를 사용해야 합니다. 그렇지 않으면 ( 매개 변수가 없는 경우 전달됨) 동일한 변수의 객체가 함수 내에서 재정의됩니다
- 변수 유형의 전역 변수와 불변 유형의 전역 변수 - 함수 내에서 수정됨
ps의 차이점은 다음과 같습니다. 나중에 블로그에서 변수 유형과 불변 유형의 개념을 자세히 설명하세요 예: ------->불변 유형: In [46]: a = 6
In [47]: def 데모():
print(a)
...:
In [48]: 데모()
오류 정보:
- -------------- ----------------------- -------------- ---------- UnboundLocalError 역추적(가장 최근 호출 마지막)
----> 데모 1개 ()
3 인쇄 (a)
UnboundLocalError: 할당 전에 지역 변수 'a'가 참조되었습니다
------------------------- -------- -----------------------------
참고: 분명히 수정할 수 없습니다
- ------>변수 유형:
In [49]: a = [1,]
In [50]:
In [50]: def 데모():
...: a .appnd (2) en ...: PRINT (a)
...:
[1, 2]
아웃 [52]: [ 1, 2]
요약:
○ 전역 변수의 본질은 전역 변수를 사용하지 않고는 함수에서 수정할 수 없습니다
전역 변수 선언is은 전역 변수의 지정을 수정할 수 없습니다, 는 전역 변수가 새 데이터를 가리킬 수 없다는 것을 의미합니다. ○
immutable 유형의 전역 변수의 경우 이 가리키는 데이터는 수정될 수 없습니다. 따라서 전역 변수를 사용하지 않으면 전역 변수를 수정할 수 없습니다. ○ 변수 유형의 전역 변수의 경우 해당 변수가 가리키는 데이터를
수정할 수 있으므로 전역 변수를 사용하지 않을 때는 전역 변수도 수정할 수 있습니다.
위 내용은 파이썬의 기본 포인트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!