JAVA를 잡아라!...

Python #08_사용자 정의 함수 본문

Python

Python #08_사용자 정의 함수

onivv 2024. 5. 9. 15:37

[ 함수 & 메서드 ]

  • 함수 : 주어(객체)가 없이 목적어만 갖는 것
    1) 내장 함수 2) 사용자 정의 함수
    C 기반으로 탄생한 함수
    파이썬은 이미 로직이 짜여진 함수들이 잘 만들어져있음
    ▶ 로직보다는 잘쓰는게 중요 ▶ 주석, 로그, 가독성 중요
  • 메서드 : 주어(객체)가 있는 함수 == 객체지향 가능
    JAVA 기반으로 탄생한 메서드
    (반복되는)상황, 프로젝트, 다양한 케이스 처리
    ▶ 재사용, 모듈화 ▶ 객체지향 유리

 

[ 함수 3요소 ]

  1. input 입력값 인자 인수 매개변수 parameter argument
  2. output 출력값 결과값 return 반환
  3. 기능 ▶ 함수명

# 선언(정의) != 호출

# Script에서 함수를 선언하고 Shell에서 함수를 호출하는 방식을 많이 사용함

 


# 유형01 (input x output x)

 

# 유형02 (input o output x)

✅ 기본 인자 (디폴트 인자)

 

✅ 가변 인자

 

# 유형03 (input x output o)

 

# 유형04 (input o output o)

'''
사용자에게 정수를 입력받으세요.
사용자는 올바르게 정수를 입력합니다.
0이하의 정수가 입력되면 종료됩니다.
종료되면 입력받은 정수들의 총합과 평균을 출력해주세요.
단, 평균은 소수점 첫째자리까지만 출력해주세요.
정수 입력 >>
'''

# 01
def sumAvg():
    # 사용자에게 정수 입력받아서 list에 저장
    listNum = []

    while True:
        num = int(input('정수입력 >> '))
        # 0 이하의 정수는 종료
        if num <= 0:
            break;
        listNum.append(num)

    resultSum = sum(listNum)
    resultAvg = round(resultSum/len(listNum), 1)

    print('합계 : ' + str(resultSum) + '\n평균 : ' + str(resultAvg))


# 02
def sumAvg2():
    # 사용자에게 정수 입력받아서 list에 저장
    listNum = []

    # 얼마나 입력할지 모르니까 while
    while True:
        num = int(input('정수입력 >> '))
        # 0 이하의 정수는 종료 (경계값)
        if num <= 0:
            break;
        listNum.append(num)

    # 합계와 평균을 tuple로 저장
    # 파이썬은 메모리 저장 방식을 전부 포인터 방식으로 함
    # 데이터를 교환하려면 C, Java는 tmp 변수가 반드시 필요

    a, b = calc(listNum) # 다중 반환

    print('합계 : ', str(a) + '\n평균 : ', str(b))

# 합계와 평균을 return 하는 함수
def calc(listNum):
    return sum(listNum), round(sum(listNum)/len(listNum), 1)

 

 

실행결과

'Python' 카테고리의 다른 글

Python #10_파일 입출력 (+ 슬라이싱 Slicing)  (0) 2024.05.14
Python #09_모듈과 import  (0) 2024.05.10
Python #07_메서드  (0) 2024.05.02
Python #06_내장 함수  (0) 2024.05.02
Python #05_반복문 while, for  (0) 2024.05.01