프로그래밍/python

Python_함수

gunnwu 2023. 2. 7. 21:50

1.함수

  • 프로그래밍에서의 함수 : 반복해서 사용할 코드를 미리 정의하고 필요할 때 사용하는 모듈
  • 함수의 구성요소 : 입력(input)-매개변수(생략가능)

                                    처리 : 코드(반복문, 조건문 등)

                                   

                                    출력(output) : 처리결과(생략가능)

  • def 함수명(매개변수(생략가능)): return
  • return은 여러 개를 받을 수 있다.

ex) def calculate(a, b):

             sum1 = a + b
             mult = a * b
             return sum1, mult 

# 함수 만들기
def hello(name, x=1):
    if loud == 1:
        print(f'{name}님 안녕하세요? 반갑습니다.') 
    else:
        print(f'{name}님 안녕하세요? 반가워요.')
        
# 함수 사용
hello(name='홍길동', x=1)   # 매개변수 이름 = 값 으로 지정
hello(x=0, name='홍길동')   # 매개변수 이름으로 지정하면 순서 변경 가능 =>굳이?
hello('홍길동', 0)             # 매개변수 순서가 맞다면 매개변수 이름 생략 가능
hello('홍길동')                # 함수 생성 시 x = 1 로 선언했으므로, 안쓰면 기본값 1이 입력됨

실행결과

2. 임의의 여러 개의 매개변수

  • *args 사용 함수 안에서 반복문을 사용하여 처리
def hello(*args, title):
    print(args)# 튜플로 받는걸 확인하는 코드
    for who in args:
        print(f'{who} {title} 안녕하세요? 반갑습니다!')

# 함수 사용
hello('갑', '을', '병', title='선생님')

실행결과

3. 함수의 예외처리

  • 보통 if문을 사용하여 오류가 나오는 상황에 예외를 둔다. 
#a를 b로 나누는 함수
def divv(a, b) : 
    if b == 0 :
        print('나누는 값은 0이되면 안되요')
    elif (type(a) != int) or (type(b) != int): #정수가 아닐경우의 예외처리(str..등등)
        print('정수 연산만 가능.')
    else:
        result = a / b
        return result

# 함수 사용
divv(30, 0)
divv(10, 'ab')
divv(30, 5)

실행결과

4. 주요 내장함수

1. abs(x) : x의 절댓값 반환

 

2. all(x) : x의 요소가 참일 때 True를 반환

a = [0, 1, 2, 3, 4]
all(a)

#실행결과
#False (0이 들어갔기때문에)

3. any(x) : x의 요소 중 하나라도 참이면 True 반환

 

4. chr(x) : 아스키코드값 x에 대응하는 문자 반환

5. ord(x) : 문자 x의 아스키코드값을 반환

 

6. eval(x) : 실행 가능한 문자열 x를 받아 실행결과 반환

eval('1 + 2')

eval('print("ABC")')

실행결과

7. map(f,x) : 함수 f에 x요소를 하나씩 전달해 얻는 결과 반환

a = [1, 2, 3, 4, 5]
b = list(map(lambda x: x * *2, a))
print(b)

#실행결과
#[1, 4, 9, 16, 25]

8. zip(x,y) : x와 y의 각각 요소들을 쌍으로 반환

a = [1, 2, 3, 4, 5]
b = [1, 2, 3, 4]
list(zip(a, b))

#실행결과
#[(1, 1), (2, 2), (3, 3), (4, 4)]

9. pow(x,y) : x를 y번 제곱한 결과를 반환

 

10. sorted(x) : x요소들을 정렬(디폴트는 오름차순, reverse=True 하면 내림차순 )

 

11.divmod(x, y) :  x를 y로 나눈 몫과 나머지를 튜플 형태로 반환

x = 23
y = 7
divmod(x, y)

#실행결과
#(3,2)