Skip to content

(양*호, 강의노트 7장) 문자열과 while반복문 #95

@qpq8xf

Description

@qpq8xf
text = "12345abc"

i = 0
while i < len(text) and '0' <= text[i] <= '9':
    i += 1

print(f"{i}번째 문자 '{text[i]}'는 더 이상 숫자가 아닙니다.")

이 코드에서 i < len(text)가 인덱스는 범위를 벗어나면 IndexError가 발생하기 때문에 인덱스 범위를 벗어나지 않게 막는 역할을 한다는 것을 ai를 통해 알게 되었습니다.
그런데 ai가 만약 i < len(text)의 조건이 없으면 text = "12345"처럼 전부 숫자일 경우 i가 계속 증가하여 오류가 발생한다고 추가 설명을 해주었는데 실제 위 코드를 text = "12345"로 바꿔서 실행해보면 똑같이 IndexError가 뜹니다.

이는 그 전 while 반복문이 정상적으로 실행되어 print함수 text[i] 부분의 i에 5라는 값이 저장되었기 때문에 가능한 인덱스 범위를 벗어나 오류가 발생한 것이라고 이해했는데 이게 맞게 이해한 건지 알고 싶습니다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions