안녕하세요. 춘삼이의 블로그입니다.
코드카데미 파이썬(Codecademy Python) 강좌 해설 3번째 시간입니다. 이번 문제는 반복문 챕터의 [연습이 최고를 만든다]에 3번째 문제 [숫자들의 합(digit_sum)] 입니다.
n을 입력값으로 하는 함수 digit_sum을 만들고 n을 구성하는 숫자들의 합을 반환하도록 구현하는 문제입니다. (예 : 입력값이 1234라면 1+2+3+4의 값을 반환)
일단 완성된 코드는 아래와 같구요.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | def digit_sum(n): # n을 입력으로 갖는 digit_sum 함수 생성 if n > 0: # n이 양의 수일 경우 m = str(n) # 숫자형 n을 텍스트형으로 변환 y = list(m) # 텍스트형인 m을 리스트형으로 변환 total = 0 # 합계를 구할 total을 0으로 초기화 for x in y: # 리스트 y의 처음부터 끝까지 반복 total += int(x) # 리스트 y의 각 단위값인 x를 total에 합산 return total else: return False n=raw_input("Enter Number : ") # 인자 n의 값을 사용자로부터 입력 print digit_sum(int(n)) # digit_sum을 호출하고 결과값을 출력 | cs |
- 12열 이하로는 없어도 문제는 패스입니다.
- 12열 : raw_input은 콘솔상에 질의하고자 하는 문자열을 출력하고 사용자 입력값을 반환하는 함수입니다.
- 2열 : n이 양의 수일 경우에만 처리하기 위하여 n > 0인 조건문을 설정합니다.
- 3열 : n을 각 단위화하기 위하여 먼저 텍스트형으로 바꿔 변수 m에 할당.
- 4열 : 텍스트형으로 변환된 m을 리스트화하여 y에 할당. 텍스트형을 리스트형으로 바꾸면 각 글자 단위별로 리스트화되기 때문에 순차적으로 접근이 가능합니다.
- 5열 : 합계값을 집어 넣을 변수 total을 0으로 초기화합니다.
- 6열~7열 : 리스트 y의 처음부터 끝까지 x에 할당하여 total값에 합산합니다.
- 8열 : 합산이 완료된 결과값 total을 반환합니다.
- 10열 : 입력값이 양수가 아닐 경우에는 False를 리턴합니다.
이번 문제는 리스트 형에 대한 이해와 활용에 대해 연습하기 위한 문제네요. 아, 물론 다른 방법들도 있습니다.
'프로그래밍 > 파이썬(Python)' 카테고리의 다른 글
코드카데미 파이썬(Codecademy Python) 강좌 - 문자열 뒤집기(reverse) (0) | 2015.11.20 |
---|---|
코드카데미 파이썬(Codecademy Python) 강좌 - 소수인지 확인하기(is_prime) (0) | 2015.11.16 |
코드카데미 파이썬(Codecademy Python) 강좌 - 계승 또는 팩토리얼(factorial) (0) | 2015.11.15 |
코드카데미 파이썬(Codecademy Python) 강좌 - 정수인지 확인하기 (1) | 2015.11.12 |
코드카데미 파이썬(Codecademy Python) 강좌 - 짝수인지 확인하기 (0) | 2015.11.11 |