Variable Arguments 가변 파라미터

2024. 7. 16. 11:26정보처리,전산/Python

반응형

def calc(check, *values):
    if check:
        total_sum = 0
        squares_sum = 0
        for value in values:
            total_sum += value
            squares_sum += value ** 2
        return total_sum, squares_sum, set(values), check
    else:
        unique_values = list(set(values))
        squares = [value ** 2 for value in unique_values]
        return unique_values, squares


k = calc(1, 2, 3, 4, 5, 6, 7, 8, 9)
print("When check is True:", k)

k = calc(0, 2, 3, 4, 5, 6, 7, 8, 9)
print("When check is False:", k)

 

 

1. check 값이 참이면 숫자들의 합을 구하고, 각 숫자의 제곱의 합도 구해서 반환한다.
2. check 값이 거짓이면 고유한 값들의 리스트와 각 값의 제곱을 리스트로 반환한다.

 

 Function Definition and Parameters

1. Function Definition:
   - 함수 c는 check와 가변 길이 인수 values를 인수로 받는다.

2. Parameters:
   - check: 함수의 동작을 결정하는 플래그 값이다.
   - *values: 가변 길이 인수로 전달된 값들이 values 튜플로 저장된다.

 

 Function Body

3. Conditional Logic:
   - if check:: check가 참이면 아래의 동작을 수행한다.
     - total_sum과 squares_sum 변수를 초기화한다.
     - 반복문을 통해 values의 각 값을 더하고, 각 값의 제곱을 더한다.
     - 결과로 total_sum, squares_sum, 고유한 값들의 집합(set(values)), 그리고 check를 반환한다.
   - else:: check가 거짓이면 아래의 동작을 수행한다.
     - unique_values는 values의 고유한 값들의 리스트이다.
     - 각 값의 제곱을 계산하여 squares 리스트를 만든다.
     - 결과로 unique_values와 squares 리스트를 반환한다.

 

 

 Function Call and Output

4. Function Call (When check is True):
   - k = calc(1, 2, 3, 4, 5, 6, 7, 8, 9): check가 1로 설정되고, 숫자 2부터 9까지 values로 전달된다.
   - total_sum은 2부터 9까지의 합으로 44이다.
   - squares_sum은 각 숫자의 제곱의 합으로 \(2^2 + 3^2 + 4^2 + 5^2 + 6^2 + 7^2 + 8^2 + 9^2 = 284\)이다.
   - set(values)는 {2, 3, 4, 5, 6, 7, 8, 9}이다.
   - check는 1이다.
   - 결과: (44, 284, {2, 3, 4, 5, 6, 7, 8, 9}, 1)

5. Function Call (When check is False):
   - k = calc(0, 2, 3, 4, 5, 6, 7, 8, 9): check가 0으로 설정되고, 숫자 2부터 9까지 values로 전달된다.
   - unique_values는 [2, 3, 4, 5, 6, 7, 8, 9]이다.
   - squares는 각 값의 제곱을 계산한 리스트로 [4, 9, 16, 25, 36, 49, 64, 81]이다.
   - 결과: ([2, 3, 4, 5, 6, 7, 8, 9], [4, 9, 16, 25, 36, 49, 64, 81])

 

 

 check 값에 따라 반환되는 값들이 달라지며, 각각의 경우에 대해 필요한 계산을 수행하여 반환한다.

When check is True: (44, 284, {2, 3, 4, 5, 6, 7, 8, 9}, 1)
When check is False: ([2, 3, 4, 5, 6, 7, 8, 9], [4, 9, 16, 25, 36, 49, 64, 81])

 

 

반응형