a=[1,2,3,4,5] for i in a: print(i) del a[0] a=[1,2,3,4,5]
이렇게 코드를 짜봤는데 i값이 1 2 3 4 5 순서대로 나올거라고 생각했는데 결과를 보니까 1345만 출력됩니다.
왜 2가 출력 되지않고 1다음 3이 출력되는지 알 수 있을까요?
그리고 이런 것을 확인해볼 때 C에서는 모든 과정을 순서대로 볼 수 있었던걸로 기억하는데 파이썬에도 그런 기능이 있나요?
일단 1,2,3,4,5가 출력되게 하려면 아래처럼 간단하게 쓰시면 됩니다.
a=[1,2,3,4,5] for i in a: print(i)
그런데 어떤 목적으로 쓰신건진 모르겠지만
for문 안에 del a[0] 라는 구문과 a=[1,2,3,4,5] 라는 구문을 통해 for문의 초기값인 a 값을 변경하고 있습니다.
아마도 기본적인 문법이 이해가 되지 않은 상태인지라 일반적이지 않은 코드가 짜진 것 같습니다.
올려주신 코드의 문제점을 살펴보면,
일반적으로 for문의 초기값을 for문 안에서 또 정의하거나 바꾸지는 않습니다.
다시 말해 올려주신 코드처럼 for문 안에서 del a[0] 처럼 초기값인 a 배열을 조작하지 않습니다.
또한 for문 안에서 a = [1,2,3,4,5] 처럼 초기값을 다시 선언하지 않습니다.
즉, 초기값인 a 배열을 for문 안에서 조작하거나 재 정의하는 것은 for문의 사용 용도를 벗어나는 코드라고 보시면 되겠습니다.
파이썬에서 디버깅 하는 방법으로 pdb를 이용하는 방법이 있습니다.
파이썬 실행 시 pdb 옵션을 주면 말씀하신대로 실행과정을 순차적으로 디버깅해볼 수 있습니다.
python3 -m pdb test.py
일단 1,2,3,4,5가 출력되게 하려면 아래처럼 간단하게 쓰시면 됩니다.
그런데 어떤 목적으로 쓰신건진 모르겠지만
for문 안에 del a[0] 라는 구문과 a=[1,2,3,4,5] 라는 구문을 통해 for문의 초기값인 a 값을 변경하고 있습니다.
아마도 기본적인 문법이 이해가 되지 않은 상태인지라 일반적이지 않은 코드가 짜진 것 같습니다.
올려주신 코드의 문제점을 살펴보면,
일반적으로 for문의 초기값을 for문 안에서 또 정의하거나 바꾸지는 않습니다.
다시 말해 올려주신 코드처럼 for문 안에서 del a[0] 처럼 초기값인 a 배열을 조작하지 않습니다.
또한 for문 안에서 a = [1,2,3,4,5] 처럼 초기값을 다시 선언하지 않습니다.
즉, 초기값인 a 배열을 for문 안에서 조작하거나 재 정의하는 것은 for문의 사용 용도를 벗어나는 코드라고 보시면 되겠습니다.
파이썬에서 디버깅 하는 방법으로 pdb를 이용하는 방법이 있습니다.
파이썬 실행 시 pdb 옵션을 주면 말씀하신대로 실행과정을 순차적으로 디버깅해볼 수 있습니다.