책 내용 질문하기
Str[-1] 관련 질문
도서
2023 시나공 정보처리기능사 실기
페이지
198
조회수
139
작성일
2023-11-02
작성자
나*준
첨부파일

파이썬에서 배열은 a[-1]의 -1 인덱스가 Mod개념으로 a의 마지막 인덱스 위치를 나타내는데, c언어에서도 동일한 성질을 갖나요?

문제7번에서 str[4]가 저는 str[0]과 같은 인덱스를 의미하는 줄 알았는데  str[]의 인덱스는 범위 내에서만 지정이 되는 것이 겠군요.

답변
2023-11-04 06:12:50

안녕하세요 길벗수험서 운영팀입니다.

 

mod 개념으로 접근할 수 있는 것은 파이썬에서도 range나 slice와 같은 개념에서만 가능합니다.

직접적으로 배열의 범위를 넘어서는 a[-1] 같은 것을 조회하려고 하면 언더플로나 오버플로 같은 오류가 발생하죠.

 

위 사항은 C, Java 어떤 언어에서든 마찬가지로 적용됩니다.

(실제로 해당 문제의 코드는 오류가 발생하는 코드입니다.)

 

행복한 하루되세요 :)

  • 관리자
    2023-11-04 06:12:50

    안녕하세요 길벗수험서 운영팀입니다.

     

    mod 개념으로 접근할 수 있는 것은 파이썬에서도 range나 slice와 같은 개념에서만 가능합니다.

    직접적으로 배열의 범위를 넘어서는 a[-1] 같은 것을 조회하려고 하면 언더플로나 오버플로 같은 오류가 발생하죠.

     

    위 사항은 C, Java 어떤 언어에서든 마찬가지로 적용됩니다.

    (실제로 해당 문제의 코드는 오류가 발생하는 코드입니다.)

     

    행복한 하루되세요 :)

  • 관리자
    2023-11-13 12:18:43

    안녕하세요 길벗수험서 운영팀입니다.

     

    파이썬에서

    a = [1, 2, 3]

    print(a[3])

    은 out of range 오류가 발생하지만

     

    a = [1, 2, 3]

    print(a[-1])

    은 3을 출력합니다.

     

    다만 위의 -1 위치 조회는 컴파일러에서 잘못된 위치를 자동으로 조정해주는 것일 뿐 올바른 위치 조회 방법은 아니므로 지양하는 것이 좋습니다.

     

    사실상 처음 질문하셨던 mod 값을 이용한 slice나 range를 이용하는 문제 또한 파이썬의 컴파일러가 얼마나 유연하게 위치를 조정해주느냐를 알아보기 위한 것일 뿐 실제 코딩 시 이러한 것은 불가피한 상황이 아닌 이상 예외 처리 등을 이용하여 올바른 위치를 지정해주는 것이 버그를 발생시키지 않는 안전한 코딩이 됩니다.

     

    행복한 하루되세요 :)

  • *
    2023-11-11 01:07:45

    Python에서 배열과 리스트 모두 -1은 마지막 인수와 같은 값을 제공해주는데 혹시 제가 알고있는 사실과 다른점이 있나요?

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.