반응형
함수
파이썬에서 함수는 특정 작업을 수행하는 코드의 집합을 의미합니다. 함수는 코드의 재사용성을 높이고 구조를 보다 명확하게 할 수 있도록 도와줍니다. 함수를 사용함으로써, 복잡한 문제를 작은 부분으로 나누어 해결할 수 있으며, 코드의 유지보수가 용이해집니다.
- 함수 정의와 호출
#함수 정의
def func():
print("Hi")
#함수 호출
func()
- 인자를 받는 함수
#인자를 받는 함수 정의
def print_message(message):
print(message)
#함수 호출
print_message("Hello")
- 반환 값이 있는 함수
#반환 값이 있는 함수 정의
def add(a, b):
return a + b
#함수 호출
result = add(5, 3)
print(result) # 8
- EX) 리스트 내 요소들의 평균 구하기
#리스트 내 요소들 평균 함수
def cal_avg(numbers):
if len(numbers) == 0
return 0
return sum(numbers) / len(numbers)
#함수 호출
numbers = [1, 2, 3, 4, 5]
avg = cal_avg(numbers)
prnit(avg) #3.0
반환문
반환문(Return문)은 함수 내에서 사용되며, 함수를 호출한 곳으로 값을 돌려보내는 역할을 합니다. return문을 사용하면 함수의 실행이 그 지점에서 종료되고, 지정한 값이 함수를 호출한 곳으로 반환됩니다. 함수에서 return문을 사용하지 않으면 기본적으로 None값을 반환합니다.
- 간단한 반환
def sum_numbers(a, b)
return a + b
result = sum_numbers(1, 2)
print(result) #3
- 여러 값을 반환
def ari_oper(a, b):
sum_res = a + b
mul_res = a * b
return sum_res, mul_res
sum_val, mul_val = ari_oper(10, 5)
print(sum_val) #15
print(mul_val) #50
- 조건에 따라 다른 값을 반환
def is_even(number):
if(number % 2 == 0):
return True
else
return False
print(is_even(2)) #True
print(is_even(3)) #False
- 조기 반환
def divide(a, b):
if b == 0:
print("0으로 나눌 수 없습니다.")
return
return a/b
result = devide(10, 0)
print(result) # 0으로 나눌 수 없습니다.
지역, 전역 변수
지역변수: 함수 내부에서 정의되고 사용되는 변수입니다. 지역변수의 범위는 해당 변수가 선언된 함수 내부로 한정되어 있으며, 함수 외부에서는 접근할 수 없습니다.
전역변수: 전역변수는 함수 외부에서 정의되는 변수로, 프로그램 전체에서 접근하고 수정할 수 있습니다.
- 지역 변수
def func():
local_val = '지역변수'
print(local_val) #함수 내부에서 접근 가능
func()
#print(local_val) 오류, 함수 외부에서 접근 불가능
- 전역 변수
global_val = '전역변수'
def func():
print(gloval_val) #함수 내부에서 전역변수 접근 가능
func()
print(global_val) #함수 외부에서 전역변수 접근 가능
######################################################
#전역변수 수정 방법
global_val = 5
def change_global_val():
global global_val # 전역변수 수정 명시
global_val = 10
print(global_val) #5
change_global_val()
print(global_val) #10
람다(Lambda)
파이썬에서 람다 함수는 작고 이름이 없는 함수로, 여러 개의 인자를 받을 수 있지만 오직 하나의 표현식만 가질 수 있습니다. 이들의 문법은 lambda 인자:표현식 형태의 단일 문장으로 구성됩니다. 람다 함수는 함수 객체가 필요한 곳이라면 어디에서나 사용될 수 있으며, 단일 표현식으로 제한됩니다.
- 두 숫자 더하기
add = lambda x,y: x+y
print(add(5, 3)) # 8
- 숫자의 제곱 구하기
square = lambda x: x*x
print(square(4)) # 16
- 튜플 리스트를 두 번째 아이템으로 정렬하기
list_of_tuples = [(1, 'one'), (3, 'three'), (2, 'two'), (4, 'four')]
list_of_tuples.sort(key=lambda x:x[1])
print(list_of_tulpes) #[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]
- 숫자 리스트 필터링하기
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(lambda x: x%2 == 0, numbers))
print(even_numbers) #[2, 4, 6]
- 숫자 리스트를 그 제곱으로 매핑하기
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x:x**2, numbers))
print(squared_nubmers) #[1, 4, 9, 16, 25]
오늘은 파이썬에서의 함수, 반환문, 지역변수, 전역변수, 람다의 예시를 보았습니다.
다음에는 데이터 타입의 자료형, 문자열과 리스트, 튜플 등을 공부해보겠습니다!
반응형
'IT' 카테고리의 다른 글
[Python] 파이썬 문법 정리[4탄] (코딩 테스트 대비) (0) | 2024.06.26 |
---|---|
[Python] 파이썬 문법 정리[3탄] (자료형, 문자열과 리스트, Tuple, Dictionary, Set) (0) | 2024.05.22 |
[Python] 파이썬 문법 정리[1탄](변수, 리스트, for, while, if-elif-else) (0) | 2024.05.08 |
[알고리즘] DFS와 BFS(개념, 특징, 동작 원리, 파이썬 예시) (0) | 2024.05.07 |
[자료 구조] 해시테이블(Hash Table)이란? (특징, 시간복잡도, 파이썬 사용, 사용 사례) (0) | 2024.05.02 |