본문 바로가기

IT

12-1. 파이썬 - 함수 위치가변인수

'''
def add(li):
    sum = 0
    for n in li:
        sum += n
    return sum
    
'''

'''
위치 가변 인수
- 함수를 호출할 때는 함수 정의시에 지정한 인수의 개수만큼 값을 전달해줘야한다.
- 하지만 위치 가변인수를 사용하면 하나의 인수로 여러개의 데이터를 받아서 처리할 수 있다.
- 위치 가변인수는 함수 정의부에서 인수를 선언할 때 인수 앞에 * 기호를 붙여
  선언하며 이런 경우에 여러개의 데이터를 튜플로 묶어서 함수 내부로 전달한다.

'''

def add(*nums):
    print(type(nums)) #<class 'tuple'>
    print(nums) #(1, 2, 3, 4, 5)
    
add(1, 2, 3 ,4, 5)


'''

- 위치 가변인수는 콤마 이후의 인수를 모두 다 튜플로 묶어서 처리하기 때문에 일반 인수와 함께 사용할 때는
  항상 마지막에 위치해야한다.
- 그 이유는 가변 인수뒤에 일반 인수가 있으면 전체를 모두 튜플로 묶어서 처리하기때문이다.
- 마찬가지로 하나의 함수에서 가변인수를 2개 이상 선언할 수 없다. 
ex) def function(*asd, *ert) (x)

'''

print("-" * 40)
def calc_points(name, *points): # 다른 변수와 같이 쓸때 위치가변인수가 뒤에 와야된다.
    print('%s 학생의 성적 계산...' % name)
    sum = 0
    for n in points:
        sum += n
    return sum

result = calc_points('이순신', 66, 77, 88, 99)
print(result) #330

'''
연습 1 n개의 정수를 입력받아 평균값을 구하여 리턴하는 함수를 작성
'''

def get_avg(*nums):
    sum = 0
    for n in nums:
        sum += n
    return sum / len(nums)
print('평균: %.2f점' %get_avg(11,12,13,14))

'''
연습 2 n개의 정수를 전달받아 가장 큰 숫자를 찾아 리턴하는 함수를 작성
'''