python/제어문

for 문

appmaster 2019. 5. 22. 10:58

for문의 기본적인 구조는 다음과 같다.

for 변수 in 리스트(또는 튜플, 문자열):
     수행할 문장1
     수행할 문장2

 

1. 전형적인 for 문

>>> test = ['one', 'two', 'three']
>>> for i in test:
      print(i)
one
two
three

리스트의 첫번째 요소인 one이 먼저 i 변수에 대입된 후 print(i)라는 문장을 수행한다. 다음에 two라는 두번째 요소가 i변수에 대입된 후 print(i) 문장을 수행하고 리스트의 마지막 요소까지 이것을 반복한다.

 

 

2. 다양한 for문의 사용

>>> a = [(1,2), (3,4), (5,6)]
>>> for (first, last) in a:
      print(first+lasat)
3
7
11

위에 예는 a 리스트의 요소값이 튜플이기 때문에 각각의 요소들이 자동으로 (first, last)라는 변수에 대입된다.

 

 

3. for 문과 continue

marks = [90, 14, 67, 45, 80]

number = 0
for mark in marks:
    number += 1
    if mark < 60:
       continue
    print("%d번 학생 축하합니다. 합격입니다." %number)

for문 안의 문장을 수행하는 도중에 continue문을 만나면 for 문의 처음으로 돌아가게 된다.

점수가 60점 이하인 학생일 경우에는 mark < 60이 참이 되므로 continue문이 수행된다. 따라서 축하 메세지를 출력하는 부분인 print문을 수행하지 않고 for문의 처음으로 돌아가게 된다.

 

4. for문과 range함수

for문은 숫자 리스트를 자동으로 만들어주는 range라는 함수와 함께 사용되는 경우가 많다. 

시작 숫자와 끝 숫자를 지정하려면 range(시작 숫자, 끝 숫자) 형태를 사용하는데, 이때 끝 숫자는 포함되지 않는다. 앞서 살펴 보았던 60점 이상이면 합격이라는 문장을 출력하는 예제도 range 함수를 이용해서 바꿀 수 있다. 

marks = [90, 25, 67, 45, 80]
for number in range(len(marks)):
   if marks[number] < 60:
       continue
   print("%d번 학생 축하합니다. 합격입니다. " %(number+1))

len 함수는 리스트 내 요소의 개수를 돌려주는 함수이다. 따라서 len(marks)는 5가 될 것이고 range(len(marks))는 range(5)가 될 것이다. 

 

 

 

5. for와 range를 이용한 구구단

for i in range(2, 10):
   for j in range(1, 10):
      print(i*j, end=" ")
   print('')

 

 

6. 리스트 안에 for문 포함하기

>>> a = [1, 2, 3, 4]
>>> result = []
>>> for num in a :
        result.append(num*3)
        
        
>>> print(result)
[3, 6, 9, 12]

위에 예제는 a라는 리스트 항목에 3을 곱한 결과를 result라는 리스트에 담은 예제이다.

이것을 리스트에 내포하면 간단히 해결된다.

>>> a = [1, 2, 3, 4]
>>> result = [num*3 for num in a if num % 2 == 0]
>>> print(result)
[6,12]

 

리스트 내포의 일반적인 문법은 다음과 같다. if조건문 부분은 앞의 예제에서 볼 수 있듯이 생략가능

[ 표현식 for 항목 in 반복가능객체 if 조건문 ]