※ 출처: https://swexpertacademy.com/
함수의 개념과 목적 함수 호출 및 선언 함수의 유형 함수와 매개변수 고급 함수 사용법
언팩 연산자(*)
-매개변수의 개수를 가변적으로 사용할 수 있도록 언팩 연산자(*) 제공
-매개변수에 적용 시 인자를 tuple 형식으로 처리함
📒언팩 연산자를 사용하는 tuple 형식의 가변 매개변수
def calc_sum(*params):
print(params) #(1,2) 튜플형식
total = 0
for val in params:
total += val
return total
ret_val = calc_sum(1,2)
print(f"반환값: {ret_val}") #반환값: 3
📒명시적 매개변수와 가변 매개변수의 혼합 사용
def calc_sum2(precision, *params):
if precision == 0:
total = 0
elif 0 < precision < 1:
total = 0.0
for val in params:
total += val
return total
ret_val = calc_sum2(0.5,1,2)
print(f"반환값: {ret_val}") #반환값: 3.0
키워드 언팩 연산자(**)
-매개변수의 개수를 가변적으로 사용할 수 있도록 언팩 연산자(*) 제공
-매개변수에 적용 시 인자를 Dictionary 형식으로 처리함
def use_keyword_arg_unpacking(**params):
for key in params.keys():
print(f"{key}: {params[key]}")
use_keyword_arg_unpacking(key1=1, key2=2, key3=3)
#key1: 1
#key2: 2
#key3: 3
기본 값을 갖는 매개변수
- 기본 값을 가지는 매개변수는 일반 매개변수 뒤에 위치해야 함
def calc(x, y, operator="+"):
if operator == "+":
return x + y
else:
return x - y
ret_val = calc(10, 5) #15
ret_val = calc(10, 5, "+") #15
scope
- 변수의 유효범위
- 어디서나 접근 가능한 전역 변수 -> 전역 스코프
- 함수 내에서만 접근 가능한 지역변수 -> 함수 스코프
📒함수 내에서 global(전역) 변수에 접근하기
def change_global_var():
global x
x += 1
x = 5
change_global_var()
print(f"전역변수 x의 값: {x}")
📒매개변수에 함수 전달하기
def calc(fn, x, y):
return fn(x, y)
def plus(x, y):
return x + y
def minus(x, y):
return x - y
#calc(fn, x, y)
print(calc(plus,10, 5))
print(calc(minus,10, 5 ))
람다식
- 매번 fn 을 만드는 것은 불편하기에 람다식이 나옴
- Lambda 매개변수 : 반환값
- 변수에 저장해 재사용이 가능한 함수처럼 사용
- 기존의 함수처럼 매개변수의 인자로 전달
- 함수의 매개변수에 직접 인자로 전달
def calc(fn, x, y):
return fn(x, y)
print(calc(lambda a, b: a + b, 10, 5))
print(calc(lambda a, b: a - b, 10, 5))
8. 함수의 기초 - 연습문제 1
6319. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 8. 함수의 기초 1 D1
❌ 다음의 결과와 같이 반목문을 이용해 단어의 순서를 거꾸로 해 반환하는 함수를 작성하고
그 함수를 이용해 회문(앞뒤 어느 쪽에서도 같은 단어, 말) 여부를 판단하는 코드를 작성하십시오.
# input
eye
# output
eye
입력하신 단어는 회문(Palindrome)입니다.
[1]
in_val = input()
in_len = len(in_val)
cnt_i = 0
palindrome = 1 #회문 유무 판단
for c in in_val:
compare_i = in_len - (cnt_i + 1)
if (compare_i > (in_len//2)):
if (c != in_val[compare_i]) :
palindrome = 0
break
cnt_i += 1
print(f"{in_val}")
if palindrome:
print("입력하신 단어는 회문(Palindrome)입니다.")
[2] 문자열 역순
in_val = input()
compare_val = in_val[::-1] #문자열 역순
print(f"{in_val}")
if in_val == compare_val:
print("입력하신 단어는 회문(Palindrome)입니다.")
8. 함수의 기초 - 연습문제 2
6320. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 8. 함수의 기초 2 D1
⭕️ 다음과 같이 사용자 2명으로부터 가위, 바위, 보를 입력 받아
가위, 바위, 보 규칙이 정의된 함수를 이용해 승패를 결정하는 코드를 작성하십시오.
input(), input() #해당 문제에서는 의미없음
def cal(x, y): # x 값 기준으로 승리 판단
x_score = 1
if x == '가위':
if y == '바위':
x_score = 0
elif x == '바위':
if y == '보':
x_score = 0
else:
if y == '가위':
x_score = 0
return x_score
user1_val = input()
user2_val = input()
if cal(user1_val,user2_val) :
print(f"{user1_val}가 이겼습니다!")
else:
print(f"{user2_val}가 이겼습니다!")
'Data Science > Python' 카테고리의 다른 글
| [SWEA] 자료구조 리스트, 튜플 - 연습문제(6273,6275,6277,6286,6288,6289,6290,6295,6297,6305) (1) | 2025.02.09 |
|---|---|
| [SWEA] 자료구조 리스트, 튜플 (0) | 2025.02.08 |
| [SWEA] 흐름과 제어 for,while - 연습문제(6230,6246,6247,6253) (1) | 2025.02.08 |
| [SWEA] 흐름제어 if - 연습문제(6219,6220,6221,6222) (0) | 2025.02.06 |
| [SWEA] 연산자 - 연습문제(6204,6206) (0) | 2025.02.06 |