점프 투 파이썬 종합문제 15번 관련 질문

안녕하세요?
먼저 좋은 책 써주셔서 파이썬 세계로 입문하게 해주신 것 감사드립니다~^^
코딩 전혀 모르고 살다가 혼자서 책 보고 공부하려니 어려운게 너무 많습니다. ㅠㅠ
앞으로 잘 부탁드리겠습니다.

제목에서 말씀드린 종합문제 15번 해설을 봐도 잘 이해가 되지 않습니다.

def chkDupNum(s):
      result = []
            for num in s: 
                 if num not in result:
                           result.append(num)
                    else:
                          return False
            return len(result) == 10
  1. 리스트 자료형을 사용하여 중복된 값이 있는지 먼저 조사한다.
    (result = [] ... if num not in result: 가 여기에 해당되는지요?)

  2. 중복된 값이 있을 경우는 False를 리턴한다.
    (else: return False 가 여기에 해당되는지요? )

  3. 최종적으로 중복된 값이 없을 경우 0~9까지의 숫자가 모두 사용되었는지 판단하기 위해 입력 문자열의 숫자 값을
    저장한 리스트 자료형의 총 개수가 10인지를 조사하여 10일 경우는 True, 아닐 경우는 False를 리턴한다.
    ( return len(result) == 10 이 여기에 해당 되는지요? 만역 그렇다면 이해가 안되는게 보통 def 함수문에서 return은 결과값을 저장할때 쓴다고 배웠는데 여기에서는 다른 용도로 쓰였는지요?)

질문이 답답하시더라도 너그러운 마음으로 많은 양해 부탁드립니다. ^^

배기성 475

M 2020년 12월 28일 8:55 오전

목록으로
1개의 답변이 있습니다. 1 / 1 Page
def chkDupNum(s):
    result = []
    for num in s:   # 입력 문자열 s에서 한 문자씩 num에 대입
        if num not in result:  # result 리스트에 num이 들어 있지 않은경우라면
            result.append(num)  # result에 num을 추가
        else:  # result 리스트에 num이 들어 있는경우, num이 중복임을 알수 있음
            return False  # 이런 경우는 False를 리턴
    return len(result) == 10  # 루프 종료후 리스트의 갯수가 10개인지 조사하여 10개면 True, 아닌경우에는 False리턴

코드에 주석을 달아보았습니다.
도움되시기를..

박응용

M 2020년 12월 28일 9:23 오전

빠르고 친절한 답변 감사합니다~~^^ return len(result) == 10 에서 return이 어떤 역할을 하는지는 여전히 궁금합니다. 아래와 같이 if를 이용했다면 이해가 갈텐데 그냥 return 만 있으니 이해하기가 어렵네요 ㅠㅠ if len(result) == 10: return True else: return False - 배기성님, M 2020년 12월 29일 9:17 오후 추천 , 대댓글
+1 @배기성님 len(result) == 10 의 의미는 "result의 길이가 10인가?" 라고 묻는 조건식입니다. == 는 좌우가 같은지를 체크하는 조건식입니다. 따라서 == 연산자의 결과는 True 또는 False를 리턴하게 됩니다. 따라서 if ~ else 로 한것과 동일한 의미이구요, 이런 경우에는 더 자주 사용됩니다. 그리고 return은 그 조건식의 결과를 반환하는 명령어구요. - 박응용님, M 2020년 12월 29일 11:01 오후 추천 , 대댓글
@박응용님 정말 감동입니다! 속이 다 시원합니다~~^^ 너무 상세하고 친절한 답변해주셔서 정말 감사드려요~~ 2021년에도 항상 행복하시고, 건강하세요~~ - 배기성님, 2020년 12월 30일 12:50 오후 추천 , 대댓글