[Python] 파이썬 for문, 파이썬 반복문, python for statement, python iterator statement
파이썬에서 어떤 행동을 반복적으로 할 수 있는 반복문인 for 문에 대해 알아보겠습니다.
for문의 기본 구조
for문의 기본 구조는 다음과 같습니다.
for (자료의 집합에서 가져온 각 요소값을 담은 변수) in (반복할 튜플 또는 문자열 또는 collection 등 자료의 집합):
수행할 문장1
수행할 문장2
...
자료의 집합이 준비된 상태에서,
집합의 각 요소를 하나씩 빼와서 반복문을 수행하게 됩니다.
예제코드를 살펴보면서 더 설명해보겠습니다.
for문 에제
fruits = ["apple", "banana", "cherry"]
for x in fruits:
print(x)
--> 실행결과는 아래와 같습니다. (fruits 라는 list에서 각 요소를 하나씩 출력)
apple
banana
cherry
다른 반복할 수 있는 객체의 예제도 살펴보겠습니다.
# 문자열
for x in "ban":
print(x)
--> 실행결과는
b
a
n
# dictionary
# diciionary 를 for문에 쓰면 key값을 가져오게 됩니다. 이 key를 이용해서 각 dictionary의 value에 접근이 가능합니다.
dict = {'color': 'blue', 'fruit': 'apple', 'pet': 'dog'}
for x in dict:
print(key, dict[key])
--> 실행결과는
color blue
fruit apple
pet dog
# dictionary
# 아래와 같이 dict.items() 를 사용하면, for문의 변수는 key와 value 두가지를 접근할 수 있습니다.
dict = {'color': 'blue', 'fruit': 'apple', 'pet': 'dog'}
for key, value in dict.items():
print(key, value)
--> 실행결과는
color blue
fruit apple
pet dog
range
대부분의 프로그래밍 언어에서는 for문의 구조가 아래와 같이 사용합니다.
for(변수선언;조건;변수증감){}
예를들어 아래와 같이 말이지요
for(int i=0;i<10;i++){
// 반복문
}
그러나 파이썬은 오직 for ~ in~ 입니다.
이를 구현하기위해 파이썬에서 많이 사용하는것이 바로 range입니다.
range는 숫자리스트를 자동으로 만들어주는 함수입니다.
range함수의 사용법은 아래와 같습니다.
range(시작수, 종료되는 수, 증감)
이때, 시작수는 포함되고 종료수는 포함되지 않습니다.
예를 들어 range(0, 5, 1) 이라고 쓰면
range함수가 만들어내는 숫자리스트는 0, 1, 2, 3, 4 입니다.
맨끝에 증감은 생략할경우 1입니다.
range를 사용하여 실행한 예는 아래와 같습니다.
range의 사용예는 아래와 같습니다.
# 0에서부터 -6까지 2씩 감소시킨다
# 따라서 0, -2, -4의 리스트가 만들어지게 된다.
for i in range(0, -6, -2):
print(i)
--> 실행결과는
0
-2
-4
continue와 break
continue는 반복문 안에서 다음 문장을 실행시키지 않고 넘어간다는 명령어이며,
break는 반복문을 바로 나가는 명령어입니다.
바로 예시를 보겠습니다.
# 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10의 리스트가 만들어지고,
# 반복을 하나, 1일때는 continue이므로 0다음에 2가 출력됩니다.
# 또한, 5 일 때는 break이므로 이때부터는 리스트를 더 이상 훑지 않게 됩니다.
for i in range(0, 10, 1):
if i == 1:
continue
if i == 5:
break
print(i)
--> 실행결과는
0
2
3
4
list comprehension, 리스트 컴프리헨션에서의 for
파이썬의 특별한 문법중 하나로, list안에 for문을 쓸 수 있는 방법이 있습니다.
사용법은 아래와 같습니다.
[ ( 변수를 활용한 값 ) for ( 사용할 변수 이름 ) in ( 순회할 수 있는 값 )]
예제 코드는 아래와 같습니다.
arr = [i for i in range(0, 10)]
print(arr)
--> 실행결과는
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
if문과 사용하면 더욱 강력한 기능을 낼 수 있습니다.
# 0~10까지의 수 중에서 짝수(i%2==0) 만 arr 에 담도록 한다.
arr = [i for i in range(0, 10) if i%2 == 0 ]
print(arr)
위 예제는 리스트의 원소를 필터링하는 코드를 한 줄의 코드로 나타내는 사용법입니다.
총평
파이썬도 다른 프로그램과 같이 for(int i=0;i<10;i++) 같은 구문을 제공해주면 어땠을까 하는 생각이 종종 듭니다.
자바, 자바스크립트, C언어 등을 다루다가 파이썬만 오면 좀 어색한 느낌이 듭니다.
최근에는 파이썬 외에 다른 언어들에 대해서도 오히려 for ~ in ~ 구문이 제공되기는 합니다만
처음 배울때 부터 for(int i=0;i<10;i++) 과 같은 구문에 익숙해서 아직도 어색합니다.
range을 타이핑하고 콤마까지 타이핑 하는게 뭔가 다른 언어보다 느린느낌을 받습니다.
또한, list comprehension은 코드를 짧게 해주는 유용한 문법이라고 생각이 드나,
다른 언어에서 지원을 하지 않아 사용하는게 굉장히 어색하게 느껴집니다.
그래도 계속 쓰다보면 언젠간 익숙해지는 날이 오겠지요.
파이썬 for문, 파이썬 반복문, python for statement, python iterator statement
#파이썬,#반복,#반복문,#for문,#for,#forstatement,#python,#iterator,#list,#comprehension,#리스트,#컴프리헨션
'파이썬 - Python' 카테고리의 다른 글
[Python] 파이썬 IDLE 단축키, python IDLE shorcut (0) | 2022.05.27 |
---|---|
[Python] pytorch란, 파이토치란, pytorch install, 파이토치 인스톨, 파이토치 설치 (0) | 2022.05.26 |
[Python] 파이썬 옵션, 파이썬 -m 옵션, python -m option, -u 옵션, 명령행 옵션, -c 옵션 (0) | 2022.05.18 |
[Python] py파일 exe로 만들기, python exe파일 만들기, pyinstaller (0) | 2022.05.14 |
[Python] 파이썬 산술연산자 (+, -, *, /, %, //, **) (0) | 2022.05.12 |
댓글