- 10
- 초보
- 조회 수 408
파이썬for문에서
for i in range(1, 7, 2):
print(i)
1, 3, 5가 출력되는 이유.
이게무슨뜻인지 이해가 안갑니다.(이해가 갈필요도 없습니다.)
추천인 3
댓글 10
for : 반복
i : 변수
for i range(1, 7, 2) >
1이상 7미만에 수 중에서 2씩 뛰어넘으며 나온 수를 변수 i 에 저장
print(i) > 위에 저장된 변수 표시
오오~ 쩌네요! ^-^
파이썬의 for 문은 사실상 다른 언어의 foreach 문에 해당하기 때문에 더욱 난해한 것 같네요.
사족이지만 파이썬 3.X에서 range() 함수는 range 객체를 생성합니다.
마스터 님께서도 즐거운 주말 되세요오~! :)
저는 조건문이 걸릴때 주로 for문을 사용하고
평소 loop에서는 while문이 더 익숙하더라구요. ㅠㅠ
요즘 php 공부중인데 for와 foreach 구분중입니다.
파이썬에서 배우던 for문과 비슷하면서 다르더군요.
무엇보다 본문 글의 경우 저는 아직 능력이 부족해
range(1,7) 로 두고 i가 2로 나눴을 때 나머지가 0이 아닌 경우들을 걸러내도록 초보 코딩을 합니다.
저도 프로페셔널한 개발자가 아니기 때문에 감히 말씀드릴 자격은 없지만,
제 주관적인 생각을 적어보겠습다 ^^
(반드시 이런 법칙이 있다고 볼 수는 없지만)
다른 언어에서 for 문과 foreach 문이 모두 존재하는 것이 일반적인 반면,
파이썬에서는 iterable한 객체에 대하여는 for 문을 사용하고,
그렇지 않은 경우에는 while 문을 사용하는 경향이 있다고 생각합니다.
말씀하신 방법으로 '나머지'가 0인지 여부를 확인하는 것도 다른 언어에서도 통용되는 매우 보편적인 방법이지만,
적어도 파이썬에서는 range() 함수의 세 번째 인자를 사용하는 것이 보다 파이써닉한 방법인 것으로 생각됩니다!
결론적으로 iterator를 잘 사용할 수 있도록 공부하는 것이 파이썬에서 굉장히 어려운 것 같아요.
그리고 PHP도 공부하고 파이썬도 공부하면서 양자를 비교하면 더 많은 것을 배울 수 있는 것 같습니다 ^^
(솔직히 파이썬으로 크롤링하다가 PHP로 크롤링하려면 좀 답답하기는 하더군요 ㅠㅠ)
그럼 즐거운 불금 되세요 :)
#include <stdio.h> int main(void) { for (int i = 1; i < 7; i += 2) { printf ("%d\n", i); } return 0; }
저는 사실 C언어 형식의 for 문이 조금 더 직관적인 듯 하군요.....
옙 저도 말씀하신대로 for 문과 foreach 문을 별도로 두는 것이 보다 직관적이라고 생각됩니다 :)
while 문과 for 문이 결과적으로 중복되는 부분이 분명히 있지만, 용법에 있어서 완전히 동일하다고 보기는 어렵기도 하구요~
파이썬의 문법적 간결함이 반드시 직관성으로 귀결되지는 않는 것 같네요 ㅠㅠ
그럼 굿밤 되세요 :)
start : 1
end : 7
간격 : 2
즉 1+2*0, 1+2*1, 1+2*2
1+2*3 >= 7이라서 제외