Day9. 파이썬 중급 (1)

Junghwan Park·2023년 4월 16일
0

스터디노트

목록 보기
10/54

함수란?

  • 파이썬의 함수는 수학의 함수와 동일하다.
  • input → 함수 → output

  • 함수는 파이썬에서 기본으로 제공하는 내장함수
  • 사용자가 직접 선언하는 사용자 함수가 있다.
  • 함수는 특정 기능을 재사용하기 위해서 사용한다.
def addCall():
    n1 = int(input('n1 입력 : '))
    n2 = int(input('n2 입력 : '))
    print(f'n1 + n2 = ({n1 + n2})')

addCall()

함수 선언과 호출

  • 함수 선언
  • 함수는 def 키워드, 함수명, :, 들여쓰기를 이용해서 선언한다.
  • 함수는 대부분 동사(기능을 알아볼 수 있는)로 작명

-실습1
오늘 날씨를 출력하는 함수를 선언하고 3번 호출해보자.

def printWeatherInfo():
     print('오늘 날씨는 맑습니다. 기온은 25도 입니다.')

printWeatherInfo()
printWeatherInfo()
printWeatherInfo()

-실습2
정수 두 개를 입력하면 곱셈과 나눗셈 연산 결과를 출력하는 함수를 만들고 호출해보자.

def calFun():
    n1 = int(input('n1 입력 : '))
    n2 = int(input('n2 입력 : '))

    print(f'n1 * n2 = {n1 * n2}')
    print(f'n1 / n2 = {round(n1 /n2, 2)}')

calFun()
calFun()

함수 내에서 또 다른 함수 호출

  • 함수 내에서 또 다른 함수를 호출할 수 있다.
  • pass를 이용해서 실행문을 생략할 수 있다.
def printTodayWheather():
     pass

printTodayWheather()

-실습1
다음과 같이 구구단 출력 함수가 연쇄적으로 호출되도록 함수를 선언해보자.

def guguDan2():
     for i in range(1, 10):
         print('2 * {} = {}'.format(i, 2 * i))
     guguDan3()

def guguDan3():
     for i in range(1, 10):
         print('3 * {} = {}'.format(i, 3 * i))
     guguDan4()

def guguDan4():
     for i in range(1, 10):
         print('4 * {} = {}'.format(i, 4 * i))
     guguDan5()

def guguDan5():
     for i in range(1, 10):
         print('5 * {} = {}'.format(i, 5 * i))

guguDan2()

인수와 매개변수

  • 함수 호출 시 함수에 데이터를 전달할 수 있다.
  • 인수와 매개변수 개수는 일치해야 한다.
  • 매개변수 개수가 정해지지 않은 경우 '*'를 이용한다.

인수와 매개변수

def greet2(customer):       # customer 은 매개변수, 매개변수는 함수 안에서만 사용 가능하다
     print(f'{customer} 고객님 안녕하세요.')

greet2('홍길동')       # '홍길동'은 인수
greet2('박찬호')

def greet3(customer1, customer2):       # customer 은 매개변수, 매개변수는 함수 안에서만 사용 가능하다
     print(f'{customer1} 고객님과 {customer2} 고객님 안녕하세요.')

greet3('홍길동', '박찬호')

def calculator(n1, n2):
     print(f'{n1} + {n2} = {n1 + n2}')
     print(f'{n1} - {n2} = {n1 - n2}')
     print(f'{n1} * {n2} = {n1 * n2}')
     print(f'{n1} / {n2} = {n1 / n2}')

calculator(10, 20)

매개변수 개수가 정해지지 않은 경우 '*'를 이용한다.

def printNumber(*numbers):
     for number in numbers:
         print(number, end = '')
     print()

printNumber()       # 인수가 없는 경우
printNumber(10)     # 인수가 1개인 경우
printNumber(10, 20) # 인수가 2개인 경우
printNumber(10, 20, 30) #인수가 3개인 경우
  • 실습
    국어, 영어, 수학 점수를 입력받고, 입력받은 점수를 이용해서 총점과 평균을 출력하는 함수를 만들어 보자.
def printScore(kor, eng, mat):
    sum = kor + eng + mat
    avg = sum / 3

    print(f'총점 : {sum}')
    print('평균 : %.2f' % avg)

korScore = int(input('국어 점수 입력: '))
engScore = int(input('영어 점수 입력: '))
matScore = int(input('수학 점수 입력: '))

printScore(korScore, engScore, matScore)

데이터 반환

  • return 키워드를 이용하면 함수 실행 결과를 호출부로 반활할 수 있다.
  • 함수가 return을 만나면 실행을 종료한다.
def calculator(n1, n2):
     result = n1 + n2

     return result       # 함수 호출부로 실행 결과를 반환한다

returnValue = calculator(20, 10)
print(f'returnValue: {returnValue}')

print(calculator(30, 30))

# 함수가 return을 만나면 실행을 종료한다.

def divideNumber(n):
     if n % 2 == 0:
         return '짝수'     # 함수 실행 종료 및 결과 반환
     else:
         return  '홀수'    # 함수 실행 종료 및 결과 반환

returnValue = divideNumber(6)
print(f'returnValue : {returnValue}')
  • 실습1
    사용자가 길이(cm)를 입력하면 mm로 환산한 값을 반환하는 함수를 만들어보자.
userLength = float(input('길이(cm) 입력 : '))

def changeCmMm(n):
     return n * 10

print(changeCmMm(userLength),'mm')
  • 실습2
    1부터 100까지의 정수 중에서 홀수인 난수를 반환하는 함수를 선언하자.
import random

def getOddRandomNumber():

     while True:
         rNum = random.randint(1, 100)
         if rNum % 2 != 0:
             break
     return rNum

print(f'returnValue : {getOddRandomNumber()}')

이 글은 제로베이스 데이터 취업 스쿨의 강의자료 일부를 발췌하여 작성되었습니다.

profile
안녕하세요 반갑습니다^^

0개의 댓글