딩굴댕굴

Python - 14.함수

by jennysgap

BOX

함수


• 재사용 (똑같은 내용을 반복해서 사용할 때)
• 여러번 호출
• 어디에서나 호출
• 프로그램을 구조화시키는 중요한 개념
• building block
• 함수는 들어온 입력값을 받아 어떤 처리를 하여 적절한 결과값을 돌려준다.


14.1 함수의 구조

14.1.1 실습

def myfunc() : print('함수내 작업수행1') print('함수내 작업수행2') print('함수내 작업수행3')


14.1.2 실습

def myfunc() :
    print('함수내 작업수행1')
    print('함수내 작업수행2')
    print('함수내 작업수행3')

myfunc()
myfunc()


14.1.3 실습

def myfunc1(arg) :
    print('함수의 입력 :', arg)
    if arg > 0 :
        print(arg, '는 양수 입니다.')
    elif arg == 0 :
        print(arg, '는 0입니다.')
    else :
        print(arg, '는 음수 입니다.')

myfunc1(7)
myfunc1(-1)
myfunc1(0)


14.1.4 실습

def isOdd(arg) :
    if arg % 2 == 1 :
        print('odd')
        result = True
    else :
        print('even')
        result = False
    return result

print('함수의 결과:', isOdd(0))
print('함수의 결과:', isOdd(7))
print('함수의 결과:', isOdd(4))


14.1.5 실습

def sum3(arg1, arg2, arg3) :
    print('함수의 입력:', arg1, arg2, arg3)
    sum = arg1 + arg2 + arg3
    return sum

result = sum3(7, 10, 20)
print('함수의 결과:', result)


14.1.6 연습문제1

def mysum(var1, var2) :
    print('mysum')
    sum = var1 + var2
    print('{} + {} = {}'.format(var1,var2, sum))

mysum(55,45)


14.1.7 연습문제2

def chkmul7(n) : if n % 7 == 0 : result = True else : result = False return result


print(chkmul7(7))

print(chkmul7(10))

def chkmul13(n) : return n % 13 == 0


print(chkmul13(13)) print(chkmul13(15))


14.1.8 연습문제3

def chknum(n) : print('chknum') if 1 <= n <= 100 : print('1<=n<=100')


chknum(0)

chknum(70)


14.1.9 연습문제4

def advsum(n) :
    sum = 0
    for i in range(n+1) :
        sum += i
    return sum
'''
    cnt = 1
    sum = 0
    while cnt <= n :
        sum += cnt
        cnt += 1
    return sum
'''
print(advsum(10))
print(advsum(100))


14.2 가변인자

• 입력값이 여러 개일 때 몇개가 될지 모를 때 사용하면 유용함


14.2.1 실습

def sum_many(*args) :       # * : 가변을 의미한다
    sum = 0
    for i in args :
        sum = sum + i
    return sum

print('1~3까지의 합 : ', sum_many(1,2,3))
print('1~6까지의 합 : ', sum_many(1,2,3,4,5,6))
print('1~10까지의 합 : ', sum_many(1,2,3,4,5,6,7,8,9,10))


14.2.2 실습

def sum_mul(choice, *args) :        # 기본type은 tuple이다. if choice == 'sum': result = 0 for i in args: result = result + i elif choice == 'mul': result = 1 for i in args: result = result * i return result print(sum_mul('sum', 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)) print(sum_mul('mul', 1, 2, 3, 4, 5)) #mylist = (1,2,3,4,5) #print('리스트를 인자로 :', sum_many(mylist)) # 튜플, 리스트 range, str을 가변인자로 받으면 여러개의 인자를 튜플로 또 감싸기 때문에 안됨 # 튜플, 리스트 range, str을 사용할 경우 가변인자를 의미하는 * 을 지워야 함


14.2.3 연습문제

def printStart(*num) : cnt = 0 while cnt < len(num) : print('{}:{}'.format(num[cnt], num[cnt]*'★')) cnt += 1 printStart(5,2,4,7,3,4,3)

def printStart(*num) :
    cnt = len(num)
    for i in range(cnt) :
        print('{}:{}'.format(num[i],'★'*num[i]))

printStart(10,1,3,0,6)


14.3 튜플자료형 리턴

def sum_and_mul(a,b) :
    sum = a+b
    mul = a*b
    return (sum, mul)

result = sum_and_mul(3,5)
print(result)


14.3.1 연습문제

def mydiv(a,b) : div = a // b mod = a % b return (div, mod) # 함수리턴값은 기본적으로 1개임 # 파이썬에서는 튜플, 리스트, 집합, 딕셔너리를 이용하여 여러 개 값을 결과로 활용할 수 있다. # Go (구글에서 만든 언어, 조금씩 뜨고 있음) result = mydiv(14,5) print(result, type(result)) print('몫', result[0]) print('나머지', result[0]) # 파이썬에 이미 함수가 있음 a,b = divmod(14,5) # unpacking assignment        튜플인 경우 ()를 생략할 수 있다

print('몫', a)             print('나머지', b)


14.4 초기값 (DEFAULT)



14.5 KEYWORD 인자



14.6 함수안에서 선언된 변수(지역변수의 범위)



14.7 GLOBAL








반응형

'BOX' 카테고리의 다른 글

피싱, 파밍, 스미싱 개념 이해  (0) 2017.02.05
입사지원이메일 작성요령 꿀팁  (0) 2017.02.05
안랩 보안 바로알기 캠페인  (0) 2017.02.03
Python - 복습 겸 연습문제 풀기  (0) 2017.02.02
Python - 13.WHILE과 FOR  (0) 2017.02.01

블로그의 정보

jennysgap

jennysgap

활동하기