반응형

문제
: 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
반응형
'Hello python' 카테고리의 다른 글
| [Python] 파이썬 시험 점수에 따른 성적 등급 구하기, 한 줄 함수 만들기 (2) | 2023.05.22 |
|---|---|
| [Python] 리스트의 표준편차를 구하는 함수 구현하기 (0) | 2023.05.20 |
| [Python] 주어진 리스트의 중간값 구하는 함수 구현하기 (median) (1) | 2023.05.19 |
| [Python] 주어진 리스트의 평균값을 구하는 함수 구하기 (2) | 2023.05.18 |