Python/개념정리

파이썬 내장함수/메서드

Itchild 2024. 5. 7. 16:22
728x90
반응형

 

✔️ 내장함수 vs 메서드

 

▪️ 주체가 있는 함수에 경우 - 메서드

▪️ 그냥 바로 쓰는 경우 - 내장 함수

 

함수의 3요소에 대해 복습하자 !

1️⃣ 인자, 인수, input, 입력값, 매개변수, args, 파라미터, ...

2️⃣ 반환값, 리턴값, return, 출력값, 결과값, output, ...

3️⃣ 함수의 기능 == 함수명

 

=> 파이썬은 반환값을 명시하지 않기 때문에 !! 파이썬에서는 메서드 시그니처 라는 말이 잘 안쓰인다 .

 

<작성 요령>

def 함수명():
    기능작성
 

근데 이렇게 작성하면 출력되지 않는다 !

왜 ?

 

함수 선언만 한 상태라서

 

def printApple(): # () 인자 들어가고 output은 기재 안한다. 
    print('apple')
# 이렇게 만든 것을 사용자가 만들어서 "사용자 정의 함수" 라고 한다.
# 원래 그냥 사용하던 애들은 "내장함수" 라고 한다.  
 

 

⭐ 함수의 장점 ⭐

▪️ 코드 재사용성 용이

▪️ 오류의 파급효과 절감

▪️ 개발시간단축, 비용절감

▪️ 유지보수 용이

 

< 1번 예시 >

def funcA(a):
    print('a=',a)

def funcB(b):
    print('b=',b)
    return b

def funcC():
    return 1234
 

 

funcB() 함수에 인자로 -13을 넣어 줬을때 아래에 -13 이 한번더 출력되는 현상을

에코 라고 한다 !

 

변수에 담아주면 에코가 안나온다.

 

✔️ 대입할 변수를 안줬을 때는 에코가 나오는데 ( == return 값이 shell에 그대로 드러났는데 )

✔️ 대입할 변수를 주면 에코가 안나온다 .

 

 

< 2번 예시 >

def funcD():
    for i in range(10): # 다 완성을 안하면 실행이 안됨
        pass # 이따가 할게 # 이따가 완성할게 # 개발 중인 스크립트에 있다
             # 개발 완료된 스크립트에 pass 가 들어가있으면 안됨

def funcE(*a): # 인자를 몇개 넣을지 모르는 상황 
               # 애스트리스크, 가변 매개변수(크기가 변할수 있는 인자다)
    print(a)
    print(type(a)) # 가변 매개변수는 튜플 타입으로 넘어온다.
    for v in a: # forEach 같은 개념 
        print(v)
 

⬆️ pass인자에 몇개 넣을지 모르는 상황 예시

 

✔️ 튜플이라서 타입을 가리지 않고 가변이라서 3개든 4개든 넣을 수 있다

➡️ 이래서 파이썬이 확장성이 좋다

 

 

 

< 3번 예시 >
def funcF(a,b,c=123): # 디폴트 매개변수 #만약에 c가 값이 넘어오지 않았다면 123으로 설정해줄래?
   print('a=',a)
   print('b=',b)
   print('c=',c)
 

 

✔️ 디폴트 매개변수를 여러개 설정할 수 있다. 가능한 만큼 설정 할 수 있다.

 

 

 

그렇다면 우리는 확인 할 수 있는것 !

< 4번 예시 >
print('안녕하세요',end=' ') # 디폴트 매개변수를 설정하는 일
print('파이썬 2일차입니다')
print('ㅎㅎㅎ')
 

✔️ 디폴트로 \n 이 존재하는 상황(줄바꿈이 존재) 인데 마지막에 end = ' ' 줄바꿈 안할래

 

✔️ 여기서 알수 있는 것 ❗

▪️ print() 함수에게는 end라는 인자값이 있었고 ,

▪️ end는 디폴트 매개변수 값으로 '\n'를 갖고 있었다!

 

 

728x90
반응형