python

[python] 함수 기본 | 리턴 타입 명시

전감자(◔◡◔) 2022. 9. 26. 20:48
'''

함수(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())

'python' 카테고리의 다른 글

[python] Dict Packing  (0) 2022.09.26
[python] return 키워드 | default 파라미터 | packing(*)  (0) 2022.09.26
[python] generator  (0) 2022.09.22
[python] Dict Comprehension  (1) 2022.09.22
[python] List Comprehension  (0) 2022.09.22