본문 바로가기
Hello python

[Python] 반복문 for 문을 이용한 짝수합, 홀수합 구하기

by Theo"Dora"-sci 2023. 5. 5.
반응형

[Python] 반복문 for 문을 이용한 짝수합, 홀수합 구하기

문제
: 1부터 N까지의 list 중 짝수 혹은 홀수의 합을 구하시오. (짝수합 혹은 홀수합 구하기)

 

코드 1. res = 0을 시작으로 반복적으로 홀수(혹은 짝수)를 더하여 합 구하기

sum_of_odds라는 함수를 정의합니다. 

만약 한 number의 나머지가 1이 된다면, res에 number를 더해가며 for문을 반복합니다.

그렇게 25라는 값을 도출합니다.

def sum_of_odds(x):
    res=0
    for number in x:
        if number %2 == 1: #나머지가 1이 남는 것: 홀수, 나머지가 0이 남는 것: 짝수
            res = res + number
    return res #res를 결과값으로 전달

print(sum_of_odds([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]))

 

코드 2. res = []인 list에 반복적으로 홀수(혹은 짝수)를 추가하여 만들어진 list의 합 구하기

코드 1과 같이 진행하는 것도 좋지만, 파이썬은 sum() 함수가 존재하므로 sum() 함수를 활용해 봅니다. 

 

res에 0 대신 비어있는 [] list를 정의 내립니다. 

그리고, number의 나머지가 1이라면, 즉 홀수라면, list에 값을 추가합니다. 

 *append() 함수를 이용하여 리스트 변수의 마지막 위치에 데이터를 추가할 수 있습니다. 

그렇게 for문을 반복합니다. 

 

최종으로 나온 res list의 합 25를 도출합니다. 

def Csum(x): 
    res=[]
    for number in x: # x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
        if number % 2 ==1: # number 홀수인지 확인
            res.append(number) #RES에 number 추가
    
    return sum(res) #res의 합 반환

print(Csum([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]))

 

코드 3. 이 모든 걸 한 줄로 표현하기

코드는 단순하고, 간결하게 사용할수록 효율이 좋아집니다. 

따라서, 한 줄로 홀수 number를 골라내어 더하는 코드를 만들고 싶다면, 다음과 같이 할 수 있습니다.

def sum_of_odds(numlist):
    return sum([number for number in numlist if number % 2 == 1])
    
sum_of_odds([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
728x90
반응형