Python 코드는 짧아 보여도 슬라이싱, 가변 객체, 반복문이 한 줄에 겹치면 예상과 다른 출력이 나옵니다. 먼저 이름이 가리키는 객체와 그 객체의 현재 내용을 분리하고, 범위의 시작과 끝을 숫자로 표시하세요.

슬라이싱은 시작 포함·끝 제외·간격 순서로 적습니다

seq[start:stop:step]에서 start 위치는 포함하고 stop 위치는 포함하지 않습니다. 생략된 값과 음수 인덱스를 바로 머릿속으로 계산하지 말고, 원소 위에 0부터 인덱스를 적은 뒤 실제로 선택되는 위치를 표시하세요.

확인 항목질문
시작첫 번째로 포함되는 인덱스는 어디인가
어느 인덱스 직전에서 멈추는가
간격몇 칸씩 이동하며 방향은 양수인가 음수인가
결과 타입문자열·리스트·튜플 중 무엇이 만들어지는가

대입은 복사가 아니라 같은 객체를 가리킬 수 있습니다

b = a가 실행됐다고 해서 리스트가 자동으로 하나 더 만들어지는 것은 아닙니다. 두 이름이 같은 리스트 객체를 가리키면 b를 통해 내용을 바꾼 결과가 a에서도 보입니다. 반대로 슬라이스나 명시적 복사로 새 리스트가 만들어졌다면 이후 변경은 분리될 수 있습니다.

컴프리헨션과 반복문은 입력 순서부터 펼칩니다

리스트 컴프리헨션은 짧지만 실행 논리는 반복문과 조건문입니다. 입력 원소를 왼쪽부터 한 개씩 가져오고, 조건을 통과했는지 확인한 뒤, 표현식을 계산해 결과 리스트에 추가하세요. 중첩 구조라면 작성된 for의 순서를 일반 반복문으로 다시 풀어 쓰는 편이 안전합니다.

한 원소씩 추적
  1. 가져오기현재 반복 변수가 받은 값을 적는다.
  2. 조건if가 참인지 거짓인지 판정한다.
  3. 변환표현식 계산 뒤 추가되는 값을 적는다.
  4. 누적현재까지 만들어진 리스트와 출력 순서를 갱신한다.

딕셔너리는 키 존재 여부와 조회 방식을 구분합니다

대괄호 조회는 존재하지 않는 키에서 예외가 발생할 수 있고, get은 지정한 기본값을 돌려줄 수 있습니다. keys, values, items 중 어떤 뷰를 순회하는지도 확인하세요. 시험 문제는 실행 환경이나 전제된 Python 버전을 함께 읽어야 합니다.

슬라이스 끝 인덱스를 포함하지 않았는가음수 간격에서 이동 방향을 바꿨는가두 변수가 같은 리스트를 가리키는가메서드가 객체를 바꾸는지 새 값을 반환하는지 봤는가반복 조건을 원소마다 적용했는가출력 타입과 괄호 모양까지 확인했는가

정답 대신 처음 잘못된 상태를 찾아 복습합니다

오답을 고칠 때 최종 출력만 다시 외우지 마세요. “stop 인덱스를 포함함”, “리스트 별칭을 복사본으로 착각함”, “조건식을 변환 뒤에 적용함”처럼 처음 어긋난 지점을 적어야 비슷한 문제에도 적용됩니다.

C와 Java까지 같은 방식으로 연습하려면 C·Java·Python 코드 추적법을 함께 보세요.