'''
함수(function)
1. 용도: 기능처리 담당
(데이터 저장 담당 : 변수)
2. 특징
- 반드시 호출해야 수행되고 수행이 끝나면 호출한 곳으로 돌아온다
- 함수 호출 시 함수 쪽으로 임의의 값을 전달 할 수 있다.(파라미터,parameter)
-전달 값이 있으면 함수 쪽에서는 전달 값을 저장하기 위해서 변수가 필요하다.
(전달 값의 갯수가 여러개가 가능하다.)
전달 값과 함수 쪽 변수의 갯수는 반드시 일치해야 한다.
-호출 후에 함수가 실행되고 호출한 곳으로 돌아올 때 임의의 값(리턴 값)을 가지고 반환될 수 있다.
호출한 곳에서는 리턴 값을 저장하기 위해서 변수가 필요하다.
(리턴 값의 갯수는 반드시 !! 1개다. 여러 개 처럼 보일뿐)
3. 문법
가. 파라미터가 없고 리턴 값도 없는 경우 (둘다 없)
나. 파라미터가 있고 리턴 값은 없는 경우 (파라미터 있 , 리턴값 없)
다. 파라미터가 없고 리턴 값은 있는 경우 (파라미터 없 , 리턴값 있)
라. 파라미터가 있고 리턴 값도 있는 경우 (둘다 있) (*****)
def 함수명([변수, 변수2, ...]): #변수 용도는 전달 값 (파라미터) 저장용.
문장
문장
...
[return 값]
'''
#가. 파라미터가 없고 리턴 값도 없는 경우
def fun():
print("fun")
fun()
#나. 파라미터가 있고 리턴 값은 없는 경우 (파라미터 있 , 리턴값 없)
def fun2(n):
print("fun2",n)
fun2(10)
fun2("홍길동")
fun2([1,3,4])#리스트라고 해서 값이 여러 개인 것이 아님
#다. 파라미터가 없고 리턴 값은 있는 경우 (파라미터 없 , 리턴값 있)
def fun4():
return 100
n=fun4() #100을 가지고 돌아옴 그걸 저장할 변수 n이 필요
print(n)
#라. 파라미터가 있고 리턴 값도 있는 경우 (둘다 있) (*****)
def fun5(n,n2):
result=n+n2
return result
n=fun5(1,2)
print(n)
# 문제1.두 개의 정수 값을 받아서 큰 값을 반환하는 함수를 작성하시오
'''def fun6(n1,n2):
if n1>n2:
result=n1
elif n1<n2:
result=n2
return result
def max_select2(n, n2):
result = n2
if n > n2:
result = n
return result
def max_select(n, n2):
xxx = [n, n2]
xxx.sort()
return xxx[-1]
max_value = max_select(100,200)
print(max_value)
'''
def fun6(n1,n2):
return max(n1,n2)
n=fun6(10,20)
print(n)
#문제 2 : 임의의 문자열을 입력 받고 5글자 이상으로 된 문자열은 "5글자 ..." 포맷을 반환하는 함수를 작성하시오
'''
def fun7(s):
if len(s)>=5:
result="5글자..."
else:
result=len(s)
return result
s=fun7("Hello from the another side")
print(s)
'''
# 문제 3. 주민번호 목록(리스트 목록)을 입력받고 여성(남성)만 리스트로 반환하는 함수를 작성하시오
def gender_select(data):
#result=[i for i in data if i[7]=='1']
result = [i for i in data if i[7] == '2']
return result
data =["891202-1234125","960523-1234125","201202-2234125","791202-234125","211202-2234125"]
result = gender_select(data)
print(result)
# 문제4: 주민번호 목록(리스트 목록)을 입력받고 주민번호 뒤자리의 2번째 글자부터 * 로 출력되도록 반환하는 함수를 작성하시오
def ssn_security(x):
result=[i[:8]+"******" for i in data]
return result
data =["891202-1234125","960523-1234125","201202-2234125","791202-234125","211202-2234125"]
result = ssn_security(data)
print(result) # ["891202-1******","960523-1******","201202-2******","791202-2******","211202-2******"]
'''
함수 정의시 리턴 타입 명시 가능
def 함수명(): ->리턴타입
pass
return "hello"
'''
def fun()->str:
return "hello"
print(fun())
def fun()->int:
return 100
print(fun())
def fun()->None:
print("xxx")
print(fun())
#리턴값과 명시된 타입이 일치하지 않아도 문법적으로 문제없음.
def fun()->int:
return "hello"
print(fun())