☑️ 함수 정의 하기
- 필요로 하는 함수를 직접 정의하고 사용가능
- `왜?` 긴 코드를 짧은 단어로 축약 가능, 자주 쓰는 것 들을 함수화하여 효율적으로 불러올 수 있음
- 함수는 입력을 받아 원하는 처리를 한 후 출력을 내보내는 일련의 작업을 수행
- 매개변수= 입력값
# 함수 정의
def 함수이름(매개변수1, 매개변수2, ...):
# 함수 내부에서 수행할 작업
return 결과값 # (선택적) 함수의 결과를 반환
#함수 호출
함수이름 (인수1,인수2...) # 출력 됨.
☑️ 함수 활용하기
- 반복문 함수 정의
# 숫자 리스트에서 최대값을 찾는 함수
def find_max(numbers):
max_num = numbers[0] #리스트의 첫번째 값을 초기값으로 저장
for num in numbers:
if num > max_num: #대소 비교하여 큰 값을 맥스값으로 저장
max_num = num
return max_num
# 함수 호출
numbers=[3, 7, 2, 9, 5]
print(find_max(numbers)) # 출력: 9
- 조건문 함수 정의
# 연령별 버스 요금 출력 함수
def bus_rate (age) :# bus_rate 함수를 아래와 같이 정의하겠다.
if age > 65:`# age 가 65보다 크면
print('adult') #adult 출력한다
elif age >20:
print('kids')
else:
print('students')
bus_rate(15) # 정의한 함수의 값 출력시 프린트 필요없음
- 튜플 함수 정의
#튜플의 모든 요소를 곱하는 함수
def multiply_tuple(tup):
result = 1 # 초기값
for num in tup:
result *= num # 누적곱
return result
# 함수 호출
print(multiply_tuple((2, 3, 4))) # 출력: 24
- for & if 활용 함수 정의하기
#주어진 문자열에서 각 문자의 출현 빈도를 딕셔너리로 반환
def char_frequency(string): #문자열로 받을꺼임
freq_dict = {} # 딕셔너리로 저장
for char in string: #문자열 각 인덱스 값 반복해서 key 값인 char에 저장
if char in freq_dict: # 문자열에 있으면 딕셔너리 value에 카운팅
freq_dict[char] += 1
else:
freq_dict[char] = 1 # 없으면 그냥 1 하나다!
return freq_dict
# 함수 호출
print(char_frequency("hello")) # 출력: {'h': 1, 'e': 1, 'l': 2, 'o': 1}
☑️ 전역 변수와 지역 변수
- 전역 변수 (Global Variables) : 프로그램 전체에서 접근 가능한 변수
- ex. 함수 외부/내부 전부 접근 가능 (불러올순 있지만 일반적으로 함수 내부에서 수정은 불가능)
- 지역 변수 (Local Variables) : 특정한 범위에서만 접근 가능한 변수 / 범위를 벗어나면 메모리에서 사라짐(효율적)
- ex. 함수 내부에서만 사용 가능
- 코드 보기
더보기
더보기
# 전역변수 예시
global_var = 10
def global_example():
print("전역변수 접근:", global_var)
global_example() # 출력: 전역변수 접근: 10
# 지역변수 예시
def local_example():
local_var = 20
print("지역변수 접근:", local_var)
local_example() # 출력: 지역변수 접근: 20
# 함수 내에서 전역변수를 수정하는 예시
def modify_global():
global global_var
global_var = 30
print("함수 내에서 수정된 전역변수:", global_var)
modify_global() # 출력: 함수 내에서 수정된 전역변수: 30
print("수정된 전역변수 확인:", global_var) # 출력: 수정된 전역변수 확인: 30
☑️ 인수(argument) 와 매개변수(parameter)
- 인수=인자 : 함수를 호출할 때 전달 되는 값
- 매개변수 : 함수가 받는 값을 지정하는 변수
# 매개변수(parameter) 예시
def greet(name): # 여기서 'name'은 매개변수입니다.
print("Hello, " + name + "!")
# 함수 호출할 때 전달되는 값이 인수(argument)입니다.
greet("Alice") # 함수 호출 시 "Alice"는 greet 함수의 매개변수 'name'에 전달됩니다.
☑️ 위치 인수 (Positional Arguments) 와 키워드 인수(keyword armuments)
- 위치 인수 : 매개변수의 위치에 따라 전달되는 인수 ( 순서대로 매개변수에 매핑됨)
- 키워드 인수: 키워드를 정해서 인수에 전달 ( 명확하게 지정, 매개변수 위치가 바뀌어도 상관없음 )
def greet(name, age):
print("안녕하세요", name, "님! 나이는 ", age, "세입니다.")
# 위치 전달인자 사용
greet("철수", 30) # 출력: 안녕하세요, 철수님! 나이는 30세입니다.
# 키워드 인수를 사용
greet(name="Alice", age=30)
☑️ 매개변수/키워드 인수 기본값 설정(Default Values)
- 매개변수에 인수가 전달되지 않았을 때, 기본값으로 반환시킴
def greet(name="Guest", age=25): #매개변수에 기본값 저장
print("이름:", name)
print("나이:", age)
# 기본값이 설정된 함수 호출
greet() # guest, 25 출력
# 일부 매개변수에만 키워드 인수 사용하여 호출
greet(name="Bob")
☑️ 가변 인수 (Variable-length Arguments)
- 임의의 변수의 받아 변수의 개수를 모르거나 다 다를경우 ⇒ `*args` `**kwargs`
- *args : 임의의 개수의 위치 인수를 전달 ⇒ 튜플형태로 전달 (
- **kwargs : 임의의 개수의 키워드 인수를 전달 ⇒딕셔너리형태로 전달
# 임의의 갯수의 위치인자 튜플로 전달후 누적합
def sum_values(*args): #매개변수로 몇개를 받을지는 모름
total = 0
for num in args:# 매개변수 갯수만큼 반복해서 넣어죠
total += num
return total
result = sum_values(1, 2, 3, 4, 5) # 튜플로 받음
print("합계:", result) # 출력: 합계: 15
#임의의 갯수의 키워드인자 딕셔너리로 전달
def print_info(**kwargs):
for key, value in kwargs.items(): #딕셔너리 키/밸류 쌍 출력
print(f"{key}: {value}")
print_info(name="Alice", age=30, country="USA") # 키워드 인자로 저장
'PYTHON' 카테고리의 다른 글
코테 준비 | 프로그래머스 x만큼 간격이 있는 n개의 숫자 / 없는 숫자 더하기 (0) | 2024.12.16 |
---|---|
코테 준비 | 프로그래머스 조건문 & 반복문 문제 풀이 (0) | 2024.12.11 |
파이썬 | 조건문 if / 반복문 for & while 2 (1) | 2024.12.11 |
파이썬 | 파이썬 기본 자료형 / 리스트 / 딕셔너리 추가 (0) | 2024.12.09 |
UDEMY | 100DAYS OF CODE - day1 (0) | 2024.12.02 |