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

코드카데미 파이썬(Codecademy Python) 강좌 – 요소의 갯수 세기(count)

&+&& 2015. 12. 8. 02:05

  오늘은 코드카데미 파이썬(Codecademy Python) 강좌 해설 10번째 시간입니다. 이번 문제는 반복문 챕터의 [연습이 최고를 만든다]에 10번째 문제 [요소의 갯수 세기(count)] 입니다.

  함수 count를 작성하고, 리스트 sequence와 값 item을 입력값으로 받아 item 값이 sequence 리스트 안에 얼마나 많이 들어있는지 반환하는 문제입니다. 설명은 복잡한 것 같은데 실제로는 전에 문제보다 쉽습니다.


  완성된 코드를 보시면 아래와 같습니다.

1
2
3
4
5
6
7
8
9
10
11
12
def count(sequence, item):    # 함수 count를 선언합니다.
    found = 0                 # 결과값을 반환할 found를 0으로 초기화합니다.
    lt = list(sequence)       # 문자열 sequence를 리스트화하여 lt에 할당합니다.
    for i in lt:              # i가 lt를 순환하도록 for 반복문을 설정합니다.
        if i == item :        # i가 item과 같은 경우
            found += 1        # found를 1 증가시킵니다.
    return found              # 계산이 종료된 found를 반환합니다.
 
sequence=raw_input("Enter Text : ")    # sequence를 사용자로부터 입력받습니다.
item=raw_input("Enter word : ")        # item을 사용자로부터 입력받습니다.
 
print count(sequence, item)            # 함수 count를 호출 후 결과값을 출력
cs


  - 1열 : sequence, item을 입력값으로 하는 함수 count를 선언합니다. 지난 시간에 이어서 인자값이 2개인 함수입니다.

  - 2열 : 결과값을 담을 found를 0으로 초기화합니다.

  - 3열 : 문자열 sequence를 리스트화하여 lt에 할당합니다.

  - 4열 : i가 리스트 lt를 순환하도록 for 반복문을 설정합니다.

  - 5-6열 : i가 item과 같다면 found를 1만큼 증가시킵니다.

  - 7열 : for 반복문 종료 후 found를 반환합니다.

  - 9-12열 : sequence와 item을 사용자로부터 입력받고 count를 호출한 후 결과값을 출력합니다.


  제가 문자열이라고는 했지만 sequence와 item은 아래처럼 숫자형태로 해야 정확한 결과를 볼 수 있습니다. sequence를 split하여 비교하면 문자열 비교도 간단하지만 해당 문제에서 원하는 것은 아래처럼 숫자열을 입력하거나 아니면 알파벳 문자열인 경우 item은 단어가 아닌 한 글자만 입력해야 정확한 답을 반환합니다.

For example: count([1,2,1,1], 1)should return 3 (because 1 appears 3 times in the list).