프로그래밍/파이썬(Python)

코드카데미 파이썬(Codecademy Python) 강좌 - 숫자들의 합 구하기

&+&& 2015. 11. 14. 13:45

  안녕하세요. 춘삼이의 블로그입니다.

  코드카데미 파이썬(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를 리턴합니다.




  이번 문제는 리스트 형에 대한 이해와 활용에 대해 연습하기 위한 문제네요. 아, 물론 다른 방법들도 있습니다.