일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 정적 메서드
- __init__
- Colab
- nextjs
- 맴버연산자
- f-string
- 구글코랩
- 메서드
- 식별연산자
- 추상 클래스
- 정수
- 인공신경망
- 비공개 속성
- neural network
- 깃모지
- Next.js
- built-in function
- class
- 캐시의 지역성
- PYTHON
- self
- mnist
- randrange
- 실수
- choice
- 메서드채이닝
- Keras
- gitmoji
- cache locality
- ITER
- Today
- Total
IT world
[Python] 24.01.08 파이썬의 함수, Parameter, Argument 그리고 지역/전역 변수 본문
[Python] 24.01.08 파이썬의 함수, Parameter, Argument 그리고 지역/전역 변수
엄킹 2024. 1. 10. 13:001. 함수
1.1 함수란
특정 작업을 수행하는 코드 블록을 하나의 이름으로 모은 것이다. 이를 통해 함수명을 호출하여 코드를 실행할 수 있다.
기본 구조 def 함수명(): ~ return 값
파이썬의 함수도 단순하게 생각하면 입력을 하면 출력을 하는 방식으로
- 복잡한 코드를 단순화시키고, 반복되는 코드를 줄일 수 있으며
- 가독성이 좋아지고
- 효율성을 향상 시킨다.
함수는 파라미터(parameter, 매개변수)를 통해 외부에서 들어온 아규먼트(argument, 인수)를 입력 받는다.
def function_name(x, y):
z = x + y
return z
print(f'function_name(10, 9) = {function_name(10, 9)}')
함수는 def 키워드로 선언하며, 함수이름은 function_name. x, y라는 매개변수를 받는다.
모든 함수가 파라미터를 필요로 하는 것은 아니며, 그런 함수는 괄호안에 어떤 값도 받지 않는다.
함수의 범위는 4칸 들여쓰기 된 곳까지이며, 반드시 한 줄은 명시해야한다. 이때 아무 코드를 넣지 않는 경우에는 pass 키워드를 넣어 에러를 방지한다.
pass 키워드는 어떠한 연산도 수행하지 않고, 특정 부분이 아직 구현되지 않았을 때 유용하게 사용할 수 있다.
# 입력 매개변수가 없고, 반환값도 없는 함수 예시
def simple_function():
print('hello world')
# 함수 호출
print(simple_function())
# 파라미터가 없고, 반환값은 있는 함수 예시
def give_me_five():
return 5
result = give_me_five()
print(result) # 출력: 5
# 입력 매개변수가 있고, 반환값이 없는 함수 예시
def greeting(name):
print(f'Hello, {name}!')
# 함수 호출
print(greeting('Licat'))
# 입력 매개변수가 있고, 반환값이 있는 함수 예시
def add_numbers(x, y):
sum = x + y
return sum
# 함수 호출
result = add_numbers(5, 3)
print(result) # 출력: 8
1.1 파라미터(Parameter)
파라미터란 함수를 정의할 때 사용되는 변수로, 함수가 호출될 때 들어오는 값이다.
# 파라미터의 기본 사용
def f(a, b, c):
print(a, b, c)
1.2 아규먼트(Argument)
아규먼트란 함수를 호출할 때 전달하는 실제 값이다.
# 아규먼트 기본 구조
result = my_function(5, 3)
기본적으로 함수를 정의할 때 설정된 파라미터의 수와, 함수 호출 시 전달되는 아규먼트의 수가 일치해야 한다.
키워드 인자(keyword arguments)를 사용하여 원하는 파라미터에 값을 할당할 수 있고, 파라미터에 기본값을 설정할 수 있다. 기본값이 설정되면 함수 호출 시 해당 할 수 있다.
#기본값을 가지는 파라미터
def f(a=10, b=20, c=30):
print(a, b, c)
f() # 출력: 10 20 30
f(100, 10) # 출력: 100 10 30
f(a=100, b=200, c=300) # 출력: 100 200 300
f(c=300, a=100, b=200) # 출력: 100 200 300
1.3 컨밴션 자료형을 아규먼트로 넣었을때
리스트와 같은 자료형을 인수로 사용했을 경우 같은 주소를 가리키고 있고, 변수에 영향을 받게 된다.
1.4 지역변수와 전역변수
1.4.1 지역변수
- 함수 내부에서만 정의되고 사용되는 변수
- 다른 함수나 프로그램의 전체 흐름에 영향을 주지 않고, 함수 내부에서만 데이터를 관리
- 복잡한 프로그램에서 여러 개발자가 작업할 때 변수 이름 충돌을 방지하고, 코드의 유지 보수를 용이하게 한다.
- 밖의 코드에서 접근할 수 없으며, 지역에 선언된 변수 목록을 보려면 locals()를 사용
1.4.2 전역변수
- 어떤 함수에서도 접근 가능한 변수
- 함수 내부에서 함수 외부에 정의된 변수를 변경하려면, 그 변수를 global로 선언
- global 키워드 없이 전역변수는 수정할 수 없음.
1.5 빌트인 함수(built-in function)
빌트인 함수(built-in function) 혹은 내장 함수란
파이썬 언어에 기본적으로 포함된 함수들. 추가적인 코드 작성없이 효율적으로 코드를 작성할 수 있게 한다.
1.5.1 종류
- all() : 반복 가능한 객체(리스트, 튜플, 문자열 등)를 인수로 받아, 그 안의 모든 요소가 True로 평가되면 True 반환
- any() : 반복 가능한 객체를 인수로 받아, 그 안의 어떤 요소라도 True로 평가되면 True로 반환
- chr() : 정수를 인수로 받아, 그에 해당하는 유니코드 문자를 반환
- ord() : 문자를 인수로 받아, 그 문자의 유니코드(또는 ASCII 코드) 값을 반환
- map() : 리스트(또는 튜플)의 모든 요소에 특정 함수를 적용한 결과를 map 객체 형태로 반환하는 함수
- filter() : 순회할 수 있는 객체의 요소 중 특정 조건을 만족하는 요소만을 선택하여 반환
list(filter(lambda x : x > 50, range(100)))
- zip() : 여러개의 순회할 수 있는 객체의 요소를 묶어서 반환. 다만 메모리 효율을 위해 형변환이나 직접 순회를 하기전까지 메모리 주소만 반환.
- len(), max(), min(), sum() 등
- enumerate() : 반복할 수 있는 객체의 인덱스와 값을 함께 반환, 두번째 인자를 통해 시작 인덱스 설정
'모두의 연구소(오름캠프) > AI 모델 활용 백엔드 개발 과정' 카테고리의 다른 글
[Python] 24.01.10 클래스 (0) | 2024.01.10 |
---|---|
[Python] 24.01.09 조건문과 반복문 (0) | 2024.01.10 |
[Python] 24.01.05 리스트, 튜플, 딕셔너리, 셋 (0) | 2024.01.10 |
[Python] 24.01.04 파이썬 연산자와 시퀀스 자료형 (0) | 2024.01.09 |
[Python] 24.01.03 파이썬 자료형과 형변환 그리고 연산자 (2) | 2024.01.04 |